Microsoft COBOL v5.0

This commit is contained in:
davidly 2024-06-30 15:35:16 -07:00
parent 2c74a13660
commit fa06c81ad2
209 changed files with 20048 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,78 @@
$ ***********************************************************************
$ * *
$ * Example NLS message file *
$ * *
$ * Format as described in XPG4 *
$ * (C printf with %1$s %2$s ordering extension) *
$ * *
$ * DOS/OS2 RTS restricts insertion to %c (single character) and *
$ * %s (character string), for the moment *
$ * (may consider adding %d %x etc later if necessary) *
$ * *
$ ***********************************************************************
$
$ lines beginning with a dollar followed by a space are treated as comment lines
$
$ message set 101 = RTS message set
$set 101 : RTS messages
$
$ define " as quote character
$quote "
$
$ The following control characters can be embedded in the message
$
$ \ continue to next line
$ \n newline
$ \t tab
$ \r carriage return
$ \\ backslash
$ \ddd bit pattern
$
$
$ lines describing a message should begin with the message number, then a space,
$ and then the text of the message itself in quotes
$
$ message number 01 : description prefix
1 "Description : "
$ message number 02 : dongle not present message
2 "Security Key not installed"
$ message number 03 : file error message
3 "Error accessing file : "
$ message number 04 : +K4 press any key message
4 "Press any key to continue..."
$ message number 05 : OS/2 RTE already kept message
5 "RTE already kept"
$ message number 06 : OS/2 kept RTE not found message
6 "Kept RTE not found"
$ message number 07 : DOS unkeep message
7 "Please use 'UNKEEP.COM' for now"
$ message number 08 : sleep message
8 "Type "EXIT" to resume COBOL"
$ message number 09 : stopping message
9 "User terminated run"
$
$
$ message broken in one place -
$ use a %s to indicate where text should be inserted
$ message number 10 : load failure message
10 "Load failure (%s) on file "
$
$ message broken in two places - uses %1$s ordering extension
$ message number 11 : library prompt message - must be less than 81 chars
11 "Please put disk containing %1$s in drive %2$c and press <cr> (Esc to cancel)"
$
$ messages broken in three places - similar to the above
$ message number 12 : final error message
12 " Segment %1$s : Error %2$s at COBOL PC %3$s"
$ message number 13 : multi-reel file prompt message
13 "PLEASE LOAD VOLUME %1$s OF FILE %2$s FOR %3$s \
\r\nENTER NEW DEVICE (IF REQUIRED) AND <CR> WHEN READY\r\n"
$
$ interactive messages - must be less than 80 chars
$ message number 14 : DOS only - printer not available - Cancel, Retry, Ignore
14 "Printer not available - 1=Cancel, 2=Retry or 3=Ignore ?"
$ message number 15 : DOS only - Disk error on drive * - Abort etc
15 "Disk error on drive %c: - 1=Fail, 2=Stop, 3=Break, 4=Retry or 5=Ignore ?"
$
$ message number 16 : failed codepage switch
16 "The attempt to switch to codepage %s failed. Continuing .."

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,58 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. E.
* REMARKS. generate digits of e
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ARRAYS.
02 A PIC 9(04) COMP OCCURS 200 TIMES.
01 X PIC 9(04) COMP VALUE 0.
01 TMOD PIC 9(04) COMP VALUE 0.
01 TM PIC 9(04) COMP VALUE 0.
01 TD PIC 9(04) COMP VALUE 0.
01 N PIC 9(04) COMP VALUE 0.
01 HV PIC 9(04) COMP VALUE 0.
01 NUM-DISP PIC 9999.
PROCEDURE DIVISION.
MAIN.
DISPLAY 'computing e'.
PERFORM INITA-ROUTINE.
PERFORM INITA-ROUTINE-B.
PERFORM INITA-ROUTINE-C.
PERFORM OUTER-LOOP.
STOP RUN.
INITA-ROUTINE.
MOVE 200 TO HV.
MOVE 0 TO X.
MOVE 199 TO N.
INITA-ROUTINE-B.
MOVE 1 TO A( N + 1 ).
SUBTRACT 1 FROM N.
IF N > 0 GO TO INITA-ROUTINE-B.
INITA-ROUTINE-C.
MOVE 2 TO A( 2 ).
MOVE 0 TO A( 1 ).
OUTER-LOOP.
SUBTRACT 1 FROM HV.
MOVE HV TO N.
PERFORM INNER-LOOP.
IF HV > 9 GO TO OUTER-LOOP.
INNER-LOOP.
DIVIDE X BY N GIVING TD.
COMPUTE TMOD = ( X - ( TD * N ) )
IF 0 = X MOVE 0 TO TMOD.
MOVE TMOD TO A( N + 1 ).
MULTIPLY 10 BY A( N ) GIVING TM.
COMPUTE X = TM + TD.
SUBTRACT 1 FROM N.
IF N > 0 GO TO INNER-LOOP.
MOVE X TO NUM-DISP.
DISPLAY NUM-DISP.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,11 @@
REM The following lines should be placed in a DOS CONFIG.SYS
REM FILES=100
REM BUFFERS=10
REM
REM The following lines should be placed in AUTOEXEC.BAT
PATH=C:\COBOL\BIN;%PATH%
SET COBDIR=C:\COBOL\BIN
SET LIB=C:\COBOL\LIB;%LIB%
SET INCLUDE=C:\COBOL\SOURCE;%INCLUDE%
SET HELPFILES=C:\COBOL\HELP;%HELPFILES%
SET INIT=C:\COBOL\INIT;%INIT%

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,650 @@
; Sample TOOLS.INI file for:
;
; Microsoft Programmer's WorkBench Version 2.00
; Copyright (c), 1989-1992 Microsoft Corp.
;
;----------------------------------------------------------------------
; To use the macros or settings in this file, copy or merge this file
; with your TOOLS.INI file.
;
; Once in TOOLS.INI, the macros and editor settings in this file can
; be defined by initializing the appropriate tagged section. A tagged
; section for PWB begins with a tag, which has the form:
;
; [PWB-name]
;
; Where <name> is the name of the tagged section.
;
; To initialize a named section of TOOLS.INI, execute Arg <name>
; Initialize, as follows:
;
; 1. Execute the Arg function (press ALT+A).
; 2. Type the name of the tagged section.
; 3. Execute the Initialize function (press SHIFT+F8).
;
; If you want certain settings to be your default settings, copy the
; contents of that section to the main PWB section.
;----------------------------------------------------------------------
; Contents
;
; Tag Description
; -------------- -----------------------------------------------
; [pwb pwb-main] Main PWB section
; [pwb-4.0] Settings for MS-DOS 4.0 and 4.1
; [pwb-5.0] Settings for MS-DOS 5.0
; [pwb-..] Default file-extension settings
; [pwb-.bak] Settings for .BAK files
; [pwb-utility] Miscellaneous utility macros
; [pwb-emulations] Selected editor emulations
; [pwb-visible] Settings for visisble whitespace characters
; [pwb-invisible] Settings for invisisble whitespace characters
; [pwb-wptab] Settings for word-processor-like tab handling
; [pwb-notab] Settings for no tab characters
; [pwb-CTPL] C templates
; [pwb-ckeys] Key assignments for C templates
; [pwb-samples] Sample macros from Help
; [pwb-tutor] Sample macros from the PWB tutorial
; [pwb-abbr] Abbreviation facility
;----------------------------------------------------------------------
; Note - Some macros in this file assume certain conditions.
;
; All macros in this file that use regular expressions assume that the
; Unixre switch is set to yes, the default value for Unixre.
;
; Many macros assume that the current selection mode is stream or box
; mode. These macros may not work correctly in line selection mode.
;----------------------------------------------------------------------
[pwb pwb-main]
; Main section of TOOLS.INI
;
; Only this section, operating-system-specific, and file extension
; sections are initialized at startup. For more information on these
; sections, see the PWB Help under TOOLS.INI.
; Autostart is executed automatically at startup.
Autostart :=
;----------------------------------------------------------------------
; Sample operating system tagged sections
[pwb-4.0]
; Settings when running on MS-DOS version 4.0 or 4.1
[pwb-5.0]
; Settings when running on MS-DOS version 5.0
;----------------------------------------------------------------------
; Sample file extension tagged sections
[pwb-..]
; Default settings for any file extension that is not otherwise
; defined.
color:text 17
[pwb-.bak]
; It's easy to open a .BAK file by mistake, so this section defines
; the text color to something noticeable.
color:text 4e
;----------------------------------------------------------------------
[pwb-utility]
; Utility macros
; Window and file management
; Close all files in the active window except the current file.
; When multiple files have been opened in a single window, this
; macro removes the extra files.
AllBut1File := cancel :>s setfile -> closefile < =>s
; Close all windows except for the active window.
AllBut1Window:= cancel :>s openfile -> meta window < =>s
; Minimize all windows.
MinimizeAll := cancel arg minimize
; Restore all windows.
RestoreAll := cancel arg minimize :>s selwindow minimize ->s \
selwindow minimize
; Change directory to directory of current file.
; Requires an editable file.
ccd := linsert curfile arg curfilenam msearch arg meta ldelete \
begline arg right right setfile begline arg setfile undo
; Change directory to directory of current file.
; Requires an editable file.
; This version is slower, but does not change the current search
; pattern.
ccd2 := linsert curfile savecur curfilenam curfileext restcur \
:>s delete cdelete left right +>s \
begline arg right right setfile begline arg setfile undo
; Synchronized error traversal: Build Results, source, and Help.
;
; Traverses messages in the build results, showing the message, the
; location of the message in the source file, and help for the message
; in arranged windows.
;
;psync - Synchronize to next message
;msync - Synchronize to previous message
;setsync- Synchronize to message at the cursor in Build Results.
syncmsg := nextmsg -> pwbhelperr openfile arg arrangewindow
psync := cancel syncmsg
msync := cancel arg "-1" syncmsg
setsync := cancel arg "<COMPILE>" pwbwindow arg arg syncmsg
psync :Alt+Down
msync :Alt+Up
setsync :Alt+Goto
;----------------------------------------------------------------------
[pwb-emulations]
; These macros approximate selected behaviors of other editors.
; Successively go to beginning of line, top left window corner,
; beginning of file.
BRIEFHome := begline +> home +> begfile
; Successively go to end of line, end of last line in the window,
; end of file.
BRIEFEnd := endline +> meta down endline +> endfile
; Emulate an emacs-style character delete. When at the end of a line,
; delete the line break. Otherwise delete the character at the cursor.
; Note that this macro includes the line break when deleting the last
; character on a line.
EmacsDel := delete "-" left right ->eol emacscdel => :>eol left \
arg meta sdelete
;----------------------------------------------------------------------
[pwb-visible]
; Settings to make tabs, trailing spaces, and trailing lines visible.
tabdisp :250
traildisp :177
traillinesdisp:7
;----------------------------------------------------------------------
[pwb-invisible]
; Settings to make tabs, trailing spaces, and trailing lines invisible.
tabdisp :32
traildisp :32
traillinesdisp:32
;----------------------------------------------------------------------
[pwb-wptab]
; Word-processor-like settings.
; Because tab characters and trailing spaces are allowed, the visible
; whitespace settings above are recommended.
; You can change tabstops and filetab to your preference, but should
; have the same value for proper emulation.
tabstops :8
filetab :8
realtabs :yes
tabalign :yes
entab :0
trailspace:yes
; Insert a tab character in insert mode.
; Move the cursor right one tab stop in overtype mode.
tabio := insertmode +>over insertmode "\t" => \
:>over insertmode tab
tabio : Tab
; Move right one tab stop in both insert mode and overtype mode.
; To insert a tab in all modes, use Quote TAB (CTRL+P, TAB)
tab :ctrl+tab
;----------------------------------------------------------------------
[pwb-notab]
; Settings so that no new tab characters are added to the file.
;
Filetab :8 ;Tabs expand to 8 spaces
Realtabs:no ;Do not preserve tabs
Entab :0 ;Translate whitespace to spaces
; Note that tab characters on unmodified lines are preserved.
;
; To strip all tabs from the file, execute the TouchAll macro with
; these settings. To also strip trailing spaces, uncomment the next
; line.
;trailspace:no
; TouchAll - Modify all nonblank lines
TouchAll:= savecur \
begfile arg arg replace "^." newline "\\0" newline restcur
TouchAll:Alt+D ;Press Alt+D to touch all nonempty lines in the file
;----------------------------------------------------------------------
[pwb-CTPL]
; C template macro set for Microsoft Programmer's WorkBench
; Copyright (c), 1989-1992 Microsoft Corp.
;
; CTPL is a useful example of an extended system of macros to
; customize the PWB. You can change this set to implement your own C
; programming style.
;
; To install CTPL, add this section to your TOOLS.INI. When you want
; to activate the macros, type:
;
; Arg "ctpl" Initialize
;
; Or define the following macro in the main section of TOOLS.INI:
;
; CTPL:=arg "Ctpl" initialize
; CTPL:Alt+F10
;
; and press ALT+F10 to initialize the C templates.
;
; Most templates are activated by typing a C keyword and executing the
; DoTpl macro (Alt+T). Templates usually insert some text, then select
; an active area--a "tag".
;
; To fill out a tag, type the replacement text.
;
; To skip the tag, execute Cancel (Press ESC).
;
; To move back and forth among tags use the Mrec (ALT+PGUP) and Prec
; (ALT+PGDN) macros.
;
; Since tags are C comments, you can compile code with incompletely
; filled-in templates.
;
; For templates that do not have a keyword--a function or prototype,
; for example--CTPL defines a key assignment. This command structure
; minimizes the number of key bindings necessary to support the CTPL
; macro set.
;
; For example, the switch template uses the macro AddCase (ALT+F9) to
; insert a case just before the default case provided by the switch
; template.
;
; HINT: Sometimes you don't want the semicolon that CTPL often places
; after a tag. In these situations press RIGHT to extend the selection
; to include the semicolon as well as the tag, and it is replaced by
; what you type.
;
; NOTE: CTPL macros assume that the current selection mode is box or
; stream mode. If this becomes troublesome for you, use the mode-safe
; versions of the SelTag and DoTpl macros. The CTPL macros also work
; correctly in stream-selection mode. If you prefer stream selection,
; change the mode-safe versions to use the _pwbstreammode macro.
;
; NOTE: Because PWB rereads a file-extension tagged section each time
; you move to the file, It is not recommend to rename the CTPL section
; as [pwb-.C]. This works, but slows down switching to .C files.
; Select word
selword :=pword ->eof mword arg meta pword => \
:>eof mword pword arg meta pword
;-- The core macro for CTPL
; select the current word and execute it
DoTpl :=selword execute
; selection-mode safe DoTpl
;DoTpl :=_pwbboxmode selword execute
;-- simple 'pairs'
parens :="()" left
subscript :="[]" left
angles :="<>" left
quotes :="\"\"" left
;-- messages
notag :=arg "No more tags" message
nobrace :=arg "Missing right brace" message
nodefault :=arg "No \"default:\" found" message
;-- tag & utilities
tag :="/*%*/"
stmt :="/*%*/;"
seltag :=arg right right right right right
; selection-mode safe seltag
;seltag :=_pwbboxmode arg right right right right right
; Tag movement - Move to and select the position to be filled in.
;mrec - Move to and select previous tag
;prec - Move to and select next tag
mrec :=cancel left arg tag msearch ->f seltag => :>f notag
prec :=cancel right arg tag psearch ->f seltag => :>f notag
;-- Utilities -- redefine to change indentation styles
;test - condition in parentheses
;plist - parameter list
;testbreak - type of break (if any) after a test
test :="( " tag " )"
plist :="( " tag " )"
testbreak :=addline
;-- utilities for adding components of C constructs
;
;addline - Add a line, with same indentation as this line
;addstmt - Add a statement after this line
;addstmti - Add an indented statement after this line
;block - Add a statement block after this line
;
addline :=cancel begline down linsert
addstmt :=addline tag mrec
addstmti :=addline tab tag mrec
block :="{" addline "}" begline linsert tab tag down endline
;-- function, prototype and utilities
;
;func - Parameter list and body
;proto - Semicolon-terminated parameter list
;main - Alias of func
;additem - Add item to the current parameter list or 'for' control
;
func :=endline savecur plist addline block restcur prec
proto :=endline plist ";" mrec
main :=func
additem :=cancel left arg arg "[;:)}]" psearch -> \
arg arg "[^ \t]" msearch right ", " tag right mrec
;printf, fprintf, sprintf - Handy templates
;
printf :=proto quotes tag "\\n" mrec
fprintf :=proto "std" tag ", " quotes tag "\\n" begline prec
sprintf :=proto tag ", " tag ", " tag mrec mrec quotes tag \
endline mrec mrec
;-- conditional constructs
;
;if - Add a condition and statement block
;else - You usually use addelse, but this is still useful
;addelse - Add an else clause to the current if statement
;addelif - Add an else-if clause to the current if statement
;while - While loop
;for - For loop template. Use additem for comma-op items
;do - Do loop template
;queryop - "() ? : " template for the ternary operator
;
if :=endline savecur test testbreak block restcur prec
else :=testbreak block mrec
addelse :=cancel arg "}" psearch ->f testbreak "else" else => :>f nobrace
addelif :=cancel arg "}" psearch ->f testbreak "else if" if => :>f nobrace
while :=if
for :=if stmt " " stmt " " tag begline prec
do :=testbreak block " while" test endline ";" mrec
queryop :=savecur test " ? " tag " : " tag restcur prec
_asm :=testbreak block mrec
;-- declarations
;
enum :=endline " " tag " { " tag " } " stmt begline prec
typedef :=endline " " tag " " stmt begline prec
struct :=endline savecur " " tag testbreak block " " stmt restcur prec
class :=struct
;-- switch statement and components
; Use add-case to build the cases of the switch.
; Use addbreak to terminate a statement section.
;
;case - Colon-terminated placeholder
;addbreak - Insert a break statement after the current statement
;addcase - Insert case just before the next or default case
;switch - Condition, block, and default case.
;swiback - By default case labels appear at the same indentation level
; as the opening 'case' For indented case labels, define it
; as 'swiback:='
swiback :=backtab
case :=endline " " tag ":" mrec
addbreak:=addstmt "break;" begline
addcase :=cancel arg arg "\\{default:\\!case\\}" psearch ->f \
linsert "case" case => :>f nodefault
switch :=endline test testbreak block mrec right meta delete swiback \
"default:" addstmti "break" mrec
;-- preprocessor utilities
;inc - #include <x>
;def - #define x x
;pragma - #pragma x( x )
inc :=begline "#" endline "lude <>" left
def :=begline "#" endline "ine " tag " " tag begline prec
pragma:=begline "#" endline " " tag plist begline prec
; The OpenInclude macro opens an include file named in the next
; #include directive. The macro demonstrates a technique using the
; Lasttext function to pick up text from the file and modify it
; without modifying the file or the clipboard.
OpenInclude := \
up meta begline arg arg "^[ \t]*#[ \t]*include" psearch -> \
arg arg "[<>\"]" psearch -> right savecur psearch -> \
selcur lasttext begline "$INCLUDE:" openfile <n +> \
lastselect openfile <
; Key Assignments
mrec :Alt+PgUp
prec :Alt+PgDn
addcase :Alt+F9
addbreak :Alt+F10
addelse :Shift+Ctrl+E
addelif :Shift+Ctrl+I
additem :Alt+,
queryop :Alt+/
parens :Ctrl+0
subscript :Alt+]
quotes :alt+'
angles :Alt+>
addstmt :Ctrl+;
addstmti :Shift+Ctrl+:
proto :Shift+Ctrl+P
func :Shift+Ctrl+F
dotpl :Alt+T
;-------------------
[pwb-ckeys]
; Initialize this section if you've switched to another type of file
; and need to recover your CTPL keys.
mrec :=cancel left arg tag msearch ->f seltag => :>f notag
prec :=cancel right arg tag psearch ->f seltag => :>f notag
mrec :Alt+PgUp
prec :Alt+PgDn
addcase :Alt+F9
addbreak :Alt+F10
addelse :Shift+Ctrl+E
addelif :Shift+Ctrl+I
additem :Alt+,
queryop :Alt+/
parens :Ctrl+0
subscript :Alt+]
quotes :alt+'
angles :Alt+>
addstmt :Ctrl+;
addstmti :Shift+Ctrl+:
proto :Shift+Ctrl+P
func :Shift+Ctrl+F
dotpl :Alt+T
;----------------------------------------------------------------------
[pwb-samples]
; This section contains example macros from help.
;
; Run the program for current PWB project
Run :=arg "run" compile
; Debug the program for current PWB project
Debug:=arg "debug" compile
; Insert spaces to next tab stop.
InsertTab := arg tab sinsert
; Indent a paragraph to the next tab stop:
para_indent:=_pwbboxmode meta mpara down begline arg \
meta ppara up begline tab insert
; Move the cursor to column one, then toggle between column one and
; the first nonblank character on the line.
ToggleBegline := left ->x meta :>x begline
; Put parts of current filename on the clipboard.
Path2clip := Arg Curfile Copy
Name2clip := Arg Curfilenam Copy
Filename2clip := Arg Curfilenam Curfileext Copy
;-------------------
; Macro utilities
; Macro writing and debugging tools, plus convenient shorthands
; Set True return value. Side effect: cancels active arguments
True := cancel
; Set False return value. Side effect: turns off Meta
False := meta +>off meta :>off meta
; The following macros test common conditions.
;
; At beginning of line?
bol? := savecur begline +>no True => :>no restcur False
; Any text at cursor?
text? := right +>yes left False => :>yes left True
; Is the current line an empty line?
empty? := meta begline endline ->yes False => :>yes True
; Display the current macro return value on the status bar, then
; reset return value. Use this macro when debugging loops and
; conditional flow control.
? := +>t arg "FALSE" message => :>t arg "TRUE" message
; Refresh - force a full screen redraw
! := meta message
; These two utilities make readable find/replace macros. For example,
; use the phrase:
; replace "<junk text>" with nothing
; to delete <junk text> from the file.
With := newline
Nothing := " " cdelete newline
; Position the window so that the next tagged section of TOOLS.INI
; starts at the top of the window.
FindTag:=arg arg "^\\[[^\\]]+\\]" psearch ->none \
arg setwindow => :>none arg "no tag" message
; Adjust each line continuation (backslash at the end of a line) so
; that it appears in column 73.
SlashJust:=savecur begfile arg arg replace \
"^\\(.*[^ ]\\) +\\\\$" newline \
"\\(-70,1) \\\\" newline restcur
; Prompt for help topic to look up.
QueryHelp := arg "Get Help On:" prompt ->no pwbhelp => \
:>no arg "Query Cancelled" message
;-------------------
; Iterations on the file.
; All... - Macros that iterate over the file, one line at a time.
; Act - Define as the action to be performed on each line.
Act :=
; Perform Act on all lines of the file, starting from the end.
AllBackward := endfile :>s act up +>s
; Perform Act on all lines from start, including a page of blank lines
; at the end of the file.
AllForward := begfile :>s act down +>s
; Perform Act on all lines from start, testing for end-of-file at each
; step. Solves 'extra lines' problem of AllForward at the cost of
; speed.
AllForward2 := begfile savecur :>s restcur act \
down savecur begline endfile +>s
;-------------------
; Perform Act at each occurrence of a regular expression in the file.
Act :=
; Regular expression to match (example is for blank line)
RE := "^$"
; Perform Act at each occurrence of RE.
For1 := begfile :>s arg arg RE psearch -> act =>s
; Like For1, but iterates much faster with the restriction that Act
; cannot perform a search.
For2 := begfile arg arg RE :>s psearch -> act =>s
;-------------------
;GetMac - Load a separate file of macros or assignments.
;
;Usage: Arg 'file' getMac where <file> is the base name of
; a file in the INIT directory
;
GetMac := cancel lasttext begline "$INIT:" endline ".MAC" \
setfile <n +>Ok lasttext begline \
"Can't find \"" endline "\"" message => \
:>Ok begfile arg endfile assign -> arg refresh
;----------------------------------------------------------------------
[pwb-tutor]
; PWB Tutorial macro examples
CloseWindows := :>Loop Openfile -> Meta Window Window =>Loop
CloseWindows : SHIFT+CTRL+W
LineComment := "// "
RevHead := "** Revision History **"
RevComment := \
Arg Arg "Start" Mark \
Begfile Arg RevHead Psearch +>Found \
Linsert LineComment RevHead \
:>Found \
Down Linsert Begline LineComment Curdate " (" \
Arg "Initials" Prompt ->Quit Paste Endline ") " \
Arg "Comment" Prompt ->Quit Paste =>End \
:>Quit Meta Ldelete \
:>End Arg "Start" Mark
RevComment:CTRL+H
;----------------------------------------------------------------------
[pwb-abbr]
; Abbreviations - Define and expand abbreviations.
; Select the current word
SelWord:= pword ->eof mword arg meta pword => \
:>eof mword pword arg meta pword
; Delete the current word and execute it
Expand := selword lasttext cancel lastselect meta sdelete lasttext execute
Expand :Alt+T
; Simple text expansion
prog := "program"
ex := "example"
; Expand 'cmd' once to get 'command', Expand twice to get 'command line'
cmd := "command"
command:= "command line"
; Expand to the contents of the file HEADER.TPL in the INIT
; directory--a good technique for large boilerplate text.
Header := arg arg "$INIT:header.TPL" paste
[end]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,53 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. SIEVE.
* REMARKS. BYTE magazine benchmark.
* REMARKS. MS Cobol limits array sizes to 1023.
* REMARKS. Projected runtime for 8190 is 4853 seconds.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MISC.
03 I PIC 9(4) COMP.
03 PRIME PIC 9(5) COMP.
03 K PIC 9(4) COMP.
03 TOTAL-PRIME-COUNT PIC 9(4) COMP.
02 SIEVETABLE.
04 FLAGS PIC 9 COMP OCCURS 8191 TIMES.
01 NUM-DISP PIC 9999.
PROCEDURE DIVISION.
MAIN.
PERFORM ITER-ROUTINE 10 TIMES.
MOVE TOTAL-PRIME-COUNT TO NUM-DISP.
DISPLAY NUM-DISP ' primes'.
STOP RUN.
ITER-ROUTINE.
MOVE ZEROES TO TOTAL-PRIME-COUNT.
PERFORM TFR VARYING I FROM 1 BY 1 UNTIL I = 8191.
PERFORM DCP THRU DCE VARYING I FROM 0 BY 1 UNTIL I = 8190.
TFR.
MOVE 1 TO FLAGS(I).
DCP.
IF FLAGS( I + 1 ) = 0
GO TO DCE.
COMPUTE PRIME = I + I + 3.
COMPUTE K = I + PRIME.
FIRST1.
IF K > 8190 GO TO NEXT1.
MOVE 0 TO FLAGS( K + 1 ).
COMPUTE K = PRIME + K.
GO TO FIRST1.
NEXT1.
ADD 1 TO TOTAL-PRIME-COUNT.
* MOVE PRIME TO NUM-DISP.
* DISPLAY 'FOUND PRIME = ' NUM-DISP.
DCE.
EXIT.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,168 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. TTT.
* REMARKS. prove tic-tac-toe is not winnable against a good foe.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 BOARD.
05 B PIC 9(04) COMP OCCURS 9 TIMES.
05 VALST PIC 9(04) COMP OCCURS 10 TIMES.
05 ALPHAST PIC 9(04) COMP OCCURS 10 TIMES.
05 BETAST PIC 9(04) COMP OCCURS 10 TIMES.
05 XST PIC 9(04) COMP OCCURS 10 TIMES.
05 PMST PIC 9(04) COMP OCCURS 10 TIMES.
01 MOVECOUNT PIC 9(04) COMP VALUE 0.
01 DEPTH PIC 9(04) COMP VALUE 0.
01 NUM-DISP PIC 9999.
01 ITER PIC 9(04) COMP VALUE 0.
01 WI PIC 9(04) COMP VALUE 0.
01 VAL PIC 9(04) COMP VALUE 0.
01 T PIC 9(04) COMP VALUE 0.
01 D PIC 9(04) COMP VALUE 0.
01 M PIC 9(04) COMP VALUE 0.
01 X PIC 9(04) COMP VALUE 0.
01 PM PIC 9(04) COMP VALUE 0.
01 SC PIC 9(04) COMP VALUE 0.
01 Z PIC 9(04) COMP VALUE 0.
01 ALPHA PIC 9(04) COMP VALUE 0.
01 BETA PIC 9(04) COMP VALUE 0.
01 FIRSTMOVE PIC 9(04) COMP VALUE 0.
PROCEDURE DIVISION.
MAIN.
DISPLAY 'hello from cobol'.
MOVE 1 TO ITER.
INITBOARD.
MOVE 0 TO B( ITER ).
ADD 1 TO ITER.
IF ITER < 10 GO TO INITBOARD.
MOVE 0 TO ITER.
NEXTITER.
MOVE 0 TO MOVECOUNT.
MOVE 1 TO FIRSTMOVE.
PERFORM RUNMM.
MOVE 2 TO FIRSTMOVE.
PERFORM RUNMM.
MOVE 5 TO FIRSTMOVE.
PERFORM RUNMM.
ADD 1 TO ITER.
IF ITER < 10 GO TO NEXTITER.
DISPLAY 'final move count and winner: '.
MOVE MOVECOUNT TO NUM-DISP.
DISPLAY NUM-DISP.
MOVE SC TO NUM-DISP.
DISPLAY NUM-DISP.
STOP RUN.
RUNMM.
MOVE 1 TO B( FIRSTMOVE ).
MOVE FIRSTMOVE TO X
MOVE 2 TO ALPHA
MOVE 9 TO BETA
PERFORM MINMAX.
MOVE 0 TO B( FIRSTMOVE ).
WINNER.
MOVE 0 TO WI.
MOVE B( 1 ) TO T.
IF 0 NOT = T AND T=B(2) AND T=B(3) MOVE T TO WI
ELSE IF 0 NOT= T AND T=B(4) AND T=B(7) MOVE T TO WI.
IF 0 = WI
MOVE B(2) TO T
IF 0 NOT= T AND T=B(5) AND T=B(8) MOVE T TO WI
ELSE
MOVE B(3) TO T
IF 0 NOT= T AND T=B(6) AND T=B(9) MOVE T TO WI
ELSE
MOVE B(4) TO T
IF 0 NOT= T AND T=B(5) AND T=B(6) MOVE T TO WI
ELSE
MOVE B(7) TO T
IF 0 NOT= T AND T=B(8) AND T=B(9) MOVE T TO WI
ELSE
MOVE B(5) TO T
IF 0 NOT= T AND T=B(1) AND T=B(9) MOVE T TO WI
ELSE
IF 0 NOT= T AND T=B(3) AND T=B(7) MOVE T TO WI.
SHOWPOS.
MOVE B(Z) TO NUM-DISP.
DISPLAY NUM-DISP.
SHOWBOARD.
DISPLAY 'board: '.
PERFORM SHOWPOS VARYING Z FROM 1 BY 1 UNTIL Z>9.
INITVALPM.
DIVIDE DEPTH BY 2 GIVING D.
MULTIPLY D BY 2 GIVING M.
IF DEPTH NOT = M
MOVE 2 TO VAL
MOVE 1 TO PM
ELSE
MOVE 9 TO VAL
MOVE 2 TO PM.
MINMAX.
ADD 1 TO MOVECOUNT.
MOVE 0 TO VAL.
IF DEPTH > 3
PERFORM WINNER
IF WI NOT = 0
IF WI = 1 MOVE 6 TO VAL ELSE MOVE 4 TO VAL
ELSE IF DEPTH = 8 MOVE 5 TO VAL.
IF 0 = VAL
PERFORM INITVALPM
ADD 1 TO DEPTH
PERFORM MAKEMOVE VARYING X FROM 1 BY 1 UNTIL (X>9)
SUBTRACT 1 FROM DEPTH.
MOVE VAL TO SC.
UPDATEODD.
IF SC = 6 MOVE 10 TO X.
IF SC > VAL MOVE SC TO VAL.
IF VAL NOT < BETA MOVE 10 TO X.
IF VAL > ALPHA MOVE VAL TO ALPHA.
UPDATEEVEN.
IF SC = 4 MOVE 10 TO X.
IF SC < VAL MOVE SC TO VAL.
IF VAL NOT > ALPHA MOVE 10 TO X.
IF VAL < BETA MOVE VAL TO BETA.
UPDATESTATE.
IF PM = 1 PERFORM UPDATEODD
ELSE PERFORM UPDATEEVEN.
MAKEMOVE.
IF B( X ) = 0
MOVE PM TO B( X )
MOVE VAL TO VALST( DEPTH )
MOVE X TO XST( DEPTH )
MOVE PM TO PMST( DEPTH )
MOVE ALPHA TO ALPHAST( DEPTH )
MOVE BETA TO BETAST( DEPTH )
PERFORM MINMAX
MOVE BETAST( DEPTH ) TO BETA
MOVE ALPHAST( DEPTH ) TO ALPHA
MOVE PMST( DEPTH ) TO PM
MOVE XST( DEPTH ) TO X
MOVE VALST( DEPTH ) TO VAL
MOVE 0 TO B( X )
PERFORM UPDATESTATE.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,11 @@
del %1.obj
del %1.exe
ntvdm -r:.. -c -d cobol %1,%1,%1,%1
rem link.exe that ships with cobol requires 286+ protected mode. use msvc v5's linker instead
rem qbx's link.exe executes code in a segment it just freed
ntvdm -h -i -c -r:.. /e:lib=c:\lib mcv5link %1,,%1,,nul.def
ntvdm -c -m -p %1

Binary file not shown.

View File

@ -0,0 +1,721 @@
CBL-CMPT.DOC File
Compatibility with Previous Releases of Microsoft(R) COBOL
(C) Copyright Microsoft Corporation, 1993
Contents
--------
Introduction
Changes in Microsoft COBOL 5.0
Changes in Microsoft COBOL 4.5
Changes in Microsoft COBOL 4.0
Documentation
Introduction
------------
This document is for use when maintaining applications created using
earlier releases of this product.
It describes the differences that may cause problems, and includes
documentation of features no longer documented in this system, but
maintained for compatibility.
Note that the use of the compiler with default settings will cause the
use of new words to become reserved. A list of these words is given
below.
Changes in Microsoft COBOL 5.0
------------------------------
Compiling
---------
o ON EXCEPTION is no longer allowed with CHAIN since it has never been
supported at run-time. It now gives a severity E error message which
does not prevent compilation from continuing. Using HIDEMESSAGE(1047)
will prevent the error from being visible."
o Use of the MF directive when compiling will cause some data-names
to be illegal as the reserved word list has been extended. If you
have this problem, either change the data-name, use the
REMOVE(reservedword) directive or recompile with MF(7).
New reserved words included when using MF(8) are:
IGNORE
KANJI
LOWER
NATIONAL
NATIONAL-EDITED
UPPER
WAIT
o The RW directive has been withdrawn. It has had no effect since
COBOL V4.0.
o The default for the PANVALET directive is now NOPANVALET. ++INCLUDE
is no longer flagged when PANVALET is specified, and -INC is no
longer flagged when LIBRARIAN is specified. If you specify LIBRARIAN
and PANVALET together, a warning is displayed that the compiled
program may not be mainframe-compatible.
o ON EXCEPTION and ON OVERFLOW clauses are no longer accepted for the
CHAIN verb. The WARNING message that was given for them has been
changed to an ERROR message. (In previous releases the syntax
was accepted but there was no run-time support.)
o The handling of Directives files has changed so that they can now be
truly nested. Previously, if you specified the DIRECTIVES directive
in a directives file, the Compiler switched to the new directives
file and did not return to the original one. Now it does return.
Consequently, further directives in the original Directives file are
processed, whereas in previous releases they were ignored.
Changes in Microsoft COBOL 4.5
------------------------------
Compiling
o Use of the MF directive when compiling will cause some data names
to be illegal as the reserved word list has been extended. Change
the dataname, use the REMOVE(reservedword) directive or recompile
with MF(6).
New reserved words included when using MF(7) are:
ALPHABET ALPHABETIC-LOWER ALPHABETIC-UPPER
ALPHANUMERIC ALPHANUMERIC-EDITED ANY
BINARY CLASS COMMON
COMP-1 COMP-2 COMP-4
COMPUTATIONAL-1 COMPUTATIONAL-2 COMPUTATIONAL-4
CONTENT CONTINUE CONVERTING
CYCLE DAY-OF-WEEK DBCS
DISPLAY-1 EJECT END-ADD
END-CALL END-COMPUTE END-DELETE
END-DISPLAY END-DIVIDE END-EVALUATE
END-IF END-MULTIPLY END-PERFORM
END-READ END-RECEIVE END-RETURN
END-REWRITE END-SEARCH END-START
END-STRING END-SUBTRACT END-UNSTRING
END-WRITE EOL EOS
EQUALS EVALUATE EXCEEDS
FALSE FUNCTION GLOBAL
ID INITIALIZE LOWLIGHT
NUMERIC-EDITED ORDER OTHER
PACKED-DECIMAL PADDING PARAGRAPH
PURGE REFERENCE REPLACE
SKIP1 SKIP2 SKIP3
SORT-RETURN STANDARD-2 TEST
TIME-OUT TIMEOUT TITLE
TRUE UNEQUAL WAIT
WHEN-COMPILED
Note that most of these words are already reserved under the ANS85 or
VSC2 directives, so will only become new if you are compiling with MF
but without ANS85 or VSC2.
o RM compatibility
When compiling for RM compatibility, if the same behavior is required
as with Microsoft COBOL 4.0 then you should compile with the
DETECTLOCK directive.
o ASSIGN TO PRINTER
Files defined with ASSIGN TO PRINTER are treated as LINE ADVANCING in
COBOL 4.5. In 4.0, they were treated as LINE SEQUENTIAL.
o NEXT SENTENCE
In COBOL 4.0, you could make NEXT SENTENCE jump to the appropriate
end-scope delimiter by using the MF"5" directive (see below). In 4.5
this directive does not have this effect.
o Nested Programs
In V4.0, nested programs could have Configuration Sections. In V4.5
they cannot.
o The "DISPLAY ... UPON CRT Attributes Behavior" switch S6 is no longer
documented in the Operating Guide. Here is its description. With the
Enhanced DISPLAY (see the Screen Handling chapter of the Language
Reference Manual), if no attributes are specified on the DISPLAY then,
by default, the attributes already existing in the given area will be
used. If the switch +S6 is specified at run time the normal screen
attributes will be used instead.
o In earlier versions of this COBOL system all system library routines
were call-by-number. Many of the call-by-name routines in the present
product replace old call-by-number routines. The list below indicates,
for each call-by-name routine that has replaced a call-by-number
routine, the number of the routine it has replaced. In some cases the
call-by-name routine has additional features.
Name Number
---- ------
CBL_READ_SCR_CHARS B7 0
CBL_READ_SCR_ATTRS B7 2
CBL_READ_SCR_CHATTRS B8 0
CBL_WRITE_SCR_CHARS B7 1
CBL_WRITE_SCR_ATTRS B7 3
CBL_WRITE_SCR_CHATTRS B8 1
CBL_WRITE_SCR_TTY 82
CBL_WRITE_SCR_N_CHAR B7 4
CBL_WRITE_SCR_N_ATTR B7 5
CBL_SWAP_SCR_CHATTRS B8 2
CBL_GET_SCR_SIZE E3
CBL_SET_CSR_POS E6
CBL_CLEAR_SCR E4
CBL_GET_KBD_STATUS D9
PC_READ_DRIVE 91 5
PC_SET_DRIVE 91 6
CBL_READ_DIR 91 7
CBL_CHANGE_DIR 91 8
CBL_DELETE_FILE 91 18
CBL_RENAME_FILE 91 17
PC_TEST_PRINTER B0 7
CBL_SPLIT_FILENAME 8C
CBL_JOIN_FILENAME 8D
o The behavior of COPY ... REPLACING has been changed depending on the
setting of the ANS85 or VSC2(3) directives. Previously all non-COBOL
characters were disallowed in operands to COPY ... REPLACING, and
lowercase and colon were added to the character set. This behavior now
only occurs if the ANS85 or VSC2(3) directive is used. Otherwise, the
operands may contain non-COBOL characters.
Changes in Microsoft COBOL 4.0
------------------------------
General
o When installing on an OS/2 system, SETUP will add PATH and
environment variable information to CONFIG.SYS and not to OS2INIT.CMD
as in previous releases. This conforms with the standard for
installing OS/2 v1.1 and later.
o The files, DBCS.EXE/.DLL and V-ISAM.DLL are no longer required, and
are not included with this release.
o The shared run-time files, COBLIB.DLE and COBLIB.DLL are used by the
components of this system, and must be loaded for the system to
operate. COBLIB.DLE is required for DOS, COBLIB.DLL for OS/2.
o The callable file handler interface is no longer part of this
product. If you wish to use the CALLFH feature, or to call the file
handler directly, you will require a copy of the Micro Focus COBOL/2
Toolset.
Compiling
o The default directives, NOCOPYLBR, ANS85, NOOSVS and MF are now built
into the compiler and are not included in the COBOL.DIR created by
SETUP. ANS85 and OSVS can be changed by SETUP, so that NOANS85 and/or
OSVS are included in the COBOL.DIR created by SETUP. SETUP also
allows selection of SAA and the default linking libraries.
o VSC2 is now equivalent to VSC2(3). Previously VSC2 was equivalent to
VSC2(2). The directives VSC2 OLDVSC2 have been replaced by VSC2(1).
o The directive OLDFILEIO has been replaced by the directive IDXFORMAT
which defines the type of indexed file required. IDXFORMAT"2" is
equivalent to OLDFILEIO.
o The verb, GOBACK, and the special register, RETURN-CODE are now part
of the standard Micro Focus(R) COBOL language and can be used without
needing VSC2 or OSVS. They are enabled by an MF level of 5 or above
(on by default) and can, therefore, be disabled by specifying MF(4).
o Comments following the PROGRAM-ID, which were allowed in previous
versions, are now not allowed by default. They can, however, be
enabled using the PROGID-COMMENT directive.
o For interfacing at the assembler level, note that the object segment
class names created by the COBOL compiler have changed in this
release.
o The default ALPHASTART value has been set to 1 to conform to the
ANSI'85 standard. In previous versions, this was set to 0. If you
have programs that use the ALPHABET clause of the SPECIAL-NAMES
paragraph, you may need to specify the directive ALPHASTART"0" to
maintain the required behavior.
o ACCEPT .. FROM DAY-OF-WEEK
The statement
ACCEPT data-item FROM DAY-OF-WEEK
incorrectly returned the value 0 for Sunday. It now returns a value
of 7, as documented.
o COMP-5
The default behavior of USAGE COMP-5 data items has been changed. In
previous versions of the product, COMP-5 was treated in a similar
fashion to signed COMP. It is now treated in a similar fashion to
COMP-X, allowing it to be a true binary numeric item using machine
specific byte ordering. This makes it a very efficient data type.
If you use COMP-5 in existing programs, and depend on its sign
handling, you should compile your programs with the COMP-5"1"
directive.
o NEXT SENTENCE
NEXT SENTENCE is handled differently in this version of the product.
In previous versions NEXT SENTENCE would cause control to move to the
end of the sentence (i.e. following the next period) or to the
statement following the next end-scope delimiter. In this version, it
will always go to the end of the sentence, as defined by the ANSI'85
standard.
If your program uses NEXT SENTENCE and relies on the change of
control being to the appropriate end-scope delimiter, you can use the
MF"5" directive (but see above for V4.5). Alternatively, change the
NEXT SENTENCE phrases to CONTINUE, which will have the desired
effect.
o SYMBOLIC CHARACTERS clause
The default SYMBSTART value has been set to 1 to conform to the
ANSI'85 standard. In previous versions, this was set to 0. If you
have programs that use the SYMBOLIC CHARACTERS clause of the
SPECIAL-NAMES paragraph, you may need to specify the directive
SYMBSTART"0" to maintain the required behavior.
o RECORDING MODE
The RECORDING MODE phrase has been amended so that, when it is
explicitly included in an FD, it overrides the RECORD clause in all
cases, with RECORDING MODE F always causing a fixed format file to be
created, and RECORDING MODE V a variable format file.
If you require the original behavior, whereby RECORDING MODE is
overridden by the RECORD clause, then use the MF"5" directive.
Note that the RECMODE directive will not override the RECORD clause.
o REPORT-WRITER reserved words
The RW directive has been made obsolete by incorporating the REPORT-
WRITER reserved words into the main dialects that support REPORT-
WRITER. If you have a program that uses some REPORT-WRITER reserved
words as data names, and used to be compiled with the NORW directive,
then you need to replace the NORW directive by USE(NORW). This will
cause the REPORT-WRITER reserved words to be removed from the
reserved word list, making them available for use as data names.
o INSPECT
The handling of the LEADING phrase in INSPECT has been amended to
make it conform to a recent interpretation of the ANSI'85 standard.
For example, if data-stream contains "//AAA BBB OOO CCC", the
statement
INSPECT data-stream TALLYING count-field
FOR LEADING "A" "\" " "O" "C"
returned the value 5 in count-field in previous versions, but now
returns the value 2. This is because the remaining characters in the
LEADING phrase are considered to be ineligible once a match has been
found on one of the characters.
o COPY filenames
Since this version now distinguishes between filenames with no
extension, but with a trailing period, and those without a trailing
period (treating the former as a specified extension of spaces),
some COPY statements in existing programs may appear to stop
working. If you want your copy files to have extension .CPY, but
code them in your program with no extension, then you must be sure
that the name does not have a trailing period. For example, change:
COPY "mycopy.".
to
COPY "mycopy".
Note that
COPY mycopy.
is treated as if it has no trailing period, and hence as in previous
versions.
Running
o A large number of the run-time system subprogram calls, provided in
earlier releases as call-by-number calls, have been replaced by named
calls. In addition to making the calls easier to remember and use,
the call-by-name calls can accept parameters defined in any part of
the data division.
The replaced call-by-number calls are still supported in this
release, and documented below. However, we recommend that you
replace them with the equivalent call-by-name calls as appropriate.
o Record sizes
In previous releases, the maximum and minimum record sizes specified
for a variable format file had to be the same in every program
referencing the file. This restriction has been removed, allowing
programs to specify record lengths different to those specified in
the program used to create the file. However, if an attempt is made
to write a record which is smaller than the smallest defined or
larger than the largest defined a run-time error, 9/044, will be
returned.
Animating
o The method required to animate programs has changed in this release.
When a program is compiled for animation, using the ANIM directive,
intermediate code files are packaged into .OBJ files and .DLL on
OS/2). These .EXE/.DLL files can be animated in the usual way. The
pure intermediate code files (.INT) are no longer required for
animation.
o Since the new animation method incorporates a link step, any non-
COBOL .OBJ files can be linked in prior to animation. These will
operate correctly when encountered, though always in zoom mode. This
new technique makes IANIM and augmented INT obsolete, and these
facilities are not supported in this release.
The same method allows OS/2 API function calls to be resolved prior
to animation, avoiding the need for the Install Function technology
of earlier releases.
o This release has the +F switch set by default. This will cause
illegal data in numeric fields to be trapped during animation, and
when running intermediate code .OBJ files (run-time system error
163). This may cause existing programs to fail where they previously
worked. However, trapping such instances will help prevent the
subsequently generated code from failing. All generated programs will
work as at present, always assuming that numeric fields contain
numeric data.
Linking
o The linking library, OS2.LIB, should be used instead of DOSCALLS.LIB
when linking applications for use on OS/2(tm). OS2.LIB is supplied as
part of the utilities. (DOSCALLS.LIB can be used provided the
application is not a Presentation Manager application.)
o The /NOP option is no longer required when linking for use on OS/2.
o The default environment for applications created using this release
is the shared run-time environment. This is particularly recommended
for use on OS/2, where a single copy of COBLIB.DLL can be shared by
any COBOL application (built to use COBLIB) running in any OS/2
session.
To use this environment, the application is linked in the usual way,
using the libraries, COBLIB.LIB, and COBAPI.LIB or OS2.LIB depending
on DOS or OS/2. The EXE files produced will be much smaller since
little run-time system code is included directly. System programs,
such as EXTFH and ADIS, can be linked in with the application, or
linked as standalone sub-programs. Again, for OS/2, if linked as
standalone .DLL files, they can be shared by any number of COBOL
applications.
Notes:
- These system programs MUST be linked with COBLIB for use with
COBLIB applications.
- Modules linked with COBLIB cannot be mixed with modules linked
with LCOBOL. Hence, applications must be either all LCOBOL or all
COBLIB. However, COBLIB applications and LCOBOL applications can
be run on the same environment as long as they don't try to call
each other.
o The linking library (.LIB) files supplied with the system have been
split in a different way to enable reduced disk usage. They now
consist of LCOBOL.LIB, COBLIB.LIB, and COBAPI.LIB. The new LCOBOL
is equivalent to the old PCOBOL. The addition of COBAPI.LIB to
LCOBOL.LIB gives the old LCOBOL. (Users may like to recombine these
libraries using LIB if they wish to retain old working practices.)
For OS/2 operation, LCOBOL.LIB is used in combination with OS2.LIB
(which supersedes DOSCALLS.LIB).
In the shared run-time system, the default, COBLIB.LIB, is equivalent
to the old PRCOBOL.LIB. Again, either COBAPI.LIB or OS2.LIB is used
in combination with COBLIB.LIB to complete the linking for DOS or
OS/2 respectively. Applications linked with these libraries will be
very much smaller, benefiting from the shared run-time system support
in COBLIB.DLE and COBLIB.DLL. (Note that the application itself can
be bound so that it will run on both DOS and OS/2 provided both
shared run-time system files are present.)
o If you select a linking environment other than the built-in default,
SETUP will create a default LINKLIB in your COBOL.DIR. The default,
and equivalent of earlier releases, is LINKLIB(LCOBOL+COBAPI). If
you normally use the system on OS/2, use LINKLIB(LCOBOL+OS2). With
this release, the default is to use the COBLIB shared run-time system,
requiring LINKLIB(COBLIB+COBAPI) on DOS, and LINKLIB(COBLIB+OS2) on
OS/2.
When the default has been set in this way, you can still link for use
in other environments by specifying the relevant libraries on the
LINK command line. However, you should use the /NOD directive when
doing so, otherwise link-time errors may occur.
o The file handler for indexed files, IXSIO, has been replaced by the
external file handler, EXTFH. This can be linked in exactly the same
way as IXSIO in earlier releases, either linked in with the
application or linked as a standalone system program.
Programs referencing ANSI'85 EXTERNAL files and normal indexed files
now only use EXTFH rather than two separate file handlers.
Compatibility issues
Compiling
o If you compile your programs on OS/2 using batch files, you will need
to alter the batch files to compile using the command COBOL instead
of PCOBOL. Alternatively, you can copy COBOL.EXE to PCOBOL.EXE in the
COBOL system directory.
o Programs previously compiled without the ANS85 directive, if
recompiled under this default system, may not work correctly. The
most likely cause is that the new system has ANS85 on by default.
This causes all file status codes to be ANS85 not ANS74 statuses.
The problem can be avoided by using the NOANS85 directive when
compiling any program that is designed to work with ANS74 file
statuses.
Animating
o The compiler dictionary structure has been amended. This means that
IDY files created by earlier releases will not be compatible with
ANIMATOR in this system. Hence, you should recompile, with this
release of the compiler, any program you wish to animate.
Linking
o .OBJ files created by this release are not compatible with .OBJ files
created by earlier releases. Hence, if you need to rebuild an
application where one of the OBJs has been created using this
release, you must recompile all the programs with this release of the
compiler before linking.
Running
o In previous versions of this software, an error is given when an
indexed file is opened if the record lengths of the file do not
exactly match those given in the FD. This has been changed so the
error is only given if an attempt is made to WRITE a record larger
than the maximum or smaller than the minimum.
o The Report Writer module has been changed so that it is compatible
with IBM(R) OS/VS COBOL when the OSVS directive is used. This is the
ANSI'68 COBOL standard. In previous versions, the default with OSVS
was ANSI'74 COBOL standard report writer. You may have report writer
programs using OSVS features, but requiring ANSI'74 report writer
compatibility. This mix is no longer possible, and you will either
need to remove the OSVS features (try VSC2), or accept ANSI'68 COBOL
report writer standard.
Documentation
-------------
Call-by-number subprogram calls.
Many of the COBOL system library routines provided in earlier releases as
call-by-number have been replaced by call-by-name routines. We recommend
that you replace all call-by-number routines by their equivalent call-by-
name routines. See your Operating Guide chapter, COBOL System Library
Routines, for details of which call-by-name routines replace these.
To allow you to maintain existing applications, the documentation for the
replaced call-by-number routines follows:
PUT A CHARACTER TO THE SCREEN
CALL X"82" USING character.
where:
character is a PIC X field containing the character to be put on the
screen in the current cursor position.
The cursor is then advanced one position to the right, or onto the next
line if it is in the rightmost position, or off the screen if it is in
the bottom right-hand corner.
READ A CHARACTER FROM THE KEYBOARD
CALL X"83" USING character.
where:
character is a PIC X field to contain the character returned.
Notes: 1. A call on this subprogram also causes the function key table
to be checked and the result byte updated.
2. If the character returned from this subprogram is a carriage-
return character (hex 0D), then the character read from the
keyboard has been recognized by the function key table, and
the result byte of that table should be checked to determine
the actual character which has been pressed.
3. If the character read is a 2-byte character (such as a
function key) and it was not matched in the function key
table, then both bytes are returned to this subprogram. The
first call returns a null byte (hex 00) and the next call
returns the scan code (refer to the IBM Personal Computer
Technical Reference Manual for details of scan codes).
4. Break can be used to interrupt a running program. However,
if the program was in the middle of a call to this subprogram
at the time, nothing happens until the call on this
subprogram is satisfied by reading another character from the
keyboard. Break is not returned by this routine.
SCREEN INPUT AND OUTPUT
CALL X"B7" USING function, parameter, buffer
where:
function is a PIC 99 COMP-X data item and contains a value:
0 to read characters from the screen
1 to write characters to the screen
2 to read attributes from the screen
3 to write attributes to the screen
4 to clear characters from the screen
5 to clear attributes from the screen
parameter is a group item consisting of three data items:
o a PIC 9(4) COMP-X field showing the length of the data to be
read or written.
o a PIC 9(4) COMP-X field giving the start position on the screen.
Top left is position 1, 81 is the start of the next line, etc.
o a PIC 9(4) COMP-X field showing the start position in the buffer.
The starting buffer position is 1.
buffer is the COBOL data area. It is a PIC X(n) field and may be as
large or small as you require to write your data.
An entire screen of text or attributes is 2000 bytes. No check is made
that any data to be read will fit into your buffer. Therefore, if the
length specified is greater than the length available in your buffer, any
subsequent data will be corrupted. Buffer is not used with a function of
4 or 5, but this parameter must still be supplied.
Note: When writing or clearing characters, the User attribute is imposed
on the character position, unless the User attribute flag is set
off, in which case the current Screen attribute for that character
position is used.
SCREEN CELL INPUT AND OUTPUT
CALL X"B8" using FUNCTION PARAMS CHARBUFF ATTRBUFF
where parameters are:
01 FUNCTION PIC 9(2) COMP-X
= 0 to read screen to character and attribute buffers
= 1 to write screen from character and attribute buffers
= 2 to swap screen with character and attribute buffers
01 PARAMS
03 P-LENGTH PIC 9(4) COMP-X.
03 P-SOFFSET PIC 9(4) COMP-X.
03 P-BOFFSET PIC 9(4) COMP-X.
P-LENGTH = number of screen cells to read/write/swap
P-SOFFSET = screen offset (1 = top left)
P-BOFFSET = buffer offset (1 = start of buffer)
01 CHARBUFF
03 CHARS PIC X OCCURS n TIMES
= an array of character bytes
01 ATTRBUFF
03 ATTRS PIC X OCCURS n TIMES
= an array of associated attribute bytes
TEST CONSOLE STATUS
CALL X"D9" USING parameter.
where:
parameter is a PIC 99 COMP-X field and shows the status of the
console:
zero there is no character waiting to be read from the
keyboard
non-zero there is a character waiting to be read from the
keyboard
When a program is being animated in other than zoom mode, this function
always returns a zero (i.e., it never detects a character), because
ANIMATOR always looks for characters. However, the function operates
correctly when zoom mode is used.
GET SCREEN SIZE
CALL X"E3" USING no-lines, no-cols.
where:
no-lines is a PIC 99 COMP-X field and shows the number of lines on
the screen.
no-cols is a PIC 99 COMP-X field and shows the number of columns on
the screen.
CLEAR SCREEN
CALL X"E4".
This routine clears the entire user screen.
MOVE THE CURSOR TO A DEFINED POSITION
CALL X"E6" USING result, parameter.
where:
result is a PIC 99 COMP-X field. It is not used.
parameter is a group item consisting of two data items:
o a PIC 99 COMP-X field specifying the row number for the cursor to
be moved to; in the range 0 to 24.
o a PIC 99 COMP-X field giving the column number for the cursor to
be moved to; in the range 0 to 79.
==========================================================================
Copyright (C) 1993 Microsoft Corporation
Copyright (C) 1993 Micro Focus Ltd

View File

@ -0,0 +1,666 @@
DOCUPDT.DOC File
Documentation Update Notes for the Microsoft(R) COBOL
Professional Development System
Version 5.0
(C) Copyright Microsoft Corporation, 1993
(C) Copyright Micro Focus Ltd., 1993
This document contains essential printed documentation updates
for version 5.0 of the Microsoft COBOL Professional Development
System for MS-DOS(R) and Microsoft(R) Windows. The information
iin this document is more up-to-date than the printed documentation.
============================< CONTENTS >==================================
INTRODUCTION
GENERAL CHANGES
DOCUMENTATION CORRECTIONS
Getting Started
COBOL Programming for Windows
Compatibility Guide
Environment and Tools
Language Reference
System Reference
User Guide
=========================================================================
INTRODUCTION
============
These Documentation Update Notes detail known problems in
and additions to your COBOL manuals. You may want to mark
the changes in your manuals.
=========================================================================
GENERAL CHANGES
===============
Throughout the documentation, the term "text window" can be
interchanged with the term "default window".
=========================================================================
DOCUMENTATION CORRECTIONS
=========================
Getting Started
---------------
Chapter 3 (Configuring Your System)
o Page 17
In the "Understanding Memory Requirements" section,
replace the sentence that begins "To run CodeView,
LINK, or CVPACK ..." with the following:
"To run CodeView or CVPACK, you need one of the
following memory managers:"
o Page 17
After the bulleted list at the top of the page, add
this paragraph:
"To run LINK or a COBOL program in MS-DOS (without
Windows running) you need a DPMI or VCPI memory
manager."
COBOL Programming for Windows
-----------------------------
Chapter 4 (Building Visual Basic Applications)
o Page 32
Do not pass parameters from Visual Basic to COBOL
DLLs by value.
Compatibility Guide
-------------------
Chapter 9 (Running convert3)
o Page 79
Add the following option to the list in the section "File
Details":
5. The conversion of COMP-6 items to VS-COMP. This can be either
Y, in which case behavior is as described in the section
"COMP-6/COMPUTATIONAL-6 Data" in the chapter "Converting
RM\COBOL Data Files", or N, in which case COMP-6 items are
not converted to VS-COMP. The default setting is Y.
o Page 93
Add the following new parameter to the list in the section
"The Parameter File":
COMP6-COMP
o Page 86
Add the following after the section "The Run Parameter":
The COMP6-COMP Parameter
------------------------
The COMP6-COMP parameter allows you to specify whether or not
to convert COMP-6 items to VS-COMP. The parameter has the
following format:
COMP6-COMP Y/N
where:
Y gives behavior as described in the section
"COMP-6/COMPUTATIONAL-6 Data" in the chapter "Converting
RM\COBOL Data Files"
N means COMP-6 items are not converted to VS-COMP.
The default is Y.
Environment and Tools
---------------------
Chapter 5 (Advanced PWB Techniques)
o Page 82
In the "Using Regular Expressions" section, after the
second paragraph, add this note:
Note: When using regular expressions in the PWB
Find or Replace dialog boxes, you must select the
Regular Expression check box.
o Page 86
Under the procedure heading "> To create a batch file
that copies the COBOL files to a subdirectory:", in
step number 4, change the regular expression:
^\([^ ]+\)[ ]+\([^ ]+\).*
to look like this:
\([^ #]+\)[# ]+\([^ #]+\).*$
The pound signs (#) represent the key combination:
Ctrl-P, Tab
which will appear as a diamond in PWB.
Chapter 8 (Getting Started with CodeView)
o Page 304
In the example on this page, replace the two EVAL example
statements with the following:
Eval:C:\C700\DLL\EEDICAN.DLL .C .ABC .ASM .H .CPP
Eval:C:\COBOL\BIN\EEDLCOB.DLL .CBL .CPY .CBI .COB
Chapter 10 (Using Expressions in CodeView)
o Page 349
In the "Conditional expression" bulleted item, change
this phrase "...linked by a relationship operator." to:
"...linked by a relational operator."
Chapter 11 (CodeView Reference)
o Page 386
Add the following sentence to the description of the
[=]<expression> parameter in the R(Register) command:
The <expression> must result in a non-edited
numeric value.
o Page 386
Add the following paragraph to the end of the
"Description" section of the R(Register) command:
If the <expression> is relational and its result is
TRUE, the value 1 is moved into the register. If the
<expression> is false, a 0 is moved.
o Page 389
In the table for the X(Examine Symbols) command, only the
M & P scopes are relevant to COBOL. The other scopes
do not apply because of the nature of the COBOL language.
Language Reference
------------------
Volume 1, Chapter 2 (COBOL Concepts)
o Page 77
Under the "Continuation of Lines" section in the second
paragraph, the last sentence says:
"Area A of a continuation line must be blank."
This ANSI '85 restriction is NOT enforced by COBOL 5.0.
Volume 1, Chapter 3 (The Nucleus)
o Page 265
Add the following as General Rule 5 of the ENTRY statement:
The BY REFERENCE and BY VALUE phrases are transitive
across the parameters which follow them until another
BY REFERENCE or BY VALUE phrase is encountered.
If no BY REFERENCE or BY VALUE phrase is specified
prior to the first parameter, the BY REFERENCE phrase
is assumed.
o Page 277
Replace syntax rule 9 of the EXIT statement with the
following:
Data-name-1 must be specified in the Working Storage
Section.
System Reference
----------------
Chapter 2 (ADIS)
o Pages 40 and 41
In the example that starts at the end of page 40
and continues to the top of page 41, change the
following:
Change: move "a" to first-data-key
to: move "A" to first-data-key
Change: display "a pressed"
to: display "A pressed"
Change: display "b pressed"
to: display "B pressed"
Change: display "z pressed"
to: display "Z pressed"
Chapter 4 (Animator)
o Page 77
At the top of the page, in the first full paragraph,
delete this sentence:
For information on compiling and linking
Windows-based applications for debugging with
Animator, refer to the COBOL Programming for
Windows.
Chapter 5 (COBOL File Handling)
o Page 128
In the section "File Compression", before the subheading
"Key Compression" insert an extra paragraph:
The final $SET DATACOMPRESS and $SET KEYCOMPRESS
statements in a source file set the type of data
and key compression used for all files in that
program, unless subsequent settings are explicitly
stated for each file.
o Page 129
In the section "Data Compression", 2nd paragraph, delete
the sentence:
However, since variable-structure files take more
space than fixed structure files, there are certain
cases in which a bigger file may result.
o Page 130
In the first line of the example program at the top of
the page, change "$set datacompress" to:
"$set datacompress"1" CALLFH"
o Page 131
In the section "The XFH2BTR Call Converter", replace the
sentence that begins "The XFH2BTR call converter is
compatible with ..." with the following text:
The XFH2BTR call converter is compatible with
versions of Btrieve 5.10 and above on the following
platforms:
o Page 132
In the section "The XFH2BTR Call Converter", after the
paragraph that starts "When the converter needs to
call ....." and ends "...with Extended Memory Manager (XM)."
add the following:
Note: You can call the module _BTRV direct from
a COBOL program using the same parameters that are
used in Btrieve API calls. However, the "key buffer"
parameter must be at least 255 bytes long.
o Page 133
In the section "The Filetype Compiler Directive."
When using Btrieve to access information on a server,
if the current working drive is not mapped to the server
that you are using, the file specification must include
the server path (drive letter).
For example: If the current working drive is C and the
server drive is F, then the "select" statement on page
133 of the System Reference would look like this:
select testfile-1 assign to "f:\test-1.dat"
Chapter 7 (Compiler)
o Page 166
In the section "Redirection of Compiler Output", add the
following:
You cannot redirect compiler output under Windows
environments.
o Page 167
In the section "Error Codes Returned by the Compiler", add
the following.
The compiler cannot be invoked from within a batch
file under Windows; therefore, ERRORLEVEL information
cannot be retrieved.
Chapter 9 (H2CPY)
o Page 184
Do not use H2CPY on WINDOWS.H. The WINDOWS.78 and
WINDOWS.CPY files are provided in \cobol\samples\windows
as correct conversions of WINDOWS.H.
o Page 184
Add the following new H2CPY options:
/16 Specifies a 16-bit run-time system and causes INT data
items to be translated to:
PIC S9(sz) COMP-5
where:
sz is a level 78 item defined at the top of the
resultant COPY-files. The following conditional
compilation construct is used, thereby making the
value of sz 4.
$IF 32BIT DEFINED
78 SZ VALUE 9.
$ELSE
78 SZ VALUE 4.
$END
You can change this conditional compilation construct if
you want to change the value of sz.
If this option (or the /32 option) is not explicitly
specified, then by default H2CPY translates INT data
items to PIC S9(4) COMP-5.
When the multiple-files option (/M) is used in
conjunction with this option, all files, apart from the
.78 file, will contain the conditional compilation
construct at the top of the file.
o Page 185
Insert the following immediately before the section
"Converting C Statements":
Split78
-------
Having run H2CPY against a C header file containing just #define
statements, you can split that file into a set of separate files
using split78. Each of the output files contains all the level
78-items pertaining to a particular prefix.
Split78 is invoked from the command line as follows:
split78 <inputfile>
where:
<inputfile> is a COBOL COPY-file containing only 78-level
items.
Split78 creates output files with name <prefix>.78 where <prefix>
is the prefix (up to the first hyphen) used on the name of a
78-level items. Every item with the same prefix is placed into
the COPY-file with that prefix as its name.
When you run split78, if an output file already exists, new items
are simply added to the end of it. Hence, if you run split78
twice on the same copy file, each output file will contain
duplicate 78-level items. To avoid accidents, split78 will ask
you to confirm that no .78 files exist in the current directory
when you invoke it."
Chapter 10 (Integrated Preprocessor)
o Page 206
In the section "Specification of the Example
Preprocessors", replace the bullet that begins "CPY is
treated by the preprocessor..." with the following:
CPY is converted to COPY, and thus expanded by the Checker.
COPY is expanded by the preprocessor.
Chapter 12 (Library Routines)
o Page 223
Add the following paragraphs before the Note:
To guarantee portability of programs using CBL_ routines, you
must ensure that the routine names are coded in upper case in
your program. Calls to all other routines must be coded as
documented - this will generally be in upper case, but there are
some case-sensitive exceptions
o Page 223-224
In the table indicating the portability of call-by-name
routines, delete the asterisk (*) from the LCOBOL
column in the entries for the following routines:
- CBL_COPY_FILE
- CBL_LOCATE_FILE
o Page 230
Do NOT use the mouse support Library Routine
CBL_TERM_MOUSE under PWB for builds using Shared Runtime
System (this call is handled by the runtime system).
Use of this call under PWB may cause your system to hang..
o Page 235
The parameter list for the call-by-name function
CBL_ALLOC_MEM is incorrect and should include the
parameter RETURNING status-code. If this parameter is
not used, the special register RETURN-CODE contains
the return value.
o Page 236
Add the following for CBL_ALLOC_MEM:
The CBL_ALLOC_MEM routine is limited to allocating
memory up to 65531 bytes.
o Page 244
In the CBL_EXIT_PROC section, under the "Parameters:"
heading in the second column, change "USAGE PROCEDURE
POINTER" to:
"USAGE PROCEDURE-POINTER"
o Page 249
In the description of the CBL_GET_OS_INFO routine, change
the definition of the parameter-size variable from:
parameter-size PIC X(2) COMP-X VALUE 13.
to:
parameter-size PIC X(2) COMP-X VALUE 14.
o Page 307
In the routine CALL x"A7", replace the word "SACE"
in this sentence:
DISPLAY SACE UPON CRT clears the screen ...
with the word "SPACE".
Chapter 14 (Linking and Library Management)
o Page 322
The library "CBLWINAP" is referred to twice on this
page, with reference to Windows applications that
perform floating point operations. This should
read "CBLWINAF."
o Page 335
Add the following new section
COBOL Object Modules and Libraries
----------------------------------
It is possible to create libraries that contain COBOL
programs; that is, COBOL .OBJ files. If you use
libraries that contain COBOL programs, then all calls
to those programs within the library must be static
linked. It is not possible to use the soft or dynamic
linking methods described earlier in this chapter. Thus,
you cannot put into a library any run-time system support
modules which are dynamically called by the RTS
(such as ADIS or EXTFH).
Chapter 20 (XM)
o Page 445
In the last sentence of the first paragraph in the
"Overview" section, change "To use XM you need at
least 1.5 megabytes (1.5 MB) of memory." to:
"To use XM you need at least 1.5 megabytes
(1.5 MB) of extended memory."
o Page 448
In the "Operation" section, at the end of the second
paragraph, add this note:
Note: When running in a Windows DOS box, XM gets
memory from the DPMI host and consequently does not
use XMS memory. For this reason, BIOS/clone-specific
issues are not relevant when running XM in a
Windows DOS box.
Appendix D (Directives for Compiler)
o Page 523
Add this sentence to the CALLFH directive description:
Also used to get a program to make calls to a
converter such as XFH2BTR or other file handlers.
o Make the following minor changes to the existing descriptions
of directives:
PAGE CHANGE
---- ---------------------------------------------------------
513 the default for the ADV directive is NOADV.
537 DETECTLOCK can be spelled with a hyphen, thus: DETECT-LOCK
552 HIDEMESSAGE can be spelled with a hyphen, thus: HIDE-MESSAGE
561 the default for the LISTWIDTH directive is LISTWIDTH "80"
596 SETTING directive can be spelled as SETTINGS
611 WARNING can be spelled as WARNINGS
612 WRITELOCK can be spelled with a hyphen, thus: WRITE-LOCK
o Page 554
In the description of the IBMCOMP directive, remove the
paragraph that begins "When you query a data item ...".
o Page 554
In the description of the IBMCOMP directive, replace each
occurrence of "USAGE COMP" with "USAGE COMP or USAGE COMP-5".
o Page 560
Change the $SET entry for the LIST directive from:
Initial
to:
None (for LIST "" and LIST "file-name")
Any (for LIST and NOLIST)
o Page 588
Add the following text to the description of the REGPARM
directive:
The BP register is saved over calls, thereby better
emulating other COBOL compilers' call conventions.
o Page 598
Add the following text to the description of the
SIGNCOMPARE directive:
Comparisons with COMP-3 items with illegal sign nibbles
(such as those produced by redefining the item) are allowed.
o Page 611
In the description of the VSC2 directive, change the line
describing the effect of specifying integer as 3 from:
3 VS COBOL II release 3.x (when compiled with its CMPR2
directive)
to:
3 VS COBOL II release 3.x (when compiled with its NOCMPR2
directive)
o Page 611
In the description of the VSC2 directive, add the
following to the list of possible values for integer:
4 Synonymous with VSC2"3"
o Page 613
Replace the existing description of XOPEN with the
following:
XOPEN
Specifies that words reserved under the X/Open definition of
COBOL are to be treated as reserved words.
Syntax:
>>-------------------XOPEN---"level"----------------><
| | | |
--/-- ---------XOPEN-----------------
| |
--NO--
Parameters:
level Must be 3 or 4. The level of X/Open
definition COBOL to be compatible with.
Default: NOXOPEN
Phase: Syntax check
$SET: Initial
The possible values of level are:
3 Compatible with X/Open Portability Guide 1988 (XPG-3)
4 Compatible with X/Open CAE Specification (XPG-4)
Specifying XOPEN with no parameter is the same as specifying
XOPEN "4". Note that XPG-4 specifies options for several
environments. If available, the options available are as follows:
o Single Byte Internationalization Support is enabled using the
NLS directive
See also NLS directive.
User Guide
----------
Chapter 2 (Developing COBOL Applications)
o Page 20
In the "Examples" section, change "XM MYPROG.EXE, NEWPROG"
to:
"XB MYPROG.EXE, NEWPROG"
Chapter 6 (Interfacing and Mixed Language Programming)
o Page 75
Add the following additional bullet to the end of the
section which begins with the sentence "Microsoft C
version 6.0, C/C++ version 7.0, and Fortran V5.1 are
all compatible ...":
When calling a nonCOBOL subprogram using an
entry-point name starting with an underscore (_)
the actual name must be coded as part of the
call so that the compiler can determine the
type of program being called and create the
correct code. Consequently, you cannot use such
a name in a procedure-pointer.
For example you can code:
procedure division.
call "_CPROG"
but you cannot code:
01 func usage procedure-pointer.
procedure division.
set func to entry "_CPROG"
call func.
o Page 78
Add the following restriction.
The following Microsoft C graphics library routines are
incompatible with this COBOL system and should not be called.
- _outtext
- _outmem
- _floodfill
- any routine that uses floodfill where you specify
the _GFILLINTERIOR option, namely _ellipse and _pie

View File

@ -0,0 +1,217 @@
MICROSOFT DIAGNOSTICS (MSD) UTILITY
===================================
--------------------------------------------------------------------
| INFORMATION PROVIDED IN THIS DOCUMENT AND ANY SOFTWARE THAT MAY |
| ACCOMPANY THIS DOCUMENT (collectively referred to as an |
| Application Note) IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY |
| KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO |
| THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A |
| PARTICULAR PURPOSE. The user assumes the entire risk as to the |
| accuracy and the use of this Application Note. This Application |
| Note may be copied and distributed subject to the following |
| conditions: 1) All text must be copied without modification and |
| all pages must be included; 2) If software is included, all files |
| on the disk(s) must be copied without modification (the DOS |
| utility DISKCOPY is appropriate for this purpose); 3) All |
| components of this Application Note must be distributed together; |
| and 4) This Application Note may not be distributed for profit. |
| |
| Copyright 1990 Microsoft Corporation. All Rights Reserved. |
| Microsoft and the Microsoft logo are registered trademarks of |
| Microsoft Corporation. |
--------------------------------------------------------------------
The Microsoft Diagnostics (MSD) utility is designed to assist
Microsoft customers and Product Support Services (PSS) technicians in
identifying system configuration information such as the BIOS and
video card type and manufacturer, processor(s) installed, I/O port
status, operating system version, environment settings, hardware
devices attached, and additional software running concurrently with
MSD. This utility is used when Microsoft PSS needs information to
diagnose and solve problems with Microsoft products.
INSTALLATION
============
Hard Disk System
----------------
To install MSD on a hard disk system, do the following:
1. Place the enclosed disk in drive A.
2. At the DOS prompt, type the following and press the ENTER key
copy a:\msd.exe <pathname>
where <pathname> is the location of your root directory. For
example, type the following and press the ENTER key:
copy a:\msd.exe c:\
Dual Floppy Disk System
-----------------------
To install MSD on a dual floppy disk system, do the following:
1. Place your DOS boot disk (system disk) in drive A and the enclosed
Microsoft Diagnostics (MSD) Utility disk in drive B.
2. At the DOS prompt, type the following and press the ENTER key:
copy b:\msd.exe a:
USING THE MICROSOFT DIAGNOSTICS UTILITY
=======================================
The MSD utility (MSD.EXE) runs in DOS and in a Windows DOS Box. To
start MSD, do the following:
1. At the DOS prompt, change to the root directory (where you
installed MSD.EXE).
2. Type "msd" (without the quotation marks) and press the ENTER key.
(For monochrome, black-and-white, and LCD screens, type "msd /b"
and press ENTER.)
3. The program presents an introduction screen. To continue, press any
key.
MSD then presents a Main Menu screen split into two sections. The
upper section presents a summary of information that the utility has
gathered from your system. For additional information on any category,
move the highlight bar (using the arrow keys) to any category and
press the ENTER key. A dialog box appears that presents detailed
information for that category. You can quickly choose any category by
pressing the ALT key and the highlighted letter corresponding to the
category you want. Return to the Main Menu screen by pressing the ESC
key.
The following is a brief explanation of the categories in the first
section:
Category Description
-------- -----------
BIOS Displays the BIOS manufacturer, date, version,
and type
Processor Displays the processor type and math
coprocessor, if installed
Memory Displays a map of physical memory from 768K to
1 MB and information concerning the
configuration of RAM and ROM in your computer
system
Video Shows your video card's manufacturer and
model, BIOS version, memory, and current video
mode
Network Detects whether a network is MS-NET or
compatible, or Novell
Mouse Shows the DOS mouse driver version number,
mouse type, and other information concerning
the mouse
Game Adapter Dynamically displays game card status for up
to two game devices or joysticks
CD-ROM Displays the Microsoft CD-ROM Extensions
(MSCDEX.EXE) version number and drive letter
Operating System Displays the operating system version number
and path from which MSD was run
Parallel Ports Dynamically displays the status of installed
parallel ports and their port addresses
Serial Ports Dynamically displays the status of active
serial ports and their current configurations
Disk Drives Scans all local and logical drives and
displays the total and available bytes
IRQ Status Shows the current hardware interrupt, IRQ,
status
Environment Displays environment variables
AUTOEXEC.BAT Lists the AUTOEXEC.BAT file
CONFIG.SYS Lists the CONFIG.SYS file
The lower section of the MSD screen includes additional functions you
can use with your system, as follows:
Function Description
-------- -----------
Resident Programs Displays the names of programs loaded in RAM
at the time MSD was executed, their locations,
and their sizes; programs may be loaded into
multiple segments of RAM and have multiple
entries in the table
Device Table Displays software and hardware device drivers
installed; these include default devices, such
as COM1 or LPT1, and user-installed devices
loaded from the CONFIG.SYS file, such as
HIMEM.SYS or EMM386.SYS
Printer Test Prints a page to test the connection between
the computer and either a TTY or PostScript-
type printer
Generate Report Prints a "faxable" report to a normal TTY
printer or to a file
File Viewer Views text files by entering the path and
filename
Memory Browser Searches selected ROM and RAM areas for search
strings such as "Copyright" and "Version"
About Displays MSD version number and copyright
information
Exit Exits MSD
USES FOR THE MICROSOFT DIAGNOSTICS UTILITY
==========================================
The Microsoft Diagnostics utility is designed to be used in one of
three ways:
1. Over the telephone, you can report the information MSD displays to
the Microsoft PSS technician assisting you in solving the problem
you are experiencing.
2. You can fax or mail Microsoft PSS a report generated by MSD. The
Generate Reports feature will print the information to any TTY
printer. Be sure to send the report to the attention of the
technician assisting you.
The mailing address is below. Microsoft's fax number is
(206) 883-8101. Include the following attention line on the fax
cover sheet:
ATTN: PSS, <technician's name, building, group>
3. You can send us a report file generated by MSD. The Generate
Reports feature will print a configuration report to a file. You
can copy this file to a floppy disk and send it to the technician
helping you or send the file electronically by modem.
Microsoft's mailing address is as follows:
ATTN: Product Support Services
<Technician's name, building, group>
Microsoft Corp.
One Microsoft Way
Redmond, WA 98052-6399

View File

@ -0,0 +1,695 @@
Microsoft COBOL Professional Development System, Version 5.0
Product Contents Checklist
(C) Copyright Microsoft Corporation, 1993
Contents
--------
Introduction
Documentation
Diskettes
Description of Components
Description of Files
Introduction
------------
This document describes the contents of the Microsoft COBOL package,
including documentation, diskettes and diskette contents.
Documentation
-------------
The following documentation pieces are provided with the COBOL software
package.
Getting Started
Language Reference (Volumes 1 and 2)
Error Messages
Compatibility Guide
COBOL System Reference
Environment and Tools
COBOL Programming for Windows
The following additional documents appear as ASCII text files on the
diskettes.
PACKING.LST - List of documents and files included in this package.
README.DOC - Essential information for this release.
DOCUPDT.DOC - Documentation update notes for this release.
CBL-CMPT.DOC - Lists differences between Microsoft COBOL 5.0 and
earlier releases.
SAMPLES.TXT - Descriptions of how to compile and link sample
programs in the \COBOL\SAMPLES directory.
These can be viewed from within SETUP, the installation program, or using
the operating system command, TYPE, or any ASCII text file editor or
listing utility.
Diskettes
---------
Your COBOL software package includes a set of either High density 5.25"
diskettes or High density 3.5" diskettes. Low density 3.5" diskettes are
available on request.
The contents of each disk are listed below for each disk format. Note that
files with an "@" character at the start of the extension are compressed
and require PKUNZIP to load them. In general, the name of the compressed
file is the same as the uncompressed file except that the first character
of the extension is replaced by "@".
High density 5.25 inch disk layout
Disk 1 / SETUP
ADDWPROG.EXE CBL-CMPT.DOC CHECK.@BR COBLIB.@LE
COBOL.INI DOCUPDT.@OC GENERATE.@BR HELPADCF.@BR
PACKING.LST PKUNZIP.EXE README.DOC
SETUP.EXE UTILS.@BR
Disk 2
ADISCF.@BR ADISCF.@XE ADISCTRL.@ ANIMATE.@XE
ANIMATOR.@BR ANIMBASE.@BR ANIMBASE.@XE ANIMRTNS.@XE
ANIMUSER.@LE ANIMUSER.@XE CCI.@XE COBCLI.@BR
COBFP87.@LE COBFP87.@LW COBIFN.@LW COBNLS.@LW
COBNLS.@RR COBOL.@XE GENATT.@LE GENATT.@LW
H2CPY.@XE HELP.@BR HELPNAME.@BR HYHELP.@BR
HYHELP.@NF INFO.@NF KEYBCF.@XE MFEXTMAP.@LE
MFEXTMAP.@LW MSHIF.@XE NAME.@BR OLR.@NF
PANELS.@BJ PANLINK.@PY REBUILD.@XE SCREENS.@BR
SCREENS.@XE SPLIT78.@XE XANIMATE.@XE XB.@XE
XCOBOL.@XE XM.@XE XMCLONES.@OC _BTRV.@LW
_BTRV.@XE _SORT.@LW
Disk 3
ADIS.@BJ BTR2XFH.@BJ CBLDC001.@BJ CBLSSEG.@LL
CBLWIN.@LL CBLWIN31.@LW CBLWINA.OBJ CBLWINAF.@BJ
CBLWINB.OBJ CBLWINL.OBJ CNVCOMP6.@BJ COBAPI.@IB
COBFP87D.@IB COBFP87W.@IB COBINTFN.@BJ COBLIB.@IB
COBLIB.@LW COBLIBW.@IB COBNLSMG.@BJ COBW.@IB
CONVERT3.@XE CONVERT5.@XE DBTRV.@BJ DWSKEL.DEF
EXTERNL.@BJ EXTFH.@BJ EXTFHW.@EF EXTSM.@BJ
FHREDIR.@BJ HOSTSTAT.@BJ LATLANG.@BJ LCOBOL.@IB
LCOBOLDW.@IB LCOBOLW.@IB LIBINIT.OBJ MCS.@BJ
MCSETUP.@XE MISC.@EM MSLANG.@BJ PANELS.@EM
PCINST.@LL REFORM5.@XE RMSTAT.@BJ RTSBIN.@SM
RTSCALL.@BJ SQL.@BJ TABX.@XE WBTRV.@BJ
WINDOWS.@EM WINSTF.@BJ WINSTF.@IB WINSTF.DEF
XFH2BTR.@BJ XFHNAME.@BJ _CLASS.@BJ _CODESET.@BJ
Disk 4
ASM.@EM COBOL.@LP COBOL2.HLP IMAGEDIT.@LP
MUDEMO.@EM PREPROC.@EM PWBTUTOR.@EM SAMPLES.@XT
TICTAC.@EM VBCOB.@EM
Disk 5
CV.@CO CV.@XE DLGEDIT.@XE EMD1D1.@LL
PWB.@LP QH.@LP TOOLS.@RE UTILS.@LP
Disk 6
ADVISOR.@LP CV4.@LP CVPACK.@XE CVPACKX.@XE
EXEHDR.@XE HIMEM.@YS ILINK.@XE LIB.@XE
LINK.@LP LINK.@XE MOUSE.@OM MSD.@XE
MSD.@XT NMAKE.@XE PWBC.@XT PWBCOBOL.@XT
PWBMASM.@XT PWBRMAKE.@XE QH.@XE SBR-LOAD.@NT
SBRPACK.@XE WX.@XE WXSRVR.@XE
Disk 7
ATRM1111.@NT BSCMAKE.@XE BSCMAKEV.@XE DLGEDIT.@LP
EED1CAN.@LL EED1COB.@LL EXP.@XE FONTEDIT.@LP
FONTEDIT.@XE HELPMAKE.@XE IMAGEDIT.@XE IMPLIB.@XE
LIBENTRY.@BJ LIBW.@IB LRFMERGE.@XE PWB.@XE
PWBBASIC.@XT PWBFORT.@XT PWBHELP.@XT PWBROWSE.@XT
PWBUTILS.@XT RC.@XE RCPP.@RR RCPP.@XE
RM.@XE SAMPLE.@NI SHD1.@LL TLD1LOC.@LL
UNDEL.@XE VGASYS.@NT VMB.@86 WINDOWS.@
WINSTUB.@XE
High density 3.5 inch disk layout
Disk 1 / SETUP
ADDWPROG.EXE ANIMATOR.@BR CBL-CMPT.DOC CHECK.@BR
COBCLI.@BR COBLIB.@LE COBOL.INI DOCUPDT.@OC
GENERATE.@BR H2CPY.@XE HELPADCF.@BR
NAME.@BR PACKING.LST PKUNZIP.EXE README.DOC
SETUP.EXE SPLIT78.@XE UTILS.@BR XANIMATE.@XE
XCOBOL.@XE
Disk 2
ADIS.@BJ ADISCF.@BR ADISCF.@XE ADISCTRL.@
ANIMATE.@XE ANIMBASE.@BR ANIMBASE.@XE ANIMRTNS.@XE
ANIMUSER.@LE ANIMUSER.@XE CBLSSEG.@LL CBLWIN.@LL
CBLWIN31.@LW CCI.@XE CNVCOMP6.@BJ COBFP87.@LE
COBFP87.@LW COBFP87D.@IB COBFP87W.@IB COBIFN.@LW
COBLIB.@IB COBLIB.@LW COBNLS.@LW COBNLS.@RR
COBOL.@XE COBW.@IB CONVERT3.@XE CONVERT5.@XE
EXTFH.@BJ EXTFHW.@EF GENATT.@LE GENATT.@LW
HELP.@BR HELPNAME.@BR HYHELP.@BR HYHELP.@NF
INFO.@NF KEYBCF.@XE LCOBOL.@IB MCS.@BJ
MCSETUP.@XE MFEXTMAP.@LE MFEXTMAP.@LW MSHIF.@XE
OLR.@NF PANELS.@BJ PANLINK.@PY PCINST.@LL
REBUILD.@XE REFORM5.@XE SCREENS.@BR SCREENS.@XE
TABX.@XE XB.@XE XM.@XE XMCLONES.@OC
_BTRV.@LW _BTRV.@XE _SORT.@LW
Disk 3
ASM.@EM BTR2XFH.@BJ CBLDC001.@BJ CBLWINA.OBJ
CBLWINAF.@BJ CBLWINB.OBJ CBLWINL.OBJ COBAPI.@IB
COBINTFN.@BJ COBLIBW.@IB COBNLSMG.@BJ COBOL.@LP
COBOL2.HLP DBTRV.@BJ DWSKEL.DEF EXTERNL.@BJ
EXTSM.@BJ FHREDIR.@BJ HOSTSTAT.@BJ IMAGEDIT.@LP
LATLANG.@BJ LCOBOLDW.@IB LCOBOLW.@IB LIBINIT.OBJ
MISC.@EM MSLANG.@BJ MUDEMO.@EM PANELS.@EM
PREPROC.@EM PWBTUTOR.@EM RMSTAT.@BJ RTSBIN.@SM
RTSCALL.@BJ SAMPLES.@XT SQL.@BJ TICTAC.@EM
VBCOB.@EM WBTRV.@BJ WINDOWS.@EM WINSTF.@BJ
WINSTF.@IB WINSTF.DEF XFH2BTR.@BJ XFHNAME.@BJ
_CLASS.@BJ _CODESET.@BJ
Disk 4
ADVISOR.@LP CV.@CO CV.@XE CV4.@LP
DLGEDIT.@XE EMD1D1.@LL EXEHDR.@XE HIMEM.@YS
MOUSE.@OM PWB.@LP PWBCOBOL.@XT PWBMASM.@XT
PWBRMAKE.@XE QH.@LP QH.@XE SBR-LOAD.@NT
SBRPACK.@XE TOOLS.@RE UTILS.@LP WX.@XE
WXSRVR.@XE
Disk 5
BSCMAKE.@XE BSCMAKEV.@XE CVPACK.@XE CVPACKX.@XE
EED1CAN.@LL EED1COB.@LL EXP.@XE ILINK.@XE
LIB.@XE LIBENTRY.@BJ LINK.@LP LINK.@XE
LRFMERGE.@XE MSD.@XE MSD.@XT NMAKE.@XE
PWB.@XE PWBC.@XT RC.@XE RCPP.@RR
RCPP.@XE SHD1.@LL TLD1LOC.@LL WINSTUB.@XE
Disk 6
ATRM1111.@NT DLGEDIT.@LP FONTEDIT.@LP FONTEDIT.@XE
HELPMAKE.@XE IMAGEDIT.@XE IMPLIB.@XE LIBW.@IB
PWBBASIC.@XT PWBFORT.@XT PWBHELP.@XT PWBROWSE.@XT
PWBUTILS.@XT RM.@XE SAMPLE.@NI UNDEL.@XE
VGASYS.@NT VMB.@86 WINDOWS.@
Low density 3.5 inch disk layout
Disk 1 / SETUP
ADDWPROG.EXE CBL-CMPT.DOC CHECK.@BR COBLIB.@LE
COBOL.INI DOCUPDT.@OC HELPADCF.@BR PACKING.LST
PKUNZIP.EXE README.DOC SETUP.EXE
Disk 2
ANIMATOR.@BR COBCLI.@BR GENERATE.@BR H2CPY.@XE
NAME.@BR SPLIT78.@XE UTILS.@BR XANIMATE.@XE
XCOBOL.@XE
Disk 3
ADISCF.@BR ADISCF.@XE ADISCTRL.@ ANIMATE.@XE
ANIMBASE.@BR ANIMBASE.@XE ANIMRTNS.@XE ANIMUSER.@LE
ANIMUSER.@XE CCI.@XE COBFP87.@LE COBFP87.@LW
COBIFN.@LW COBNLS.@LW COBNLS.@RR COBOL.@XE
GENATT.@LE GENATT.@LW HELP.@BR HELPNAME.@BR
HYHELP.@BR HYHELP.@NF KEYBCF.@XE MFEXTMAP.@LE
MFEXTMAP.@LW OLR.@NF PANLINK.@PY REBUILD.@XE
SCREENS.@BR SCREENS.@XE XB.@XE XM.@XE
XMCLONES.@OC _BTRV.@LW _BTRV.@XE _SORT.@LW
Disk 4
ADIS.@BJ CBLSSEG.@LL CBLWIN.@LL CBLWIN31.@LW
CNVCOMP6.@BJ COBFP87D.@IB COBFP87W.@IB COBLIB.@IB
COBLIB.@LW COBW.@IB CONVERT3.@XE CONVERT5.@XE
EXTFH.@BJ EXTFHW.@EF INFO.@NF LCOBOL.@IB
MCS.@BJ MCSETUP.@XE MSHIF.@XE PANELS.@BJ
PCINST.@LL REFORM5.@XE TABX.@XE
Disk 5
ASM.@EM BTR2XFH.@BJ CBLDC001.@BJ CBLWINA.OBJ
CBLWINAF.@BJ CBLWINB.OBJ CBLWINL.OBJ COBAPI.@IB
COBINTFN.@BJ COBLIBW.@IB COBNLSMG.@BJ DBTRV.@BJ
DWSKEL.DEF EXTERNL.@BJ EXTSM.@BJ FHREDIR.@BJ
HOSTSTAT.@BJ LATLANG.@BJ LCOBOLDW.@IB LCOBOLW.@IB
LIBINIT.OBJ MISC.@EM MSLANG.@BJ
MUDEMO.@EM PANELS.@EM PREPROC.@EM PWBTUTOR.@EM
RMSTAT.@BJ RTSBIN.@SM RTSCALL.@BJ SAMPLES.@XT
SQL.@BJ TICTAC.@EM VBCOB.@EM WBTRV.@BJ
WINDOWS.@EM WINSTF.@BJ WINSTF.@IB WINSTF.DEF
XFH2BTR.@BJ XFHNAME.@BJ _CLASS.@BJ _CODESET.@BJ
Disk 6
COBOL.@LP COBOL2.HLP
Disk 7
CV.@CO CV.@XE DLGEDIT.@XE EMD1D1.@LL
EXEHDR.@XE HIMEM.@YS MOUSE.@OM PWBCOBOL.@XT
PWBMASM.@XT PWBRMAKE.@XE QH.@LP SBR-LOAD.@NT
SBRPACK.@XE TOOLS.@RE UTILS.@LP WX.@XE
WXSRVR.@XE
Disk 8
ADVISOR.@LP CV4.@LP PWB.@LP QH.@XE
Disk 9
CVPACK.@XE CVPACKX.@XE ILINK.@XE LIB.@XE
LINK.@LP LINK.@XE MSD.@XE MSD.@XT
NMAKE.@XE PWBC.@XT
Disk 10
BSCMAKE.@XE BSCMAKEV.@XE EED1CAN.@LL EED1COB.@LL
EXP.@XE LIBENTRY.@BJ LRFMERGE.@XE PWB.@XE
RC.@XE RCPP.@RR RCPP.@XE SHD1.@LL
TLD1LOC.@LL WINSTUB.@XE
Disk 11
ATRM1111.@NT DLGEDIT.@LP FONTEDIT.@LP FONTEDIT.@XE
HELPMAKE.@XE IMAGEDIT.@LP IMAGEDIT.@XE IMPLIB.@XE
LIBW.@IB PWBBASIC.@XT PWBFORT.@XT PWBHELP.@XT
PWBROWSE.@XT PWBUTILS.@XT RM.@XE SAMPLE.@NI
UNDEL.@XE VGASYS.@NT VMB.@86 WINDOWS.@
Description of Components
-------------------------
The Microsoft COBOL 5.0 package contains the following software
components:
COBOL Optimizing Compiler - compiles COBOL source code into OBJ files.
Animator Testing Tool - interactive full screen testing, learning and
debugging tool. Includes Cooperative
Animation facility to animate programs in
different sessions/machines.
Linking Support - Linker, libraries and system programs to
create stand alone EXE files for DOS and
Windows from the OBJs created by the compiler.
COBOL Communications - Preparation and run-time support for MCS.
Module Support
Mixed Language Facility - Extra tools, and documentation to aid in
linking COBOL programs with programs of other
languages.
PANELS - Callable module allowing windowing to be
built into an application.
Screen Painter - SCREENS Screen Painter.
Screen/Keyboard - Tools to allow configuration of the extended
Configuration Tools ACCEPT/DISPLAY system program, ADIS.
SETUP Installation - Utility to allow efficient installation of
Utility this product.
Indexed File - REBUILD file management utility.
Maintenance Tool
Demonstration Programs - Programs that demonstrate some of the
facilities in this package, and batch streams
to compile, link and run, or animate them.
MF Compatibility Tools - File conversion utility to aid in converting
Micro Focus COBOL systems to compile and
run with this system.
MS Compatibility Tools - Compatibility documentation and file
conversion utility to aid in converting
Microsoft COBOL v2.2 systems to compile and
run with this system.
RM Compatibility Tools - Compatibility documentation and file
conversion utility to aid in converting
RM/COBOL applications to compile and run
with this system.
DG Compatibility Tools - Compatibility documentation and file
conversion utility to aid in converting DG
ICOBOL applications to compile and run with
this system.
Utilities - LINK, LIB, NMAKE, etc.
Programmer's WorkBench - Integrated development environment.
CodeView - CodeView Version 4.05 allowing
native code debugging of COBOL programs
and mixed COBOL/C debugging.
Windows 3.0 Support - Libraries and tools needed to develop
Microsoft Windows 3.0 and higher applications.
Description of Files
--------------------
The files included on the release disks are briefly described below.
Executable files on the disks are one of the following types:
ADDWPROG.EXE Adds program groups to Program Manager
ADIS.@BJ ADIS.OBJ ADIS-ACCEPT/DISPLAY support
ADISDYNA.OBJ ADIS-ACCEPT/DISPLAY support
ADISINIT.OBJ ADIS-ACCEPT/DISPLAY support
ADISKEY.OBJ ADIS-ACCEPT/DISPLAY support
ADISCF.@BR ADISCF.LBR ADISCF/KEYBCF run-time support
ADISCF.@XE ADISCF.EXE ADIS configuration utility
ADISCTRL.@ ADISCTRL (ADISCTRL.@) ADIS configuration file
ADVISOR.@LP ADVISOR.HLP Help for Microsoft Advisor
ANIMATE.@XE ANIMATE.EXE Animator debugger program
ANIMATOR.@BR ANIMATOR.LBR Animator - additional programs
ANIMBASE.@BR ANIMBASE.LBR Low memory Animator
ANIMBASE.@XE ANIMBASE.EXE Animator support file
ANIMRTNS.@XE ANIMRTNS.EXE Animator support file
ANIMUSER.@LE ANIMUSER.DLE Animator support file
ANIMUSER.@XE ANIMUSER.EXE Cooperative animation
ASM.@EM ADD.CBL Sample showing assembler called from COBOL
ADDEM.ASM
ADDEM.DEF
ADDEM.OBJ
ATRM1111.@NT ATRM1111.FNT
BSCMAKE.@XE BSCMAKE.EXE Browse database creation utility
BSCMAKEV.@XE BSCMAKEV.EXE
BTR2XFH.@BJ BTR2XFH.OBJ File handling support file
CBL-CMPT.DOC Compatibility with earlier releases
CBLDC001.@BJ CBLDC001.OBJ Data compression module
CBLSSEG.@LL CBLSSEG.DLL Support DLL used by all COBOL Windows programs
CBLWIN.@LL CBLWIN.DLL COBOL Windows runtime support
CBLWIN31.@LW CBLWIN31.DLW COBOL Windows runtime support
CBLWINA.OBJ Startup module for EXE's under Windows
CBLWINAF.@BJ CBLWINAF.OBJ Startup module for use with Floating Point
CBLWINB.OBJ Startup module for batch programs under Windows
CBLWINL.OBJ Startup module for Dynamic Link Libraries
CCI.@XE CCIIPX.DLW Remote animation support
CCIIPX.EXE Remote animation support
CCIIPX2.EXE Remote animation support
CCINETB.DLW Remote animation support
CCINETB.EXE Remote animation support
CHECK.@BR CHECK.LBR Compiler/Animator modules
CNVCOMP6.@BJ CNVCOMP6.OBJ Subroutine used with RM data file conversion
COBAPI.@IB COBAPI.LIB COBOL link support routines
COBCLI.@BR COBCLI.LBR Compiler/Animator Command Line Interpreter
COBFP87.@LE COBFP87.DLE Floating Point runtime support
COBFP87.@LW COBFP87.DLW Floating Point runtime support
COBFP87D.@IB COBFP87D.LIB Floating Point linking support
COBFP87W.@IB COBFP87W.LIB Floating point linking support
COBIFN.@LW COBIFN.DLW Intrinsic functions runtime support
COBINTFN.@BJ COBINTFN.OBJ Intrinsic functions linking support
COBLIB.@IB COBLIB.LIB COBOL link support routines - shared run-time
COBLIB.@LE COBLIB.DLE Shared run-time for DOS
COBLIB.@LW COBLIB.DLW Shared runtime for Windows
COBLIBW.@IB COBLIBW.LIB Shared runtime linking support
COBNLS.@LW COBNLS.DLW NLS runtime support
COBNLS.@RR COBNLS.ERR NLS error message file
COBNLSMG.@BJ COBNLSMG.OBJ NLS support file
COBOL.@LP COBOL.HLP Help on the COBOL language
COBOL.@XE COBOL.EXE Compiler
COBOL.INI Script for installation
COBOL2.HLP Help on COBOL language
COBW.@IB COBW.LIB Windows Linking support for COBOL
CONVERT3.@XE CONVERT3.EXE Generates programs to convert RM/COBOL data files
CONVERT5.@XE CONVERT5.EXE Generates program to convert Data General data files
CV.@CO CV.ICO MS-DOS CodeView Icon
CV.@XE CV.EXE CodeView debugger for MS-DOS (version 4.05)
CV4.@LP CV4.HLP Help for CodeView 4.05
CVPACK.@XE CVPACK.EXE DOS CV4 information optimization utility. Installed
as CVPACK.EXE or CVPACKR.EXE. See README.DOC for an
explanation.
CVPACKX.@XE CVPACKX.EXE DOS CV4 information optimization utility. Installed
as CVPACK.EXE or CVPACKX.EXE. See README.DOC for an
explanation.
DBTRV.@BJ DBTRV.OBJ Filehandling support
DLGEDIT.@LP DLGEDIT.HLP MS Windows 3.1 Dialogue Editor Help
DLGEDIT.@XE DLGEDIT.EXE MS Windows 3.1 Dialogue Editor program
DWSKEL.DEF .DEF file for QuickWin applications
EED1CAN.@LL EED1CAN.DLL Expression evaluator for MS-DOS C/MASM
EED1COB.@LL EED1COB.DLL Expression evaluator for MS-DOS COBOL
EMD1D1.@LL EMD1D1.DLL Execution model for MS-DOS to MS-DOS
EXEHDR.@XE EXEHDR.EXE Display/modify executable file headers
EXP.@XE EXP.EXE Remove files from DELETED directory
EXTERNL.@BJ EXTERNL.OBJ External data handler
EXTFH.@BJ EXTFH.OBJ Indexed and External file handler
EXTFHW.@EF EXTFHW.DEF DEF file to create EXTFH.DLL for Windows
EXTSM.@BJ EXTSM.OBJ External Sort module
FONTEDIT.@LP FONTEDIT.HLP MS Windows 3.1 Font Editor Help
FONTEDIT.@XE FONTEDIT.EXE MS Windows 3.1 Font Editor program
GENATT.@LE GENATT.DLE Generic attributes runtime support
GENATT.@LW GENATT.DLW Generic attributes runtime support
GENERATE.@BR GENERATE.LBR Compiler - code generation
H2CPY.@XE H2CPY.EXE Converter for C Header files to COBOL
HELP.@BR HELP.LBR Animator Help screens
HELPADCF.@BR HELPADCF.LBR ADIS configuration utility - Help screens
HELPMAKE.@XE HELPMAKE.EXE Help File Maintenance Utility
HELPNAME.@BR HELPNAME.LBR Screen Painter support
HIMEM.@YS HIMEM.SYS Microsoft XMS Manager
HOSTSTAT.@BJ HOSTSTAT.OBJ Alternative filestatus support
HYHELP.@BR HYHELP.LBR Help engine for HNF files
HYHELP.@NF HYHELP.HNF Help on HNF files
ILINK.@XE ILINK.EXE Incremental Linker
IMAGEDIT.@LP IMAGEDIT.HLP MS Windows 3.1 Image Editor Help
IMAGEDIT.@XE IMAGEDIT.EXE MS Windows 3.1 Image Editor program
IMPLIB.@XE IMPLIB.EXE Import library creation utility
INFO.@NF INFO.HNF COBOL language Help
KEYBCF.@XE KEYBCF.EXE Keyboard configuration utility
LATLANG.@BJ LINITC31.ASM Lattice(R) C v3.1
LINITC31.OBJ
LINITC32.ASM Lattice C v3.2
LINITC32.OBJ
LINITIO.C I/O module required for linking to Lattice C
LINITIO.OBJ
LCOBOL.@IB LCOBOL.LIB COBOL link support routines - static linked
LCOBOLDW.@IB LCOBOLDW.LIB Static runtime linking support for QuickWin
LCOBOLW.@IB LCOBOLW.LIB Static runtime linking support for Windows API
LIB.@XE LIB.EXE Library maintenance utility
LIBENTRY.@BJ LIBENTRY.OBJ Needed for Windows DLLs
LIBINIT.OBJ Dynamic library linking support
LIBW.@IB LIBW.LIB Link library for Windows applications
LINK.@LP LINK.HLP Help for Linker
LINK.@XE LINK.EXE Segmented executable Linker
LRFMERGE.@XE LRFMERGE.EXE Used by PWB to merge two linker response files
MCS.@BJ MCS.OBJ Communications module
MCSETUP.@XE MCSETUP.EXE Communication setup
MFEXTMAP.@LE MFEXTMAP.DLE External file mapper
MFEXTMAP.@LW MFEXTMAP.DLW External file mapper
MISC.@EM ADMOUSE.CBL Demonstrates the use of mouse and ADIS
CALC.CBL
CALENDAR.CBL
CASE.CBL Converts the case of COBOL source programs
CUSTOMER.DAT
DECLARE.CBL DECLARATIVES
DIOPHANT.CBL Recursion
EXPAND.CBL Clever expanding ACCEPT
EXTFILE.CBL EXTERNAL FILES
FUNCTEST.CBL
FUNKEY.CBL
INTRINS.CBL
KEYBMENU.CBL
LOGOPER.CBL Demonstrates the logical call-by-name routines
MOUSMENU.CBL
NESTED.CBL Nested programs
POPUP.CBL Screen handling demo
PRINTESC.CBL Printer escape codes
REPORT.CBL Report Writer
SAMPLES.TXT ASCII text file with compile/link information
SHELL.BAT
SMPLACCP.CBL
SPLTJOIN.CBL
SSCNTRL.CBL Screen Section dynamic attributes using CONTROL
STATUS.CBL File status handling
TSTCOMP.CBL
MOUSE.@OM MOUSE.COM Mouse Driver
MSD.@XE MSD.EXE Configuration reporter
MSD.@XT MSD.TXT Configuration reporter doc
MSHIF.@XE MSHIF.EXE Access to MS style Help files from other Engines
MSLANG.@BJ C6DOSIF.OBJ Microsoft C 6.0 - C initialization for MS-DOS
C6DOSLB.OBJ Microsoft C 6.0 - C initialization for MS-DOS
C7DOSIF.OBJ Microsoft C 7.0 - C initialization for MS-DOS
C7DOSLB.OBJ Microsoft C 7.0 - C initialization for MS-DOS
MFC6INTF.OBJ Microsoft C 6.0 - COBOL interface
MFC6INTW.OBJ Microsoft C 6.0 - initialization for WIN
MFC7INTF.OBJ Microsoft C 7.0 - COBOL interface
MINITC.ASM Microsoft C 5.0 and 4.0
MINITC.OBJ
MINITF.ASM Microsoft FORTRAN
MINITF.OBJ
MINITP.ASM Microsoft Pascal
MINITP.OBJ
MUDEMO.@EM MUDEMO.CBL Sample program
STOCKIN.CBL Sample Program
STOCKIOA.CBL Sample Program
STOCKIOM.CBL Sample Program
STOCKOUT.CBL Multi-user file handling
NAME.@BR NAME.LBR Screen Painter support
NMAKE.@XE NMAKE.EXE Program maintenance utility
OLR.@NF OLR.HNF Help on HNF format files
PACKING.LST List of documents and files included in
this package
PANELS.@BJ PANELS.OBJ Panels linking support
PANELS.@EM DEMOBUFF.CPY Panels sample programs
DEMOCONT.CPY
DEMOHELP.CPY
DEMOMENU.CPY
DEMOMISC.CPY
DEMOMSG.CPY
PANBIGSC.CBL
PANBORDR.CBL
PANCONT.CPY
PANDEMO.CBL
PANELEX1.CBL
PANELEX2.CBL
PANLINK.CPY
PANTUTOR.CBL
PCINST.@LL PCINST.DLL
PKUNZIP.EXE Unzipping processor (Bound)
PREPROC.@EM ASMCOBOL.CBL Preprocessor sample program
PREPROC.CBL
PREPROX.CBL
WORKING.CBL
PWB.@LP PWB.HLP Help for MS-DOS Programmer's WorkBench
PWB.@XE PWB.EXE MS-DOS Programmer's Workbench
PWB.ICO ICON for PWB
PWB.PIF PIF File for PWB
PWBBASIC.@XT PWBBASIC.XXT BASIC extension for PWB
PWBC.@XT PWBC.XXT C extension for PWB
PWBCOBOL.@XT PWBCOBOL.MXT COBOL extension for PWB
PWBFORT.@XT PWBFORT.XXT FORTRAN extension for PWB
PWBHELP.@XT PWBHELP.MXT Help extension for PWB
PWBMASM.@XT PWBMASM.XXT MASM extension for PWB
PWBRMAKE.@XE PWBRMAKE.EXE BSCMAKE compatibility driver
PWBROWSE.@XT PWBROWSE.MXT Browser extension for PWB
PWBTUTOR.@EM EMPL.DAT Files for the PWB tutorial
EMPLHLTH.CBL
EMPLMAIN.CBL
EMPLMAIN.TXT
EMPLMN.MAK
HEALTH.DAT
PENTOT2.CBL
SALARY.DAT
PWBUTILS.@XT PWBUTILS.MXT Utilities for PWB
QH.@LP QH.HLP Help for the Microsoft QuickHelp program
QH.@XE QH.EXE MS-DOS QuickHelp program
QH.ICO QuickHelp Icon
RC.@XE RC.EXE MS Windows 3.1 Resource Compiler
RCPP.@RR RCPP.ERR
RCPP.@XE RCPP.EXE
README.DOC Essential information about this version
REBUILD.@XE REBUILD.EXE File Management Utility - MS file conversion
REFORM5.@XE REFORM5.EXE Reformatter for DG Interactive COBOL source program
RM.@XE RM.EXE File deletion utility
RMSTAT.@BJ RMSTAT.OBJ Alternate file status support
RTSBIN.@SM RTSBIN.ASM Emulation of .BIN file handling
RTSCALL.@BJ RTSCALL.OBJ Emulation of .BIN file handling
SAMPLE.@NI SAMPLE.INI Sample TOOLS.INI file for PWB
SBR-LOAD.@NT SBR-LOAD.GNT Compiler support for browser
SBRPACK.@XE SBRPACK.EXE Browse information utility
SCREENS.@BR SCREENS.LBR Screen Painter support
SCREENS.@XE SCREENS.EXE Screen Painter
SETUP.EXE Installation utility (Bound)
SHD1.@LL SHD1.DLL Symbol handler for MS-DOS
SPLIT78.@XE SPLIT78.EXE Splits large files containing level 78s into
smaller files.
SQL.@BJ SQLINIM.OBJ
SQLINIT.OBJ
TABX.@XE TABX.EXE Utility to expand tabs in a source file
TICTAC.@EM TICBUG.CBL Other products support material
TICTAC.CBL Tac-Tac-Toe sample
TSTDEBUG.CBL ANSI Debug
TTDEMO.BAT Demonstration batch stream
TLD1LOC.@LL TLD1LOC.DLL Local transport layer for MS-DOS
TOOLS.@RE TOOLS.PRE Sample TOOLS.INI file
UNDEL.@XE UNDEL.EXE Undelete (restore) file utility
UTILS.@BR UTILS.LBR Compiler/Animator run-time support
UTILS.@LP UTILS.HLP Help for utilities
VBCOB.@EM ADDREC.FRM Visual Basic calling COBOL sample
BROWSE.FRM
CREATE.FRM
PASS_PAR.FRM
VBCOB.BAS
VBCOB.CBL
VBCOB.DEF
VBCOB.DLL
VBCOB.EXE
VBCOB.MAK
VBCOBDLL.BAT
VBRUN100.DLL
VGASYS.@NT VGASYS.FNT
VMB.@86 VMB.386 Windows spawn driver
WBTRV.@BJ WBTRV.OBJ
WINDOWS.@ WINDOWS.H
WINDOWS.@EM COBDLL.DLL Windows API DLL sample
COMPRESS.CBL Sample Program
COMPRESS.DEF Sample Program
SYSMETS.CBL Displays system metrics
SYSMETS.CPY
SYSMETS.DEF
SYSMETS.MAK
WINCALC.CBL Simple calculator program
WINCALC.CUR
WINCALC.DEF
WINCALC.DLG
WINCALC.ICO
WINCALC.RC
WINCALC.RES
WINDOWS.78 Windows header files converted into COBOL
WINDOWS.CPY
WINHELLO.CBL Sample - Windows 'Hello world' program
WINHELLO.DEF
WINDLL.BAT
WINMAIN.CBL Windows API calling DLL
WINSTF.@BJ WINSTF.OBJ
WINSTF.@IB WINSTF.LIB
WINSTF.DEF
WINSTUB.@XE WINSTUB.EXE Needed for Windows applications
WX.@XE WX.EXE WX/WXSRVR utility runs a Windows program from a
WXSRVR.@XE WXSRVR.EXE DOS prompt within Windows
XANIMATE.@XE XANIMATE.EXE DOS extended Animator
XB.@XE XB.EXE DOS extended EXE Builder
XCOBOL.@XE XCOBOL.EXE DOS extended compiler
XFH2BTR.@BJ XFH2BTR.OBJ filehandling support
XFHNAME.@BJ XFHNAME.OBJ filehandling support
XM.@XE XM.EXE Dos Extender
XMCLONES.@OC XMCLONES.DOC How to run XM on different clones
_BTRV.@LW _BTRV.DLW filehandling support
_BTRV.@XE _BTRV.EXE filehandling support
_CLASS.@BJ _CLASS.OBJ Support for user defined CLASS
_CODESET.@BJ _CODESET.OBJ Support for CODE-SET syntax
_SORT.@LW _SORT.DLW Sort runtime support
===========================================================================
Microsoft and CodeView are registered trademarks and Windows is a trademark
of Microsoft Corporation.
Micro Focus is a registered trademark of Micro Focus Limited.
Micro Focus COBOL/2 is a trademark of Micro Focus Limited.
Lattice is a registered trademark of Lattice Incorporated.
Ryan-McFarland and RM/COBOL are registered trademarks of Ryan-McFarland
Corporation.
===========================================================================

View File

@ -0,0 +1,539 @@
README.DOC
Microsoft(R) COBOL, Version 5.0
(C) Copyright Microsoft Corporation, 1993
This document contains essential information for version 5.0
of the Microsoft COBOL Professional Development System for
MS-DOS(R) and Microsoft(R) Windows. The information in this
document is more up-to-date than the printed documentation.
See the DOCUPDT.DOC file for information on printed documentation
corrections (located in the \COBOL\DOCS sub-directory).
========================< CONTENTS >=================================
This file contains information on product usage and
restrictions organized as follows:
NEW FEATURES
INSTALLATION
PROGRAMMER'S WORKBENCH
COMPILER AND LINKER
ANIMATOR
CODEVIEW
SAMPLE PROGRAMS
MISCELLANEOUS
===================================================================
NEW FEATURES
============
Improved Support for Microsoft Windows 3.x
-------------------------------------------
o Shared run-time system (COBLIB) is now supported under
Windows 3.x. The run-time system is provided as COBLIB.DLW.
o Because the COBOL compiler uses COBLIB itself, this means
that the compiler, Animator, etc., will be able to run as
Windows applications, making use of extended memory.
o QuickWin support is now provided in a DLL. This means that
dynamically called sub-programs can now make use of all
COBOL screen handling techniques.
o COBOL 5.0 provides support for interoperability with
Microsoft Visual Basic 2.0 for Windows. You can write
Visual Basic Graphical User Interfaces and call COBOL DLL's.
For additional information, see the COBOL Programming for
Windows book, Chapter 4 "Building Visual Basic
Applications."
Animator Improvements
---------------------
o Ability to monitor many data items. Each item is displayed
in its own window on the screen.
o The "Watch" statement. This effectively performs a Step command,
but also displays the contents of all data items used in the
COBOL statement before and after execution of the Step. This saves
the user from having to manually query the data items used in the
statement.
o Set a breakpoint on a data-item, so that if the contents of the
data-item changes, execution of the program will stop on the
statement that changes the data-item.
o Set a breakpoint on a COBOL statement and specify several lines
of code to be executed when the breakpoint is encountered (allows
temporary patching of the code - the source file is not changed).
o A "base" Animator is also provided for low memory situations
(ANIMBASE.EXE).
PANELS Character Window Tool
----------------------------
PANELS allows applications to create multiple windows on
character mode screens. Support is also provided to allow
ACCEPT/DISPLAY statements to be sent to the different Windows.
This allows easier development of pull-down menus, pop-up
windows, etc. on character mode screens.
Extfh/BTrieve Interface
-----------------------
New modules are being provided to allow programs that use standard
COBOL file handling syntax to access BTrieve files. Another module
is provided to allow programs that make calls to BTrieve to access
indexed-sequential files created using the standard COBOL file
handler (EXTFH).
COBOL Syntax Enhancements
-------------------------
There have been various COBOL syntax enhancements, mostly based
on the CODASYL Journal of Development, including:
o EVALUATE statement extended
o PERFORM UNTIL EXIT
o SET condition-name TO FALSE
o READ WITH WAIT
o READ WITH IGNORE LOCK
o ACCEPT/DISPLAY WITH UPPER/LOWER
o "C" and "R" accepted as currency signs
o VALUE clause extended to include "LENGTH OF identifier",
o "ADDRESS OF identifier" and AND'ing and OR'ing of numbers
(used for programming for GUI environments).
Mainframe Compatibility Enhancements
------------------------------------
o Support for the DOS/VS COBOL dialect.
o Mainframe compatible arithmetic. A new directive has been added
to provide mainframe compatible results in arithmetic statements.
The difference is in the way intermediate results are stored
during arithmetic statements.
o Mainframe file status codes are now supported.
o Obtain record length information for FILE SECTION records via
negative subscripting (a common mainframe technique).
o Improved support for OSVS perform behavior.
Western National Language Standards Supported
---------------------------------------------
The "NLS" compiler directive has been provided to indicate that a
program should use a specified language/territory/codepage. The
program then uses the appropriate characters and collating sequences
for currency signs, decimal and thousands separator and comparisons.
Performance Improvements
------------------------
There have been improvements in the speed and size of the code
output by the compiler. The main performance improvements
come from the following:
o Better use of 80x86 registers, leading to a general
20% improvement in computational operations.
o Speed of access to linkage section has been doubled
in programs with greater than 64K of data.
o Improvement in CALL performance.
o 40% speed improvement in accessing tables greater than 64K.
o Improvement in SEARCH performance.
o Improvements in file-handling performance.
o Use of the XM DOS Extender can improve performance of
larger programs.
Other Enhancements
------------------
o The compiler can now output assembler listings in a form that
can be input to MASM if required.
o Environment variables can be set up in a text file, therefore
reducing the amount of DOS environment space that is needed.
The variables can be read and written by COBOL programs.
New Call-by-Name Routines
-------------------------
o CBL_EXIT_PROC
o CBL_SUBSYSTEM
o CBL_COPY_FILE
o CBL_GET_SCR_LINE_DRAW
o CBL_GET_OS_INFO
o PC_FIND_DRIVES
XM DOS Extender
------------
o Enable your applications to exceed the 640K DOS memory limit.
o Enables up to 16MB of extended memory to be made available to
your application.
o Supports VCPI, DPMI and XMS protocols.
o No need to modify your programs, simply recompile and relink.
Updated Windows 3.1 components
------------------------------
o Image Editor:
With Image Editor (IMAGEDIT.EXE), you can create graphical
images to represent files, windows, cursors, and other
objects in your Windows applications.
o Dialog Editor:
With Dialog Editor (DLGEDIT.EXE), you can visually design and
test a dialog box on your screen instead of programmatically
using DIALOG statements in your resource-definition file.
o Font Editor:
With Font Editor (FONTEDIT.EXE), you can modify existing
fonts to create new fonts for your applications.
o Resource Compiler:
With Resource Compiler (RC.EXE) you can compile your Windows
resource files and resource-definition files for inclusion
in Windows .EXE's and .DLL's.
Codeview 4.05 Debugger
----------------------
Supports debugging of mixed language DOS applications including
Cobol, C, and MASM.
===================================================================
INSTALLATION
============
Installing HIMEM.SYS
--------------------
For best results, LINK requires HIMEM.SYS (which is supplied
with COBOL 5.0 but not installed by Setup). If HIMEM.SYS
(or some other memory manager) is not already installed on
your computer, follow these instructions:
1. Verify that HIMEM.SYS is located in the \COBOL\BIN
directory and that \COBOL\BIN is included in the
PATH statement in your AUTOEXEC.BAT file.
2. Add this statement to your CONFIG.SYS file:
DEVICE = C:\COBOL\BIN\HIMEM.SYS
The DEVICE command for HIMEM.SYS enables the use of
extended memory. Therefore, this command must appear
in your CONFIG.SYS file before any commands that
start device drivers, or programs that use extended
memory such as EMM386.EXE.
Path Length
-----------
For best results, install the default \COBOL directories.
If you choose other installation directory paths, choose
paths of reasonable length. Some directory paths are added
to the PATH statement in your AUTOEXEC.BAT, which is limited
to 128 characters.
Path Statement Characters
-------------------------
Do not use invalid path characters, such as:
< > * " '
in the Setup utility.
Source and Target Drive Specification
-------------------------------------
Do not specify invalid drives when prompted for the
installation source drive or destination drive in the
Setup utility.
Using NEW-VARS.BAT
------------------
After the initial installation of COBOL 5.0, any subsequent
installations will create a new NEW-VARS.BAT. This may
delete needed statements from the original file. If you
re-install COBOL 5.0, make a backup of NEW-VARS.BAT to
merge with the new file.
===================================================================
PROGRAMMER'S WORKBENCH
======================
Segmented Programs
------------------
Segmented COBOL programs cannot be run from PWB.
Using Library Routines (call-by-name) for Mouse
-----------------------------------------------
Do NOT use the mouse support Library Routine CBL_TERM_MOUSE
under PWB for builds using Shared Runtime System (this call
is handled by the runtime system). Use of this call under PWB
may cause your system to hang.
Windows .DLL Projects
---------------------
If you debug a Windows .DLL project, to change from the
debug build options to the release build options, do the
following:
1. Close the debug project you are working on.
2. Choose "Use Release Option" from the Build Options dialog
box.
3. Create a new project (.MAK file) for the Windows .DLL
using the release options.
===================================================================
COMPILER AND LINKER
===================
ANSI Standard for String Literals
---------------------------------
The ANSI Standard for string literals rule is enforced
in COBOL version 5.0. COBOL versions 4.5 and earlier
did not enforce this rule. For this reason, programs
compiled with earlier versions of COBOL that do not
conform to this rule may produce a syntax error.
For more information and the exact wording of this
ANSI rule, see the "Continuation of Lines" section in
the COBOL Language Reference book Chapter 2, page 77.
By-Value Parameter Passing in CALL Statements
---------------------------------------------
Dynamically linked COBOL programs cannot pass parameters by
value, only by reference. Statically linked COBOL
Programs can pass parameters either way.
Sequential File Data Compression
--------------------------------
To compress data in a sequential file, you must compile
using the CALLFH directive.
Using WINDOWS.78 in a COBOL Program
-----------------------------------
When WINDOWS.78 is used in a COBOL program, the directive
REMOVE(IGNORE) must be used to avoid a compiler error.
For an example of how to use the REMOVE(IGNORE) directive,
refer to SYSMETS.CBL--a sample program located in the
\COBOL\SAMPLES\WINDOWS directory.
===================================================================
ANIMATOR
========
Animating Sub-Programs
-------------------------
To animate a program which is called by another program,
you must compile using the PARAMCOUNTCHECK directive.
For more information, Refer to System Reference,
Appendix D (Directives of Compiler), page 578.
Using Animator From PWB
-----------------------
If you receive a 198 error while animating under PWB, this is probably
caused by insufficient system memory needed to load your program and
Animator. The best solution to this is to ensure Animator has access to
extended memory by checking the "USE XM for COMPILE and ANIMATE"
check box on the COBOL Compiler options screen in PWB.
The program can also be animated from the command line.
In a very large program, or when using certain animator
functions, ANIMBASE may have to be used in place of ANIMATOR.
Using the Cobol Compiler Icon with the ANIM directive
-----------------------------------------------------
1. Click on the Cobol Compiler icon
2. Type the filename and ANIM directive as you would
at the command line. When the compile finishes
successfully, LINK is executed automatically.
3. Make LINK the active window to allow LINK to process.
4. Select the OK button from the Application Terminated
dialog box.
===================================================================
CODEVIEW
========
Arithmetic Data Types
---------------------
Comp-1, Comp-2, and External Floating Point Data Items are
not supported.
Array Subscripts
----------------
Index names are not supported as subscripts.
Conditional Breakpoints
-----------------------
When a breakpoint expression is entered that contains
blanks, the expression must be quoted or parenthesized.
For instance, to use
a + 1
as a breakpoint expression, enter
bp ?(a + 1)
or
bp ?"a + 1"
The BP= Command (Break on change) will only accept
single data items, such as:
bp= b(1)
bp= x
Multiple-term expressions are not allowed. For example:
bp= (a + b)
bp= (a + 1)
bp= (a * 5 + x(2))
Indexed data items are allowed, but only if the index
is a literal:
bp= q(5)
bp= a(1)
CVPACK Configuration
--------------------
Codeview uses CVPACK.EXE. There are two possible versions of
CVPACK which can be installed for use with COBOL 5.0:
CVPACKX.@XE and CVPACK.@XE.
CVPACKX.@XE takes advantage of extended memory. CVPACK.@XE is
strictly for Real Mode use when an extended memory manager
is NOT present. One of these files will be installed as CVPACK.EXE,
depending upon installation options that you choose.
During Setup, on the CVPACK Configuration screen, if you
choose "yes" to use the extended version of CVPACK, CVPACKX.@XE
is installed as CVPACK.EXE, and CVPACK.@XE is installed as
CVPACKR.EXE. If you choose "no", CVPACK.@XE is installed as
CVPACK.EXE, and CVPACKX.@XE is installed as CVPACKX.EXE.
Double-Quoted Integers
----------------------
Double-quoted integers used in relational operations,
such as:
"5" = 5
are not recognized.
Numeric Literals
----------------
Leading zeroes are required in decimals. For instance, 0.01
is accepted as a valid numeric literal; .01 is not.
Radix Settings
--------------
If n16 is set, and a data item consists completely of
hex digits, the item will not be read as a symbol, but
as a hex number. For instance, the conditional breakpoint
bp ?a
will treat "a" as the number 10.
Registers Window Flag
---------------------
PL and NC flags are not supported in the registers window.
Reserved Words
--------------
The following are CodeView reserved words, and may not be
used as identifiers anywhere in programs which are to be
debugged:
main
winmain
entgqq
_main
===================================================================
SAMPLE PROGRAMS
===============
MOUSMENU.CBL Program
--------------------
The sample file C:\cobol\samples\mousmenu.cbl should be run
in a full-screen DOS box in Windows. The mouse will not
function correctly in a windowed DOS box.
====================================================================
MISCELLANEOUS
=============
386 Minimum Requirement
-----------------------
An 80386 or higher processor is recommended for the
following utilities:
PWB Microsoft Programmer's WorkBench
CV Microsoft CodeView
LINK Microsoft Segmented Executable Linker
EXEHDR Microsoft EXE File Header Utility
IMPLIB Microsoft Import Library Manager
LIB Microsoft Library Manager
NMAKE Microsoft Program Maintenance Utility
HELPMAKE Microsoft Help File Maintenance Utility
BSCMAKE Microsoft Browser Database Maintenance Utility
SBRPACK Microsoft Browse Information Compactor
CVPACK Microsoft Debugging Information Compactor
RM Microsoft File Removal Utility
UNDEL Microsoft File Undelete Utility
EXP Microsoft File Expunge Utility
WX/WXSRVR Microsoft WX/WXServer Utility
BTrieve
-------
When using BTrieve to access information on a server,
if the current working drive is not mapped to the server
that you are using, the file specification must include
the server path (drive letter).
For example: If the current working drive is C and the
server drive is F, then the "select" statement on page
133 of the System Reference would look like this:
select testfile-1 assign to "f:\test-1.dat"
Conversion Utilities
--------------------
TABX, Convert3, and Convert5 are to be used only to
convert files from another dialect, and will not
run if EMM386 is installed.
H2CPY
-----
Do not use H2CPY on WINDOWS.H. The WINDOWS.78 and
WINDOWS.CPY files are provided in \cobol\samples\windows as correct
conversions of WINDOWS.H.
Microsoft C 7.0
---------------
Mixed-Language programming using Microsoft C/C++ 7.0 and
COBOL 5.0 is possible. However, floating point data types
can only be used in one or the other language; not both.
This restriction avoids link errors caused by conflicts in
the C and COBOL floating point support libraries.
User-Created Libraries
----------------------
Libraries created using LIB.EXE cannot be used in the
"lib" field of a LINK command unless the calling programs
were compiled with the LITLINK compiler directive.
If LITLINK is not used, the user-created libraries should
be placed in the .OBJ field of the LINK command in order
to be linked statically.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More