Microsoft COBOL v2.1
This commit is contained in:
parent
be2316a97c
commit
8fa056fa85
92
Microsoft COBOL v21/ASM.ASM
Normal file
92
Microsoft COBOL v21/ASM.ASM
Normal file
@ -0,0 +1,92 @@
|
||||
TITLE Assembly language interface table and macro (asmnam)
|
||||
|
||||
;*********************************************************************
|
||||
;
|
||||
; Contains the skeleton structure asmtab and the count of assembler
|
||||
; routines, asmcnt. Contains the definition for macro asmnam, which
|
||||
; produces the correct table entries for assembler and other non-COBOL
|
||||
; routines.
|
||||
;
|
||||
|
||||
INCLUDE pseg.mac
|
||||
|
||||
SUBTTL Build assembler subroutine table macros
|
||||
PAGE
|
||||
|
||||
ASM86 equ 0
|
||||
C equ 1
|
||||
PASCAL equ 2
|
||||
FORTRAN equ 3
|
||||
last equ 0 ;; only asm86 allowed for now
|
||||
|
||||
|
||||
asmnam macro entry,lang
|
||||
LOCAL A,B,language
|
||||
|
||||
;; asmnam builds a table of routine entry point name string
|
||||
;; lengths, name strings, and long pointers to the entry point
|
||||
;; The entry points must be defined as PUBLIC FAR PROC's
|
||||
|
||||
if1
|
||||
ifb <entry>
|
||||
%out '*** error - Entry point not specified'
|
||||
else
|
||||
|
||||
ifb <lang>
|
||||
%out '*** error - Subroutine language not specified for &entry'
|
||||
language equ 0ffh ;; Invalid language type
|
||||
else
|
||||
|
||||
ifndef lang
|
||||
%out '*** error - Invalid language (&lang) specified for &entry'
|
||||
language equ 0ffh
|
||||
else
|
||||
|
||||
if lang gt last
|
||||
%out '*** error - Invalid language (&lang) specified for &entry'
|
||||
language equ 0ffh
|
||||
else
|
||||
language equ lang
|
||||
endif
|
||||
|
||||
endif ;; ifndef lang
|
||||
endif ;; ifb <lang>
|
||||
endif ;; ifb <entry>
|
||||
endif ;; if1
|
||||
|
||||
ifnb <entry>
|
||||
EXTRN entry:FAR
|
||||
START_DSEG
|
||||
COUNT = COUNT+1
|
||||
DW B-A ;; length of program name string
|
||||
A LABEL BYTE
|
||||
DB '&entry' ;; program name string
|
||||
B LABEL BYTE
|
||||
DB language ;; declaration of program language
|
||||
DD entry ;; declaration of program entry point
|
||||
END_DSEG
|
||||
endif
|
||||
endm
|
||||
|
||||
|
||||
SUBTTL Asmtab and asncnt structures
|
||||
PAGE
|
||||
|
||||
START_DSEG
|
||||
PUBLIC _asmtab
|
||||
PUBLIC _asmcnt
|
||||
COUNT = 0
|
||||
_asmtab LABEL BYTE
|
||||
END_DSEG
|
||||
.lall
|
||||
; *************************** user routines are entered here *************
|
||||
include userprog.mac
|
||||
; *************************** user routines are entered here *************
|
||||
|
||||
.sall
|
||||
START_DSEG
|
||||
_asmcnt DW COUNT ; set by macro asmnam to be the number of invocations
|
||||
; of asmnam
|
||||
END_DSEG
|
||||
|
||||
END
|
226
Microsoft COBOL v21/BUILD.COB
Normal file
226
Microsoft COBOL v21/BUILD.COB
Normal file
@ -0,0 +1,226 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. BUILD.
|
||||
SECURITY.
|
||||
THIS PROGRAM CREATES AN INDEXED FILE OF NAMES, ADDRESSES,
|
||||
AND PHONE NUMBERS
|
||||
*
|
||||
ENVIRONMENT DIVISION.
|
||||
INPUT-OUTPUT SECTION.
|
||||
FILE-CONTROL.
|
||||
SELECT ISAM-FILE
|
||||
ASSIGN TO DISK
|
||||
FILE STATUS IS ISAM-STATUS
|
||||
RECORD KEY IS ISAM-KEY
|
||||
ACCESS MODE IS RANDOM
|
||||
ORGANIZATION IS INDEXED.
|
||||
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
FD ISAM-FILE
|
||||
LABEL RECORDS ARE STANDARD
|
||||
VALUE OF FILE-ID IS 'ISAM.DAT'.
|
||||
|
||||
01 ISAM-RECORD.
|
||||
05 ISAM-KEY.
|
||||
10 ISAM-LAST-NAME PIC X(20).
|
||||
10 ISAM-FIRST-NAME PIC X(20).
|
||||
05 ISAM-ADDRESS-LINE-1 PIC X(40).
|
||||
05 ISAM-ADDRESS-LINE-2 PIC X(40).
|
||||
05 ISAM-PHONE PIC X(12).
|
||||
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
|
||||
01 WORK-FIELDS.
|
||||
05 IIX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 JIX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 KIX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 ISAM-STATUS PIC XX VALUE SPACES.
|
||||
|
||||
|
||||
05 WS-MORE PIC X VALUE SPACES.
|
||||
88 NO-MORE VALUE 'N', 'n'.
|
||||
|
||||
05 ANY-CHAR PIC X VALUE SPACE.
|
||||
|
||||
01 SWITCHES.
|
||||
05 ON-VALUE PIC X VALUE 'Y'.
|
||||
05 OFF-VALUE PIC X VALUE 'N'.
|
||||
05 BUILD-FINISHED-SW PIC X VALUE 'N'.
|
||||
88 BUILD-FINISHED VALUE 'Y'.
|
||||
|
||||
01 WS-DATA-RECORD.
|
||||
05 WS-KEY.
|
||||
10 WS-LAST-NAME PIC X(20) VALUE SPACES.
|
||||
10 WS-FIRST-NAME PIC X(20) VALUE SPACES.
|
||||
05 WS-ADDRESS-LINE-1 PIC X(40) VALUE SPACES.
|
||||
05 WS-ADDRESS-LINE-2 PIC X(40) VALUE SPACES.
|
||||
05 WS-PHONE PIC X(12) VALUE SPACES.
|
||||
|
||||
LINKAGE SECTION.
|
||||
01 LS-TITLE PIC X(50).
|
||||
|
||||
SCREEN SECTION.
|
||||
|
||||
01 BLANK-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
|
||||
01 TUTOR-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 17 VALUE
|
||||
'MS-COBOL INDEXED FILE CREATION DEMONSTRATION'.
|
||||
03 LINE 2 COLUMN 15 PIC X(50) FROM LS-TITLE HIGHLIGHT.
|
||||
03 LINE 4 COLUMN 5 VALUE
|
||||
'This is subprogram BUILD, CALLed from main program DEM
|
||||
- 'O.'.
|
||||
03 LINE 5 COLUMN 5 VALUE
|
||||
'The title above was passed as a parameter from DEMO.'.
|
||||
03 LINE 7 COLUMN 1 VALUE
|
||||
'In this program, you will create an indexed (ISAM) fil
|
||||
- 'e of records containing '.
|
||||
03 LINE 8 COLUMN 1 VALUE
|
||||
'names, addresses, and phone numbers. After the data fo
|
||||
- 'r one person '.
|
||||
03 LINE 9 COLUMN 1 VALUE
|
||||
'has been entered, you will be given the opportunity to
|
||||
- ' review the data.'.
|
||||
03 LINE 11 COLUMN 1 VALUE
|
||||
'If the data is ok, it will be written to files ISAM.DA
|
||||
- 'T and ISAM.KEY.'.
|
||||
03 LINE 13 COLUMN 1 VALUE
|
||||
'The full name of the person will be used as a key for
|
||||
- 'searching the'.
|
||||
03 LINE 14 COLUMN 1 VALUE
|
||||
'file in program UPDATE.'.
|
||||
03 LINE 16 COLUMN 1 VALUE
|
||||
'To end this program, reply N to the question:'.
|
||||
03 LINE 17 COLUMN 1 VALUE
|
||||
' "Do you wish to enter more data?(Y/N)"'.
|
||||
03 LINE 18 COLUMN 1 VALUE
|
||||
'when it appears on the screen.'.
|
||||
03 LINE 20 COLUMN 1 HIGHLIGHT VALUE
|
||||
'Hit ENTER to continue. '.
|
||||
03 COLUMN PLUS 1 PIC X TO ANY-CHAR.
|
||||
|
||||
01 DATA-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 17 VALUE
|
||||
'MS-COBOL INDEXED FILE CREATION DEMONSTRATION'.
|
||||
03 LINE 2 COLUMN 15 PIC X(50) FROM LS-TITLE HIGHLIGHT.
|
||||
03 LINE 4 COLUMN 1 VALUE
|
||||
'Please enter the data requested below. To end this pro
|
||||
- 'gram'.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'reply N to the question: "Do you wish to enter more da
|
||||
- 'ta?(Y/N)"'.
|
||||
03 LINE 6 COLUMN 1 VALUE
|
||||
'when it appears on the screen.'.
|
||||
03 LINE 8 COLUMN 1 VALUE
|
||||
'Enter FIRST name and initial (1 to 20 characters): '.
|
||||
03 LINE 9 COLUMN 1 VALUE '[' HIGHLIGHT.
|
||||
03 LINE 9 COLUMN 2 PIC X(20) USING WS-FIRST-NAME.
|
||||
03 LINE 9 COLUMN 22 VALUE ']' HIGHLIGHT.
|
||||
03 LINE 10 COLUMN 1 VALUE
|
||||
'Enter LAST name (1 to 20 characters): '.
|
||||
03 LINE 11 COLUMN 1 VALUE '[' HIGHLIGHT.
|
||||
03 LINE 11 COLUMN 2 PIC X(20) USING WS-LAST-NAME.
|
||||
03 LINE 11 COLUMN 22 VALUE ']' HIGHLIGHT.
|
||||
03 LINE 13 COLUMN 1 VALUE
|
||||
'Enter first address line (1 to 40 characters): '.
|
||||
03 LINE 14 COLUMN 1 VALUE '[' HIGHLIGHT.
|
||||
03 LINE 14 COLUMN 2 PIC X(40) USING WS-ADDRESS-LINE-1.
|
||||
03 LINE 14 COLUMN 42 VALUE ']' HIGHLIGHT.
|
||||
03 LINE 15 COLUMN 1 VALUE
|
||||
'Enter second address line (1 to 40 characters): '.
|
||||
03 LINE 16 COLUMN 1 VALUE '[' HIGHLIGHT.
|
||||
03 LINE 16 COLUMN 2 PIC X(40) USING WS-ADDRESS-LINE-2.
|
||||
03 LINE 16 COLUMN 42 VALUE ']' HIGHLIGHT.
|
||||
03 LINE 18 COLUMN 1 VALUE
|
||||
'Enter phone number (XXX-XXXX or XXX-XXX-XXXX): '.
|
||||
03 LINE 19 COLUMN 1 VALUE '[' HIGHLIGHT.
|
||||
03 LINE 19 COLUMN 2 PIC X(12) USING WS-PHONE.
|
||||
03 LINE 19 COLUMN 14 VALUE ']' HIGHLIGHT.
|
||||
03 LINE 21 COLUMN 10 VALUE
|
||||
'If data is OK, hit ENTER to write to the file. You can
|
||||
- 'use BACK TAB to '.
|
||||
03 LINE 22 COLUMN 15 VALUE
|
||||
'return to previous fields and modify data with cursor pos
|
||||
- 'itioning'.
|
||||
03 LINE 23 COLUMN 15 VALUE
|
||||
'keys.'.
|
||||
03 LINE 23 COLUMN 21 HIGHLIGHT VALUE
|
||||
'Hit ENTER by itself to continue: '.
|
||||
03 COLUMN PLUS 1 PIC X TO ANY-CHAR.
|
||||
|
||||
01 WRITE-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 20 VALUE
|
||||
'MS-COBOL INDEXED FILE CREATION DEMONSTRATION'.
|
||||
03 LINE 2 COLUMN 15 PIC X(50) FROM LS-TITLE HIGHLIGHT.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'Record written to file ISAM.DAT. File status = '.
|
||||
03 PIC XX FROM ISAM-STATUS HIGHLIGHT.
|
||||
03 LINE 8 COLUMN 1 VALUE
|
||||
'File status = 00 means action was successful'.
|
||||
03 LINE 9 COLUMN 1 VALUE
|
||||
'File status = 10 means END-OF-FILE encountered'.
|
||||
03 LINE 10 COLUMN 1 VALUE
|
||||
'File status = 21 means KEY NOT IN SEQUENCE'.
|
||||
03 LINE 11 COLUMN 1 VALUE
|
||||
'File status = 22 means ATTEMPT TO WRITE DUPLICATE KEY'.
|
||||
03 LINE 12 COLUMN 1 VALUE
|
||||
'File status = 23 means NO RECORD FOUND'.
|
||||
03 LINE 13 COLUMN 1 VALUE
|
||||
'File status = 24 means DISK FULL'.
|
||||
03 LINE 14 COLUMN 1 VALUE
|
||||
'File status = 30 means PERMANENT INPUT-OUTPUT ERROR'.
|
||||
03 LINE 15 COLUMN 1 VALUE
|
||||
'File status = 91 means FILE STRUCTURE WAS DAMAGED'.
|
||||
03 LINE 18 COLUMN 1 VALUE
|
||||
' Do you wish to enter more data?(Y/N)'.
|
||||
03 LINE 19 COLUMN 10 HIGHLIGHT VALUE
|
||||
'Type response (Y or N) followed by ENTER: '.
|
||||
03 COLUMN PLUS 1 PIC X TO WS-MORE.
|
||||
|
||||
|
||||
|
||||
|
||||
PROCEDURE DIVISION USING LS-TITLE.
|
||||
|
||||
P000-MAIN-LINE.
|
||||
MOVE OFF-VALUE TO BUILD-FINISHED-SW.
|
||||
MOVE SPACE TO WS-MORE.
|
||||
DISPLAY TUTOR-SCREEN.
|
||||
ACCEPT TUTOR-SCREEN.
|
||||
|
||||
OPEN OUTPUT ISAM-FILE.
|
||||
IF ISAM-STATUS NOT = '00'
|
||||
DISPLAY ' FILE OPEN FAILURE. JOB CANCELLED'
|
||||
DISPLAY 'FILE STATUS = ', ISAM-STATUS
|
||||
DISPLAY 'TYPE ANY CHARACTER TO END JOB'
|
||||
ACCEPT ANY-CHAR
|
||||
ELSE
|
||||
PERFORM P100-GET-DATA
|
||||
UNTIL BUILD-FINISHED.
|
||||
|
||||
CLOSE ISAM-FILE.
|
||||
DISPLAY BLANK-SCREEN.
|
||||
EXIT PROGRAM.
|
||||
|
||||
|
||||
P100-GET-DATA.
|
||||
MOVE SPACES TO WS-DATA-RECORD.
|
||||
DISPLAY DATA-SCREEN.
|
||||
ACCEPT DATA-SCREEN.
|
||||
|
||||
PERFORM P500-WRITE-DATA.
|
||||
DISPLAY WRITE-SCREEN.
|
||||
PERFORM P110-CONTINUE.
|
||||
|
||||
P110-CONTINUE.
|
||||
ACCEPT WRITE-SCREEN.
|
||||
IF NO-MORE
|
||||
MOVE ON-VALUE TO BUILD-FINISHED-SW.
|
||||
|
||||
P500-WRITE-DATA.
|
||||
WRITE ISAM-RECORD FROM WS-DATA-RECORD.
|
180
Microsoft COBOL v21/CENTER.COB
Normal file
180
Microsoft COBOL v21/CENTER.COB
Normal file
@ -0,0 +1,180 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. CENTER.
|
||||
SECURITY.
|
||||
THIS PROGRAM CENTERS, LEFT ALIGNS, OR RIGHT ALIGNS
|
||||
A HEADING WITHIN AN 80 CHARACTER FIELD. IT CAN BE MADE
|
||||
INTO A GENERAL-PURPOSE SUBROUTINE BY MOVING THE BLOCK OF
|
||||
STORAGE CALLED PARAMETER-AREA INTO THE LINKAGE SECTION,
|
||||
ADDING THE CLAUSE, "USING PARAMETER-AREA" TO THE PROCEDURE
|
||||
DIVISION HEADER, REPLACING "STOP RUN" WITH "EXIT PROGRAM",
|
||||
AND DELETING THE DISPLAY AND ACCEPT STATEMENTS. THE
|
||||
PARAMETER-AREA VARIABLES WOULD THEN BE SET UP IN THE
|
||||
CALLING PROGRAM.
|
||||
|
||||
|
||||
*
|
||||
ENVIRONMENT DIVISION.
|
||||
|
||||
DATA DIVISION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
|
||||
|
||||
|
||||
01 WORK-FIELDS.
|
||||
05 IIX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 WS-IN-START PIC S9(5) VALUE 0 COMP-0.
|
||||
05 WS-IN-END PIC S9(5) VALUE 0 COMP-0.
|
||||
05 WS-IN-LEN PIC S9(5) VALUE 0 COMP-0.
|
||||
05 WS-OUT-INDEX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 TEN-SPACES PIC X(10) VALUE SPACES.
|
||||
|
||||
01 SWITCHES.
|
||||
05 ON-VALUE PIC X VALUE 'Y'.
|
||||
05 OFF-VALUE PIC X VALUE 'N'.
|
||||
05 FINISHED-SW PIC X VALUE 'N'.
|
||||
88 FINISHED VALUE 'Y'.
|
||||
|
||||
01 WS-RULERS.
|
||||
05 WS-RULER-1.
|
||||
10 FILLER PIC X(40) VALUE
|
||||
" 1 2 3 4".
|
||||
10 FILLER PIC X(40) VALUE
|
||||
" 5 6 7 8".
|
||||
05 WS-RULER-2.
|
||||
10 FILLER PIC X(40) VALUE
|
||||
"1234567890123456789012345678901234567890".
|
||||
10 FILLER PIC X(40) VALUE
|
||||
"1234567890123456789012345678901234567890".
|
||||
|
||||
01 PARAMETER-AREA.
|
||||
05 PA-OPTION PIC X VALUE SPACE.
|
||||
88 CENTER-OPTION VALUE 'C', 'c'.
|
||||
88 LEFT-ALIGN-OPTION VALUE 'L', 'l'.
|
||||
88 RIGHT-ALIGN-OPTION VALUE 'R', 'r'.
|
||||
88 VALID-OPTION VALUE 'C', 'c', 'L', 'l',
|
||||
'R', 'r'.
|
||||
88 END-OPTION VALUE 'E', 'e'.
|
||||
|
||||
05 PA-BUFFER-LEN PIC S9(5) VALUE 80 COMP-0.
|
||||
|
||||
05 PA-IN-TITLE PIC X(80) VALUE SPACES.
|
||||
05 FILLER REDEFINES PA-IN-TITLE.
|
||||
10 PA-IN-TITLE-CHAR OCCURS 80 TIMES PIC X.
|
||||
|
||||
05 PA-OUT-TITLE PIC X(80) VALUE SPACES.
|
||||
05 FILLER REDEFINES PA-OUT-TITLE.
|
||||
10 PA-OUT-TITLE-CHAR OCCURS 80 TIMES PIC X.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
|
||||
P000-MAIN-LINE.
|
||||
DISPLAY SPACE.
|
||||
DISPLAY SPACE.
|
||||
DISPLAY TEN-SPACES,
|
||||
" This is program CENTER, one of the MS-COBOL demonstration".
|
||||
DISPLAY TEN-SPACES,
|
||||
" programs. It will center, left align, or right align".
|
||||
DISPLAY TEN-SPACES,
|
||||
" a line of text up to 80 characters long. You will be ".
|
||||
DISPLAY TEN-SPACES,
|
||||
" asked whether you want to center or align your text, ".
|
||||
DISPLAY TEN-SPACES,
|
||||
" then asked to enter your text, which will be displayed".
|
||||
DISPLAY TEN-SPACES,
|
||||
" as requested.".
|
||||
DISPLAY SPACE.
|
||||
DISPLAY TEN-SPACES,
|
||||
" This action will be repeated until you enter".
|
||||
DISPLAY TEN-SPACES,
|
||||
" option E to end the program.".
|
||||
DISPLAY SPACE.
|
||||
DISPLAY TEN-SPACES,
|
||||
" This is a simple program, but it may be made into a".
|
||||
DISPLAY TEN-SPACES,
|
||||
" subroutine that can be called to center or align report".
|
||||
DISPLAY TEN-SPACES,
|
||||
" or screen headings.".
|
||||
DISPLAY SPACE.
|
||||
DISPLAY SPACE.
|
||||
|
||||
|
||||
PERFORM P010-GET-OPTION
|
||||
UNTIL FINISHED.
|
||||
|
||||
STOP RUN.
|
||||
|
||||
P010-GET-OPTION.
|
||||
DISPLAY
|
||||
" Please type first letter of option desired, then hit",
|
||||
" RETURN:".
|
||||
DISPLAY
|
||||
" Option C: Center text on screen".
|
||||
DISPLAY
|
||||
" Option L: Left align text on screen".
|
||||
DISPLAY
|
||||
" Option R: Right align text on screen".
|
||||
DISPLAY
|
||||
" Option E: End this program".
|
||||
DISPLAY SPACE.
|
||||
ACCEPT PA-OPTION.
|
||||
|
||||
IF END-OPTION
|
||||
MOVE ON-VALUE TO FINISHED-SW
|
||||
ELSE IF VALID-OPTION
|
||||
PERFORM P020-GET-TITLE.
|
||||
|
||||
P020-GET-TITLE.
|
||||
DISPLAY
|
||||
" Please enter text (1 to 80 characters) below:".
|
||||
DISPLAY SPACE.
|
||||
MOVE SPACES TO PA-OUT-TITLE.
|
||||
ACCEPT PA-IN-TITLE.
|
||||
|
||||
IF PA-IN-TITLE NOT = SPACES
|
||||
PERFORM P030-ADJUST.
|
||||
|
||||
DISPLAY
|
||||
"Centered/aligned text:".
|
||||
DISPLAY WS-RULER-1.
|
||||
DISPLAY WS-RULER-2.
|
||||
DISPLAY PA-OUT-TITLE.
|
||||
|
||||
P030-ADJUST.
|
||||
PERFORM P035-NOTHING VARYING WS-IN-START
|
||||
FROM 1 BY 1
|
||||
UNTIL PA-IN-TITLE-CHAR (WS-IN-START) NOT = SPACE
|
||||
OR WS-IN-START > PA-BUFFER-LEN.
|
||||
|
||||
PERFORM P035-NOTHING VARYING WS-IN-END
|
||||
FROM PA-BUFFER-LEN BY -1
|
||||
UNTIL PA-IN-TITLE-CHAR (WS-IN-END) NOT = SPACE
|
||||
OR WS-IN-END NOT > 1.
|
||||
|
||||
IF LEFT-ALIGN-OPTION
|
||||
MOVE 1 TO WS-OUT-INDEX
|
||||
ELSE
|
||||
COMPUTE WS-IN-LEN =
|
||||
WS-IN-END - WS-IN-START + 1
|
||||
IF RIGHT-ALIGN-OPTION
|
||||
COMPUTE WS-OUT-INDEX =
|
||||
1 + (PA-BUFFER-LEN - WS-IN-LEN)
|
||||
ELSE
|
||||
* *** MUST BE CENTER OPTION ******
|
||||
COMPUTE WS-OUT-INDEX =
|
||||
1 + ((PA-BUFFER-LEN - WS-IN-LEN) / 2).
|
||||
|
||||
PERFORM P040-MOVE-TITLE VARYING IIX FROM WS-IN-START
|
||||
BY 1 UNTIL IIX > WS-IN-END.
|
||||
|
||||
P035-NOTHING.
|
||||
EXIT.
|
||||
|
||||
P040-MOVE-TITLE.
|
||||
MOVE PA-IN-TITLE-CHAR (IIX)
|
||||
TO PA-OUT-TITLE-CHAR (WS-OUT-INDEX).
|
||||
ADD 1 TO WS-OUT-INDEX.
|
BIN
Microsoft COBOL v21/CENTER.INT
Normal file
BIN
Microsoft COBOL v21/CENTER.INT
Normal file
Binary file not shown.
20
Microsoft COBOL v21/CLDEMO.BAT
Normal file
20
Microsoft COBOL v21/CLDEMO.BAT
Normal file
@ -0,0 +1,20 @@
|
||||
ECHO OFF
|
||||
ECHO This batch file makes drive B: the default drive.
|
||||
ECHO It also puts drive A: on your search path by issuing
|
||||
ECHO PATH A:\.
|
||||
ECHO Any PATH you have previously set up should be restored
|
||||
ECHO after running this file by re-booting your system
|
||||
ECHO or issuing your own PATH command.
|
||||
ECHO You may cancel this file by typing CTRL-C after the PAUSE command.
|
||||
ECHO ***********************************************
|
||||
ECHO Put source files on drive B: - include DEMO.CPY
|
||||
ECHO ON
|
||||
PAUSE Put COBOL COMPILER in drive A:
|
||||
B:
|
||||
PATH A:\
|
||||
COBOL DEMO/D;
|
||||
COBOL BUILD/D;
|
||||
COBOL UPDATE/D;
|
||||
ECHO OFF
|
||||
ECHO Be sure to restore any previous PATH now.
|
||||
ECHO ON
|
BIN
Microsoft COBOL v21/COBOL.EXE
Normal file
BIN
Microsoft COBOL v21/COBOL.EXE
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/COBOL.OBJ
Normal file
BIN
Microsoft COBOL v21/COBOL.OBJ
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/COBOL0.OVR
Normal file
BIN
Microsoft COBOL v21/COBOL0.OVR
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/COBOL1.LIB
Normal file
BIN
Microsoft COBOL v21/COBOL1.LIB
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/COBOL1.OVR
Normal file
BIN
Microsoft COBOL v21/COBOL1.OVR
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/COBOL2.LIB
Normal file
BIN
Microsoft COBOL v21/COBOL2.LIB
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/COBOL2.OVR
Normal file
BIN
Microsoft COBOL v21/COBOL2.OVR
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/COBOL3.OVR
Normal file
BIN
Microsoft COBOL v21/COBOL3.OVR
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/COBOL4.OVR
Normal file
BIN
Microsoft COBOL v21/COBOL4.OVR
Normal file
Binary file not shown.
412
Microsoft COBOL v21/CRTEST.COB
Normal file
412
Microsoft COBOL v21/CRTEST.COB
Normal file
@ -0,0 +1,412 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. CRTEST.
|
||||
|
||||
THIS PROGRAM TESTS THE FUNCTIONS OF THE
|
||||
CRT DRIVERS USED WITH MS-COBOL.
|
||||
|
||||
UPDATED 10.9.83 LN
|
||||
UPDATED 5.21.84 BZ
|
||||
|
||||
AUTHOR. MICROSOFT.
|
||||
DATE-WRITTEN. 15 FEBRUARY 1983
|
||||
SECURITY. NONE.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 ACCEPT-FIELDS.
|
||||
03 IN-FIELD PIC X(6).
|
||||
03 IN-CHAR PIC X.
|
||||
03 WAIT-CHAR PIC X.
|
||||
03 COLOR-CHAR PIC X VALUE 'N'.
|
||||
88 NO-COLOR VALUE 'N', 'n'.
|
||||
03 ESC-CODE PIC 99.
|
||||
|
||||
SCREEN SECTION.
|
||||
|
||||
01 CLEAR-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
|
||||
01 BLINK-SCREEN.
|
||||
03 BLANK SCREEN
|
||||
VALUE "SCREEN ATTRIBUTE TEST.".
|
||||
03 LINE 3 HIGHLIGHT
|
||||
VALUE "THIS MESSAGE SHOULD BE HIGHLIGHTED.".
|
||||
03 LINE 4 BLINK
|
||||
VALUE "THIS MESSAGE SHOULD BLINK.".
|
||||
03 LINE 5 REVERSE-VIDEO
|
||||
VALUE "THIS MESSAGE SHOULD BE IN REVERSE-VIDEO.".
|
||||
03 LINE 6 UNDERLINE
|
||||
VALUE "THIS MESSAGE SHOULD BE UNDERLINED.".
|
||||
03 LINE 7
|
||||
VALUE "THIS MESSAGE SHOULD BE IN NORMAL VIDEO.".
|
||||
|
||||
01 BLANK-LINE-SCREEN.
|
||||
03 LINE 10 PIC X(80) FROM ALL "X".
|
||||
03 LINE 11 PIC X(80) FROM ALL "X".
|
||||
03 LINE 12 PIC X(80) FROM ALL "X".
|
||||
03 LINE 13 PIC X(80) FROM ALL "X".
|
||||
03 LINE 14 PIC X(80) FROM ALL "X".
|
||||
|
||||
03 LINE 11 COLUMN 20 BLANK LINE
|
||||
VALUE "B".
|
||||
03 LINE 12 COLUMN 40 BLANK LINE
|
||||
VALUE "B".
|
||||
03 LINE 13 COLUMN 60 BLANK LINE
|
||||
VALUE "B".
|
||||
03 LINE 16 BLANK LINE.
|
||||
|
||||
01 DEFAULT-SCREEN.
|
||||
03 BLANK SCREEN FOREGROUND-COLOR 7 BACKGROUND-COLOR 0.
|
||||
|
||||
01 REVERSE-SCREEN.
|
||||
03 BLANK SCREEN FOREGROUND-COLOR 0 BACKGROUND-COLOR 7.
|
||||
|
||||
01 NEW-COLOR-SCREEN.
|
||||
03 BLANK SCREEN FOREGROUND-COLOR 2 BACKGROUND-COLOR 1.
|
||||
|
||||
01 COLOR-SCREEN.
|
||||
03 "COBOL WITH COLOR FROM MICROSOFT".
|
||||
03 LINE 2 COLUMN 2 "REV-VIDEO" REVERSE-VIDEO.
|
||||
03 LINE 2 COLUMN 25 "HIGHLIGHT" HIGHLIGHT.
|
||||
03 LINE 2 COLUMN 55 "BLINKING " BLINK.
|
||||
03 LINE 3 COLUMN 5 "FOREGD 0" FOREGROUND-COLOR 0.
|
||||
03 LINE 4 COLUMN 6 "FOREGD 1" FOREGROUND-COLOR 1.
|
||||
03 LINE 5 COLUMN 7 "FOREGD 2" FOREGROUND-COLOR 2.
|
||||
03 LINE 6 COLUMN 8 "FOREGD 3" FOREGROUND-COLOR 3.
|
||||
03 LINE 7 COLUMN 9 "FOREGD 4" FOREGROUND-COLOR 4.
|
||||
03 LINE 8 COLUMN 10 "FOREGD 5" FOREGROUND-COLOR 5.
|
||||
03 LINE 9 COLUMN 11 "FOREGD 6" FOREGROUND-COLOR 6.
|
||||
03 LINE 10 COLUMN 12 "FOREGD 7" FOREGROUND-COLOR 7.
|
||||
03 LINE 11 COLUMN 13 "FOREGD 8" FOREGROUND-COLOR 8.
|
||||
03 LINE 12 COLUMN 14 "FOREGD 9" FOREGROUND-COLOR 9.
|
||||
03 LINE 13 COLUMN 15 "FOREGD 10" FOREGROUND-COLOR 10.
|
||||
03 LINE 14 COLUMN 16 "FOREGD 11" FOREGROUND-COLOR 11.
|
||||
03 LINE 15 COLUMN 17 "FOREGD 12" FOREGROUND-COLOR 12.
|
||||
03 LINE 16 COLUMN 18 "FOREGD 13" FOREGROUND-COLOR 13.
|
||||
03 LINE 17 COLUMN 19 "FOREGD 14" FOREGROUND-COLOR 14.
|
||||
03 LINE 18 COLUMN 20 "FOREGD 15" FOREGROUND-COLOR 15.
|
||||
|
||||
03 LINE 3 COLUMN 25 "BACKGD 0" BACKGROUND-COLOR 0.
|
||||
03 LINE 4 COLUMN 26 "BACKGD 1" BACKGROUND-COLOR 1.
|
||||
03 LINE 5 COLUMN 27 "BACKGD 2" BACKGROUND-COLOR 2.
|
||||
03 LINE 6 COLUMN 28 "BACKGD 3" BACKGROUND-COLOR 3.
|
||||
03 LINE 7 COLUMN 29 "BACKGD 4" BACKGROUND-COLOR 4.
|
||||
03 LINE 8 COLUMN 30 "BACKGD 5" BACKGROUND-COLOR 5.
|
||||
03 LINE 9 COLUMN 31 "BACKGD 6" BACKGROUND-COLOR 6.
|
||||
03 LINE 10 COLUMN 32 "BACKGD 7" BACKGROUND-COLOR 7.
|
||||
03 LINE 11 COLUMN 33 "BACKGD 8" BACKGROUND-COLOR 8.
|
||||
03 LINE 12 COLUMN 34 "BACKGD 9" BACKGROUND-COLOR 9.
|
||||
03 LINE 13 COLUMN 35 "BACKGD 10" BACKGROUND-COLOR 10.
|
||||
03 LINE 14 COLUMN 36 "BACKGD 11" BACKGROUND-COLOR 11.
|
||||
03 LINE 15 COLUMN 37 "BACKGD 12" BACKGROUND-COLOR 12.
|
||||
03 LINE 16 COLUMN 38 "BACKGD 13" BACKGROUND-COLOR 13.
|
||||
03 LINE 17 COLUMN 39 "BACKGD 14" BACKGROUND-COLOR 14.
|
||||
03 LINE 18 COLUMN 40 "BACKGD 15" BACKGROUND-COLOR 15.
|
||||
|
||||
03 LINE 19 COLUMN 3 "FORE 0 BACK 4"
|
||||
FOREGROUND-COLOR 0 BACKGROUND-COLOR 4.
|
||||
03 LINE 20 COLUMN 3 "FORE 1 BACK 5"
|
||||
FOREGROUND-COLOR 1 BACKGROUND-COLOR 5.
|
||||
03 LINE 21 COLUMN 3 "FORE 2 BACK 6"
|
||||
FOREGROUND-COLOR 2 BACKGROUND-COLOR 6.
|
||||
03 LINE 22 COLUMN 3 "FORE 3 BACK 7"
|
||||
FOREGROUND-COLOR 3 BACKGROUND-COLOR 7.
|
||||
|
||||
03 LINE 19 COLUMN 23 "FORE 0 BACK 4 BLINK RV"
|
||||
BLINK REVERSE-VIDEO
|
||||
FOREGROUND-COLOR 0 BACKGROUND-COLOR 4.
|
||||
03 LINE 20 COLUMN 23 "FORE 1 BACK 5 BLINK RV"
|
||||
BLINK REVERSE-VIDEO
|
||||
FOREGROUND-COLOR 1 BACKGROUND-COLOR 5.
|
||||
03 LINE 21 COLUMN 23 "FORE 2 BACK 6 BLINK RV"
|
||||
BLINK REVERSE-VIDEO
|
||||
FOREGROUND-COLOR 2 BACKGROUND-COLOR 6.
|
||||
03 LINE 22 COLUMN 23 "FORE 3 BACK 7 BLINK RV"
|
||||
BLINK REVERSE-VIDEO
|
||||
FOREGROUND-COLOR 3 BACKGROUND-COLOR 7.
|
||||
|
||||
03 LINE 19 COLUMN 55 "FORE 8 BACK 12 "
|
||||
FOREGROUND-COLOR 8 BACKGROUND-COLOR 12.
|
||||
03 LINE 20 COLUMN 55 "FORE 9 BACK 13 "
|
||||
FOREGROUND-COLOR 9 BACKGROUND-COLOR 13.
|
||||
03 LINE 21 COLUMN 55 "FORE 10 BACK 14"
|
||||
FOREGROUND-COLOR 10 BACKGROUND-COLOR 14.
|
||||
03 LINE 22 COLUMN 55 "FORE 11 BACK 15"
|
||||
FOREGROUND-COLOR 11 BACKGROUND-COLOR 15.
|
||||
|
||||
03 LINE 14 COLUMN 55 "FORE 12 BACK 4"
|
||||
FOREGROUND-COLOR 12 BACKGROUND-COLOR 4.
|
||||
03 LINE 15 COLUMN 55 "FORE 13 BACK 5"
|
||||
FOREGROUND-COLOR 13 BACKGROUND-COLOR 5.
|
||||
03 LINE 16 COLUMN 55 "FORE 14 BACK 6"
|
||||
FOREGROUND-COLOR 14 BACKGROUND-COLOR 6.
|
||||
03 LINE 17 COLUMN 55 "FORE 15 BACK 7"
|
||||
FOREGROUND-COLOR 15 BACKGROUND-COLOR 7.
|
||||
|
||||
03 LINE 19 COLUMN 76 "U.L. " UNDERLINE
|
||||
FOREGROUND-COLOR 0 BACKGROUND-COLOR 4.
|
||||
03 LINE 20 COLUMN 76 "R.V. " REVERSE-VIDEO
|
||||
FOREGROUND-COLOR 1 BACKGROUND-COLOR 5.
|
||||
03 LINE 21 COLUMN 76 "HIGH " HIGHLIGHT
|
||||
FOREGROUND-COLOR 2 BACKGROUND-COLOR 6.
|
||||
03 LINE 22 COLUMN 76 "HI RV"
|
||||
HIGHLIGHT REVERSE-VIDEO
|
||||
FOREGROUND-COLOR 3 BACKGROUND-COLOR 7.
|
||||
|
||||
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
MAIN.
|
||||
PERFORM INITIAL-SCREEN.
|
||||
PERFORM ERASE-TEST.
|
||||
PERFORM POSITION-TEST.
|
||||
PERFORM TERMINATOR-TEST.
|
||||
PERFORM EDIT-TEST.
|
||||
PERFORM ALARM-TEST.
|
||||
PERFORM BLINK-TEST.
|
||||
PERFORM BLANK-LINE-TEST.
|
||||
PERFORM COLOR-TEST.
|
||||
|
||||
DISPLAY (22, 1) "END OF TESTS.".
|
||||
DISPLAY " ".
|
||||
|
||||
STOP RUN.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
INITIAL-SCREEN.
|
||||
DISPLAY (1, 1) ERASE.
|
||||
DISPLAY "1. THIS PROGRAM TESTS THE CRT DRIVER.".
|
||||
DISPLAY "2. IF YOUR TERMINAL HAS THE ABILITY TO"
|
||||
DISPLAY "3. TURN THE CURSOR ON AND OFF, THEN"
|
||||
DISPLAY "4. YOU SHOULD SEE THE CURSOR STAY ON"
|
||||
DISPLAY "5. THE SCREEN ONLY WHEN ASKED TO ENTER"
|
||||
DISPLAY "6. DATA."
|
||||
DISPLAY "7.".
|
||||
DISPLAY "8. A 24 BY 80 DISPLAY IS ASSUMED.".
|
||||
DISPLAY "9.".
|
||||
|
||||
|
||||
|
||||
ERASE-TEST.
|
||||
DISPLAY "10. *****************************************".
|
||||
DISPLAY "11.".
|
||||
DISPLAY "12. CURSOR POSITION AND ERASE TEST.".
|
||||
DISPLAY "13. FIRST, LINES 12-24 OF THE".
|
||||
DISPLAY "14. SCREEN SHOULD BE ERASED. THEN"
|
||||
DISPLAY "15. THE CURSOR SHOULD HOME (TO THE"
|
||||
DISPLAY "16. TOP LEFT CORNER) AND THE FULL"
|
||||
DISPLAY "17. SCREEN SHOULD BE ERASED."
|
||||
|
||||
DISPLAY "18.".
|
||||
DISPLAY "19. TYPE ANY CHARACTER TO CONTINUE.".
|
||||
ACCEPT (, ) WAIT-CHAR WITH AUTO-SKIP.
|
||||
MOVE 12 TO LIN.
|
||||
MOVE 1 TO COL.
|
||||
DISPLAY (LIN, COL) ERASE.
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
MOVE 1 TO LIN.
|
||||
DISPLAY (LIN, COL) ERASE.
|
||||
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
|
||||
|
||||
|
||||
|
||||
POSITION-TEST.
|
||||
DISPLAY ( 1, 1) ERASE.
|
||||
DISPLAY ( 1, 1) "GENERAL CURSOR POSITION TEST.".
|
||||
DISPLAY ( 2, 1) "THIS TEST DISPLAYS TEXT IN THE"
|
||||
DISPLAY ( 3, 1) "POSITIONS DESCRIBED BY THE"
|
||||
DISPLAY ( 4, 1) "TEXT ITSELF."
|
||||
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
|
||||
MOVE 1 TO LIN.
|
||||
DISPLAY (LIN, 1) ERASE.
|
||||
DISPLAY (LIN, 1) "TOP LEFT CORNER".
|
||||
DISPLAY (24, 61) "BOTTOM RIGHT CORNER".
|
||||
DISPLAY ( 1, 65) "TOP RIGHT CORNER".
|
||||
DISPLAY (24, 1) "BOTTOM LEFT CORNER".
|
||||
MOVE 28 TO COL.
|
||||
DISPLAY (12, COL + 2) "CENTER (MORE OR LESS)".
|
||||
DISPLAY (LIN, 35) "TOP CENTER".
|
||||
DISPLAY (24, 34) "BOTTOM CENTER".
|
||||
DISPLAY (12, 1) "LEFT CENTER".
|
||||
MOVE 10 TO LIN.
|
||||
MOVE 70 TO COL.
|
||||
DISPLAY (LIN + 2, COL - 1) "RIGHT CENTER".
|
||||
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
|
||||
|
||||
|
||||
|
||||
TERMINATOR-TEST.
|
||||
DISPLAY (1, 1) ERASE
|
||||
"TERMINATOR KEY TEST.".
|
||||
|
||||
DISPLAY (3, 1) "THIS TESTS WHETHER THE TERMINATOR "
|
||||
"AND FUNCTION KEYS ARE RECOGNIZED CORRECTLY.".
|
||||
|
||||
DISPLAY (5, 1) "EACH TIME THE PROMPT IS GIVEN, ENTER "
|
||||
"ONE OF THE TERMINATOR OR FUNCTION KEYS".
|
||||
DISPLAY (6, 5) "SUCH AS RETURN, TAB, ESC, OR BACK TAB,".
|
||||
DISPLAY (7, 5) "DESCRIBED IN THE MS-COBOL USERS' GUIDE.".
|
||||
DISPLAY (8, 1) "THIS PROGRAM WILL RESPOND WITH THE "
|
||||
"ESCAPE CODE FOR THAT KEY.".
|
||||
|
||||
DISPLAY (10, 1) "THE TEST WILL TERMINATE WHEN YOU ENTER "
|
||||
"ANY NON-SPACE KEY BEFORE THE TERMINATOR.".
|
||||
|
||||
MOVE SPACE TO IN-CHAR.
|
||||
PERFORM GET-TERMINATOR
|
||||
UNTIL IN-CHAR NOT = SPACE.
|
||||
|
||||
GET-TERMINATOR.
|
||||
DISPLAY (13, 1) ERASE.
|
||||
DISPLAY (12, 1) "ENTER TERMINATOR KEY: ".
|
||||
ACCEPT (, ) IN-CHAR WITH PROMPT.
|
||||
ACCEPT ESC-CODE FROM ESCAPE KEY.
|
||||
DISPLAY (13, 1) "ESCAPE CODE IS " ESC-CODE.
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
EDIT-TEST.
|
||||
DISPLAY (1, 1) ERASE
|
||||
"EDIT KEY TEST.".
|
||||
|
||||
DISPLAY (3, 1) "THE FOLLOWING ABBREVIATIONS ARE USED "
|
||||
"TO REPRESENT THE EDITING KEYS:".
|
||||
DISPLAY (5, 10) "[LD] = LINE (FIELD) DELETE KEY"
|
||||
(6, 10) "[CD] = CHARACTER DELETE KEY"
|
||||
(7, 10) "[BS] = BACKSPACE KEY"
|
||||
(8, 10) "[FS] = FORWARD SPACE KEY".
|
||||
|
||||
DISPLAY (10, 1) "THE MS-COBOL USERS' GUIDE DESCRIBES "
|
||||
"WHICH TERMINAL KEYS PERFORM ".
|
||||
DISPLAY (11, 1) "THESE EDITING FUNCTIONS.".
|
||||
MOVE SPACE TO IN-CHAR.
|
||||
PERFORM GET-EDIT-FIELD
|
||||
UNTIL IN-CHAR NOT = SPACE.
|
||||
|
||||
GET-EDIT-FIELD.
|
||||
|
||||
DISPLAY (13, 1) ERASE
|
||||
"ENTER ABCDE[LD]+-XXX[CD]"
|
||||
"[BS][BS]W[FS]YZ ".
|
||||
|
||||
MOVE SPACES TO IN-FIELD.
|
||||
ACCEPT (, ) IN-FIELD.
|
||||
IF IN-FIELD NOT = "+-WXYZ"
|
||||
DISPLAY (15, 1) "*** RESULT WAS " IN-FIELD
|
||||
DISPLAY (16, 1) "SHOULD HAVE BEEN +-WXYZ"
|
||||
ELSE DISPLAY (15, 1) "RESULT WAS CORRECT.".
|
||||
|
||||
DISPLAY (18, 1) "THIS TEST WILL TERMINATE WHEN YOU ENTER "
|
||||
"ANY NON-SPACE KEY HERE.".
|
||||
|
||||
ACCEPT (, ) IN-CHAR WITH PROMPT.
|
||||
IF IN-CHAR NOT = SPACE
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
|
||||
|
||||
|
||||
ALARM-TEST.
|
||||
DISPLAY (1, 1) ERASE "ALARM ($ALARM) TEST.".
|
||||
|
||||
DISPLAY (3, 1) "THE AUDIBLE TONE SHOULD SOUND "
|
||||
"WHEN THIS MESSAGE IS PRINTED.".
|
||||
|
||||
DISPLAY (5, 1) "TYPE ANY CHARACTER TO CONTINUE.".
|
||||
|
||||
ACCEPT (, ) WAIT-CHAR WITH AUTO-SKIP BEEP.
|
||||
|
||||
|
||||
|
||||
|
||||
BLINK-TEST.
|
||||
DISPLAY BLINK-SCREEN.
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BLANK-LINE-TEST.
|
||||
DISPLAY (1, 1) ERASE "BLANK LINE ($EOL) TEST.".
|
||||
|
||||
DISPLAY (3, 1) "LINES 10-14 WILL BE FILLED WITH X.".
|
||||
DISPLAY (4, 1) "THEN LINES 11-13 SHOULD BE BLANKED "
|
||||
"FOLLOWING THE 'B' CHARACTER.".
|
||||
|
||||
DISPLAY BLANK-LINE-SCREEN.
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
|
||||
|
||||
COLOR-TEST.
|
||||
DISPLAY (1, 1) ERASE "COLOR TEST.".
|
||||
|
||||
DISPLAY (3, 1) "THESE TESTS WILL DISPLAY TEXT WITH A".
|
||||
DISPLAY (4, 1) "VARIETY OF FOREGROUND AND BACKGROUND".
|
||||
DISPLAY (5, 1) "COLORS. THE INTEGERS USED TO PRODUCE".
|
||||
DISPLAY (6, 1) "THE COLORS ARE INDICATED BY THE TEXT.".
|
||||
DISPLAY (8, 1) "IF YOUR TERMINAL IS CONFIGURED WITHOUT".
|
||||
DISPLAY (9, 1) "COLOR SUPPORT, THE COLOR INFORMATION IS".
|
||||
DISPLAY (10, 1) "IGNORED, AND TEXT WILL APPEAR IN A".
|
||||
DISPLAY (11, 1) "SINGLE COLOR.".
|
||||
DISPLAY (13, 1) "IF YOU DO NOT WISH TO RUN THESE TESTS,".
|
||||
DISPLAY (14, 1) 'REPLY "N" OR "n" BELOW. ANY OTHER '.
|
||||
DISPLAY (15, 1) "RESPONSES WILL RUN THE TESTS.".
|
||||
|
||||
DISPLAY (17, 1)
|
||||
"DO YOU WISH TO RUN THE COLOR TESTS? (Y/N): ".
|
||||
ACCEPT (, ) COLOR-CHAR WITH AUTO-SKIP.
|
||||
IF NOT NO-COLOR
|
||||
PERFORM RUN-COLOR-TESTS.
|
||||
|
||||
|
||||
RUN-COLOR-TESTS.
|
||||
DISPLAY DEFAULT-SCREEN.
|
||||
DISPLAY " DEFAULT SCREEN COLORS ARE NOW: ".
|
||||
DISPLAY " FOREGROUND 7 BACKGROUND 0 (NORMAL SCREEN)".
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
DISPLAY DEFAULT-SCREEN.
|
||||
DISPLAY COLOR-SCREEN.
|
||||
PERFORM WAIT-FOR-NEXT-SCREEN.
|
||||
|
||||
DISPLAY REVERSE-SCREEN.
|
||||
DISPLAY " DEFAULT SCREEN COLORS ARE NOW: ".
|
||||
DISPLAY " FOREGROUND 0 BACKGROUND 7 (REVERSE VIDEO)".
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
DISPLAY REVERSE-SCREEN.
|
||||
DISPLAY COLOR-SCREEN.
|
||||
PERFORM WAIT-FOR-NEXT-SCREEN.
|
||||
|
||||
DISPLAY NEW-COLOR-SCREEN.
|
||||
DISPLAY " DEFAULT SCREEN COLORS ARE NOW: ".
|
||||
DISPLAY " FOREGROUND 2 BACKGROUND 1 ".
|
||||
PERFORM WAIT-FOR-INPUT.
|
||||
DISPLAY NEW-COLOR-SCREEN.
|
||||
DISPLAY COLOR-SCREEN.
|
||||
PERFORM WAIT-FOR-NEXT-SCREEN.
|
||||
DISPLAY DEFAULT-SCREEN.
|
||||
|
||||
|
||||
WAIT-FOR-INPUT.
|
||||
DISPLAY " ".
|
||||
DISPLAY " ".
|
||||
DISPLAY "TYPE ANY CHARACTER TO CONTINUE.".
|
||||
ACCEPT (, ) WAIT-CHAR WITH AUTO-SKIP.
|
||||
|
||||
WAIT-FOR-NEXT-SCREEN.
|
||||
DISPLAY (24, 1 ) "TYPE ANY CHARACTER TO CONTINUE.".
|
||||
ACCEPT (, ) WAIT-CHAR WITH AUTO-SKIP.
|
||||
|
BIN
Microsoft COBOL v21/DEBUG.LIB
Normal file
BIN
Microsoft COBOL v21/DEBUG.LIB
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/DEBUG.OBJ
Normal file
BIN
Microsoft COBOL v21/DEBUG.OBJ
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/DEBUGCOB.EXE
Normal file
BIN
Microsoft COBOL v21/DEBUGCOB.EXE
Normal file
Binary file not shown.
665
Microsoft COBOL v21/DEMO.COB
Normal file
665
Microsoft COBOL v21/DEMO.COB
Normal file
@ -0,0 +1,665 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. DEMO.
|
||||
SECURITY.
|
||||
THIS PROGRAM TESTS SCREEN DISPLAY AND ACCEPT. A SERIES OF
|
||||
SCREENS ARE DISPLAYED, AND ACCEPTED. THE USER SHOULD ENTER
|
||||
VALUES INTO THE FIELDS TO TEST THE FEATURES INDICATED
|
||||
IN THE HEADINGS.
|
||||
*
|
||||
ENVIRONMENT DIVISION.
|
||||
|
||||
DATA DIVISION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
|
||||
01 SCREEN-ACCEPT-FIELDS.
|
||||
05 ANY-CHAR-1 PIC X(13) VALUE SPACES.
|
||||
05 INTEGER-1 PIC S9(6) VALUE ZERO.
|
||||
05 TWO-PLACE-NUM-1 PIC S9(4)V99 VALUE ZERO.
|
||||
05 FIVE-PLACE-NUM-1 PIC SV9(5) VALUE ZERO.
|
||||
|
||||
05 ANY-CHAR-2 PIC X(13) VALUE "ABCDEFGHIJKLM".
|
||||
05 INTEGER-2 PIC S9(6) VALUE 1234.
|
||||
05 TWO-PLACE-NUM-2 PIC S9(4)V99 VALUE 1234.56.
|
||||
05 FIVE-PLACE-NUM-2 PIC SV9(5) VALUE .12345.
|
||||
|
||||
05 ANY-CHAR-3 PIC X(13) VALUE "ABCDEFGHIJKLM".
|
||||
05 INTEGER-3 PIC S9(6) VALUE 1234.
|
||||
05 TWO-PLACE-NUM-3 PIC S9(4)V99 VALUE 1234.56.
|
||||
05 FIVE-PLACE-NUM-3 PIC SV9(5) VALUE .12345.
|
||||
|
||||
05 ANY-CHAR-4 PIC X(13) VALUE "ABCDEFGHIJKLM".
|
||||
05 INTEGER-4 PIC S9(6) VALUE 1234.
|
||||
05 TWO-PLACE-NUM-4 PIC S9(4)V99 VALUE 1234.56.
|
||||
05 FIVE-PLACE-NUM-4 PIC SV9(5) VALUE .12345.
|
||||
|
||||
05 ANY-CHAR-5 PIC X(13) VALUE "ABCDEFGHIJKLM".
|
||||
05 INTEGER-5 PIC S9(6) VALUE 1234.
|
||||
05 TWO-PLACE-NUM-5 PIC S9(4)V99 VALUE 1234.56.
|
||||
05 FIVE-PLACE-NUM-5 PIC SV9(5) VALUE .12345.
|
||||
|
||||
05 ANY-CHAR-6 PIC X(13) VALUE "ABCDEFGHIJKLM".
|
||||
05 INTEGER-6 PIC S9(6) VALUE 1234.
|
||||
05 TWO-PLACE-NUM-6 PIC S9(4)V99 VALUE 1234.56.
|
||||
05 FIVE-PLACE-NUM-6 PIC SV9(5) VALUE .12345.
|
||||
|
||||
05 ANY-CHAR-7 PIC X(13) VALUE "ABCDEFGHIJKLM".
|
||||
05 INTEGER-7 PIC S9(6) VALUE 1234.
|
||||
05 TWO-PLACE-NUM-7 PIC S9(4)V99 VALUE 1234.56.
|
||||
05 FIVE-PLACE-NUM-7 PIC SV9(5) VALUE .12345.
|
||||
|
||||
|
||||
01 WORK-FIELDS.
|
||||
05 IIX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 JIX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 KIX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 WS-TITLE-LEN PIC S9(5) VALUE 0 COMP-0.
|
||||
05 WS-START PIC S9(5) VALUE 0 COMP-0.
|
||||
05 WS-END PIC S9(5) VALUE 0 COMP-0.
|
||||
|
||||
05 TEN-SPACES PIC X(10) VALUE SPACES.
|
||||
05 ANY-CHAR PIC X VALUE SPACE.
|
||||
05 WS-OPTION PIC X VALUE SPACE.
|
||||
88 SCREEN-OPTION VALUE 'S', 's'.
|
||||
88 CREATE-OPTION VALUE 'C', 'c'.
|
||||
88 UPDATE-OPTION VALUE 'U', 'u'.
|
||||
88 END-OPTION VALUE 'E', 'e'.
|
||||
|
||||
01 WS-WK-TITLE PIC X(50) VALUE ALL 'X'.
|
||||
01 FILLER REDEFINES WS-WK-TITLE.
|
||||
05 WS-WK-TITLE-CHAR OCCURS 50 TIMES PIC X.
|
||||
|
||||
01 WS-TITLE PIC X(50) VALUE SPACES.
|
||||
01 FILLER REDEFINES WS-TITLE.
|
||||
05 WS-TITLE-CHAR OCCURS 50 TIMES PIC X.
|
||||
|
||||
01 SWITCHES.
|
||||
05 ON-VALUE PIC X VALUE 'Y'.
|
||||
05 OFF-VALUE PIC X VALUE 'N'.
|
||||
05 DEMO-FINISHED-SW PIC X VALUE 'N'.
|
||||
88 DEMO-FINISHED VALUE 'Y'.
|
||||
|
||||
|
||||
SCREEN SECTION.
|
||||
|
||||
01 BLANK-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
|
||||
01 TUTOR-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 10 VALUE
|
||||
' DEMO - MICROSOFT MS-COBOL DEMONSTRATION SYSTEM'.
|
||||
03 LINE 3 COLUMN 1 VALUE
|
||||
'In this program, you will be given the options to see
|
||||
- 'how Microsoft MS-COBOL '.
|
||||
03 LINE 4 COLUMN 1 VALUE
|
||||
'uses its Screen Section to create fill-in forms on you
|
||||
- 'r terminal screen'.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'or to create, list, and update a simple indexed file d
|
||||
- 'ata base.'.
|
||||
03 LINE 8 COLUMN 1 BLANK LINE.
|
||||
03 LINE 9 COLUMN 1 VALUE
|
||||
'You will first be asked to type in a title, made up of
|
||||
- ' any characters'.
|
||||
03 LINE 10 COLUMN 1 VALUE
|
||||
'you like, that will be used in later screens. The prog
|
||||
- 'ram will center'.
|
||||
03 LINE 11 COLUMN 1 VALUE
|
||||
'the title for you. Next you will be asked to hit ENTER
|
||||
- ' to get the'.
|
||||
03 LINE 12 COLUMN 1 VALUE
|
||||
'next screen. The title you entered will appear, along w
|
||||
- 'ith a list'.
|
||||
03 LINE 13 COLUMN 1 VALUE
|
||||
'of options, and you will be given further instructions
|
||||
- '. '.
|
||||
03 LINE 15 COLUMN 1 VALUE
|
||||
'Ready?'.
|
||||
03 LINE 17 COLUMN 1 VALUE
|
||||
'Please type a title from 1 to 50 characters below, then
|
||||
- ' hit ENTER:'.
|
||||
03 LINE 19 COLUMN 1 HIGHLIGHT VALUE 'Title: '.
|
||||
03 PIC X(50) TO WS-WK-TITLE.
|
||||
03 LINE 21 COLUMN 1 HIGHLIGHT VALUE
|
||||
'Please hit ENTER to continue. '.
|
||||
03 COLUMN PLUS 1 PIC X TO ANY-CHAR.
|
||||
|
||||
01 OPTION-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 19 VALUE
|
||||
' OPTIONS FOR MS-COBOL DEMONSTATION PROGRAM'.
|
||||
03 LINE 3 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'You may now run programs that demonstrate features of
|
||||
- 'MS-COBOL. Among'.
|
||||
03 LINE 6 COLUMN 1 VALUE
|
||||
'these features are:'.
|
||||
03 LINE 7 COLUMN 15 VALUE
|
||||
'Screen Section for generating screens'.
|
||||
03 LINE 8 COLUMN 15 VALUE
|
||||
'Automatic generation of program overlays'.
|
||||
03 LINE 9 COLUMN 15 VALUE
|
||||
"CALLing of subroutines".
|
||||
03 LINE 10 COLUMN 15 VALUE
|
||||
"CHAINing to another program without returning".
|
||||
03 LINE 11 COLUMN 15 VALUE
|
||||
'Creation of an indexed (ISAM) data file.'.
|
||||
03 LINE 12 COLUMN 15 VALUE
|
||||
'Display, addition, deletion and modification of record
|
||||
- 's in the'.
|
||||
03 LINE 13 COLUMN 20 VALUE
|
||||
'ISAM file.'.
|
||||
03 LINE 14 COLUMN 1 VALUE
|
||||
'Please select one of the following options by entering
|
||||
- ' the first letter '.
|
||||
03 LINE 15 COLUMN 1 VALUE
|
||||
'of the option in the space below. Choose option E to e
|
||||
- 'nd this demonstration '.
|
||||
03 LINE 17 COLUMN 5 VALUE
|
||||
'Option S: Screen section demonstration'.
|
||||
03 LINE 18 COLUMN 5 VALUE
|
||||
'Option C: Create an indexed-file data base'.
|
||||
03 LINE 19 COLUMN 5 VALUE
|
||||
'Option U: Update or display indexed-file data base.'.
|
||||
03 LINE 20 COLUMN 5 VALUE
|
||||
'Option E: End the demonstration.'.
|
||||
03 LINE 22 COLUMN 10 HIGHLIGHT VALUE
|
||||
'Enter option here followed by ENTER: '.
|
||||
03 COLUMN PLUS 1 PIC X TO WS-OPTION.
|
||||
|
||||
|
||||
|
||||
|
||||
01 SCREEN-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 17 VALUE
|
||||
'MS-COBOL INTERACTIVE DISPLAY/ACCEPT DEMONSTRATION'.
|
||||
03 LINE 3 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'In this program, several screens are displayed, then a
|
||||
- 'ccepted. As a screen '.
|
||||
03 LINE 6 COLUMN 1 VALUE
|
||||
'is displayed, enter new values into its fields, and se
|
||||
- 'e how screens '.
|
||||
03 LINE 7 COLUMN 1 VALUE
|
||||
'function under different options, such as:'.
|
||||
03 LINE 9 COLUMN 10 VALUE
|
||||
'UPDATE (with the USING, TO, and FROM options)'.
|
||||
03 LINE 10 COLUMN 10 VALUE
|
||||
'AUTO-SKIP'.
|
||||
03 LINE 11 COLUMN 10 VALUE
|
||||
'SECURE'.
|
||||
03 LINE 16 COLUMN 1 HIGHLIGHT VALUE
|
||||
'Hit ENTER to continue. '.
|
||||
03 COLUMN PLUS 1 PIC X TO ANY-CHAR.
|
||||
|
||||
01 SCREEN-SCREEN-2.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 17 VALUE
|
||||
'MS-COBOL INTERACTIVE DISPLAY/ACCEPT DEMONSTRATION'.
|
||||
03 LINE 2 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
03 LINE 4 COLUMN 1 VALUE
|
||||
'Note that when fields are defined as numeric, i.e, whe
|
||||
- 'n the PIC clause '.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'contains "9"s, the cursor starts at the right end of t
|
||||
- 'he field, and '.
|
||||
03 LINE 6 COLUMN 1 VALUE
|
||||
'when a digit is typed, any previous value is cleared.
|
||||
- ' '.
|
||||
03 LINE 8 COLUMN 1 VALUE
|
||||
'If a numeric field contains a decimal point, you may h
|
||||
- 'ave to type a'.
|
||||
03 LINE 9 COLUMN 1 VALUE
|
||||
'period (".") to get to the right of the decimal point.
|
||||
- ''.
|
||||
03 LINE 10 COLUMN 1 BLANK LINE.
|
||||
03 LINE 11 COLUMN 1 VALUE
|
||||
'When a field is defined as alpha-numeric, i.e., when t
|
||||
- 'he PIC clause'.
|
||||
03 LINE 12 COLUMN 1 VALUE
|
||||
'contains "X"s, the cursor starts on the left and chara
|
||||
- 'cters in the field'.
|
||||
03 LINE 13 COLUMN 1 VALUE
|
||||
'may be edited with cursor positioning keys.'.
|
||||
03 LINE 14 COLUMN 1 BLANK LINE.
|
||||
03 LINE 15 COLUMN 1 VALUE
|
||||
'The following screens will include information on how'.
|
||||
03 LINE 16 COLUMN 1 VALUE
|
||||
'to ACCEPT a field or an entire screen, how to back up
|
||||
- 'to earlier'.
|
||||
03 LINE 17 COLUMN 1 VALUE
|
||||
'fields in a screen, and how to modify values entered i
|
||||
- 'nto a field.'.
|
||||
03 LINE 22 COLUMN 1 HIGHLIGHT VALUE
|
||||
'Please hit ENTER to continue. '.
|
||||
03 COLUMN PLUS 1 PIC X TO ANY-CHAR.
|
||||
|
||||
01 HINT-SCREEN.
|
||||
03 LINE 19 COLUMN 1 VALUE
|
||||
'Helpful hints: '.
|
||||
03 LINE 20 COLUMN 1 VALUE
|
||||
' ENTER or TAB will accept a field and go to next fi
|
||||
- 'eld.'.
|
||||
03 LINE 21 COLUMN 1 VALUE
|
||||
' <ESCAPE> accepts all fields on a screen.'.
|
||||
03 LINE 22 COLUMN 1 VALUE
|
||||
' <BACK TAB> returns to a previous field.'.
|
||||
03 LINE 23 COLUMN 1 VALUE
|
||||
' Edit alpha-numeric fields with the cursor position
|
||||
- ' keys.'.
|
||||
03 LINE 24 COLUMN 1 VALUE
|
||||
' Alarm will sound when what you type is not what is
|
||||
- ' expected.'.
|
||||
|
||||
01 NORMAL-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 20 VALUE
|
||||
"ACCEPT SCREEN WITHOUT AUTO SKIP OR SECURE".
|
||||
03 LINE 3 COLUMN 10 VALUE
|
||||
"* Enter values into the fields below. Note that you mu
|
||||
- "st hit TAB or".
|
||||
03 LINE 4 COLUMN 14 VALUE
|
||||
"RETURN to go from one field to the next.".
|
||||
03 LINE 5 COLUMN 10 VALUE
|
||||
"* You must type a period to get past the decimal point
|
||||
- " in the third".
|
||||
03 LINE 6 COLUMN 14 VALUE
|
||||
"field in each line. Hit BACK TAB to return to the prev
|
||||
- "ious field.".
|
||||
03 LINE 7 COLUMN 10 VALUE
|
||||
'* Fields described as "NUMBER" can only contain digits
|
||||
- ', signs, '.
|
||||
03 LINE 8 COLUMN 14 VALUE
|
||||
'and a decimal point.'.
|
||||
|
||||
03 NS-LINE-10.
|
||||
05 LINE 10.
|
||||
05 COLUMN 1 VALUE
|
||||
"FEATURE DEMONSTRATED".
|
||||
05 COLUMN 23 VALUE
|
||||
"ANY CHARACTER".
|
||||
05 COLUMN 39 VALUE
|
||||
"NUMBER".
|
||||
05 COLUMN 49 VALUE
|
||||
"NUMBER".
|
||||
05 COLUMN 58 VALUE
|
||||
"NUMBER".
|
||||
|
||||
03 NS-LINE-12.
|
||||
05 LINE 12.
|
||||
05 COLUMN 1 VALUE
|
||||
"NO ORIGINAL VALUE".
|
||||
05 COLUMN 23 PIC X(13) TO ANY-CHAR-1.
|
||||
05 COLUMN 39 PIC S9(6) TO INTEGER-1.
|
||||
05 COLUMN 49 PIC S9(4)V99 TO TWO-PLACE-NUM-1.
|
||||
05 COLUMN 58 PIC SV9(5) TO FIVE-PLACE-NUM-1.
|
||||
|
||||
03 NS-LINE-13.
|
||||
05 LINE 13.
|
||||
05 COLUMN 1 VALUE
|
||||
"UPDATE VALUES".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-2.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-2.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-2.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-2.
|
||||
|
||||
03 NS-LINE-14.
|
||||
05 LINE 14.
|
||||
05 COLUMN 1 VALUE
|
||||
"HIGHLIGHT,REV-VIDEO".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-3 HIGHLIGHT.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-3 HIGHLIGHT.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-3
|
||||
REVERSE-VIDEO.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-3
|
||||
REVERSE-VIDEO.
|
||||
|
||||
03 NS-LINE-15.
|
||||
05 LINE 15.
|
||||
05 COLUMN 1 VALUE
|
||||
"UNDERLINE-BLINK".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-4
|
||||
UNDERLINE.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-4
|
||||
UNDERLINE.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-4
|
||||
BLINK.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-4
|
||||
BLINK.
|
||||
03 NS-LINE-16.
|
||||
05 LINE 16.
|
||||
05 COLUMN 1 VALUE
|
||||
"AUTO-SECURE".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-5
|
||||
AUTO.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-5
|
||||
AUTO.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-5
|
||||
SECURE.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-5
|
||||
SECURE.
|
||||
|
||||
03 NS-LINE-17.
|
||||
05 LINE 17.
|
||||
05 COLUMN 1 VALUE
|
||||
"BELL + OTHERS".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-6
|
||||
HIGHLIGHT BELL.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-6
|
||||
REVERSE-VIDEO BELL.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-6
|
||||
UNDERLINE BELL.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-6
|
||||
BLINK BELL.
|
||||
|
||||
01 AUTO-SKIP-SCREEN AUTO.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 28 VALUE
|
||||
"ACCEPT SCREEN WITH AUTO-SKIP".
|
||||
03 LINE 3 COLUMN 10 VALUE
|
||||
"* Enter values into the fields below. Note that when a
|
||||
- " field is filled,".
|
||||
03 LINE 4 COLUMN 14 VALUE
|
||||
"the cursor will go to the next field without having
|
||||
- "to hit RETURN.".
|
||||
03 LINE 5 COLUMN 10 VALUE
|
||||
"* You may still use RETURN and TAB to advance to the n
|
||||
- "ext field,".
|
||||
03 LINE 6 COLUMN 14 VALUE
|
||||
"and use BACK TAB to return to a previous field.".
|
||||
03 LINE 7 COLUMN 10 VALUE
|
||||
'* Fields described as "NUMBER" can only contain digits
|
||||
- ', signs, '.
|
||||
03 LINE 8 COLUMN 14 VALUE
|
||||
'and a decimal point.'.
|
||||
|
||||
|
||||
03 AS-LINE-10.
|
||||
05 LINE 10.
|
||||
05 COLUMN 1 VALUE
|
||||
"FEATURE DEMONSTRATED".
|
||||
05 COLUMN 23 VALUE
|
||||
"ANY CHARACTER".
|
||||
05 COLUMN 39 VALUE
|
||||
"NUMBER".
|
||||
05 COLUMN 49 VALUE
|
||||
"NUMBER".
|
||||
05 COLUMN 58 VALUE
|
||||
"NUMBER".
|
||||
|
||||
03 AS-LINE-12.
|
||||
05 LINE 12.
|
||||
05 COLUMN 1 VALUE
|
||||
"NO ORIGINAL VALUE".
|
||||
05 COLUMN 23 PIC X(13) TO ANY-CHAR-1.
|
||||
05 COLUMN 39 PIC S9(6) TO INTEGER-1.
|
||||
05 COLUMN 49 PIC S9(4)V99 TO TWO-PLACE-NUM-1.
|
||||
05 COLUMN 58 PIC SV9(5) TO FIVE-PLACE-NUM-1.
|
||||
|
||||
03 AS-LINE-13.
|
||||
05 LINE 13.
|
||||
05 COLUMN 1 VALUE
|
||||
"UPDATE VALUES".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-2.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-2.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-2.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-2.
|
||||
|
||||
03 AS-LINE-14.
|
||||
05 LINE 14.
|
||||
05 COLUMN 1 VALUE
|
||||
"HIGHLIGHT,REV-VIDEO".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-3 HIGHLIGHT.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-3 HIGHLIGHT.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-3
|
||||
REVERSE-VIDEO.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-3
|
||||
REVERSE-VIDEO.
|
||||
|
||||
03 AS-LINE-15.
|
||||
05 LINE 15.
|
||||
05 COLUMN 1 VALUE
|
||||
"UNDERLINE-BLINK".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-4
|
||||
UNDERLINE.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-4
|
||||
UNDERLINE.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-4
|
||||
BLINK.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-4
|
||||
BLINK.
|
||||
03 AS-LINE-16.
|
||||
05 LINE 16.
|
||||
05 COLUMN 1 VALUE
|
||||
"SECURE".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-5
|
||||
SECURE.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-5
|
||||
SECURE.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-5
|
||||
SECURE.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-5
|
||||
SECURE.
|
||||
|
||||
03 AS-LINE-17.
|
||||
05 LINE 17.
|
||||
05 COLUMN 1 VALUE
|
||||
"BELL + OTHERS".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-6
|
||||
HIGHLIGHT BELL.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-6
|
||||
REVERSE-VIDEO BELL.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-6
|
||||
UNDERLINE BELL.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-6
|
||||
BLINK BELL.
|
||||
|
||||
|
||||
01 SECURE-SCREEN SECURE.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 28 VALUE
|
||||
"ACCEPT SCREEN WITH SECURE".
|
||||
03 LINE 3 COLUMN 10 VALUE
|
||||
"* Enter values into the fields below. Note that when a
|
||||
- " field is typed,".
|
||||
03 LINE 4 COLUMN 14 VALUE
|
||||
"it is turned into asterisks, which will hide the val
|
||||
- "ue entered.".
|
||||
03 LINE 5 COLUMN 10 VALUE
|
||||
"* You may still use RETURN and TAB to advance to the n
|
||||
- "ext field,".
|
||||
03 LINE 6 COLUMN 14 VALUE
|
||||
"and use BACK TAB to return to a previous field.".
|
||||
03 LINE 7 COLUMN 10 VALUE
|
||||
'* Fields described as "NUMBER" can only contain digits
|
||||
- ', signs, '.
|
||||
03 LINE 8 COLUMN 14 VALUE
|
||||
'and a decimal point.'.
|
||||
|
||||
|
||||
03 SS-LINE-10.
|
||||
05 LINE 10.
|
||||
05 COLUMN 1 VALUE
|
||||
"FEATURE DEMONSTRATED".
|
||||
05 COLUMN 23 VALUE
|
||||
"ANY CHARACTER".
|
||||
05 COLUMN 39 VALUE
|
||||
"NUMBER".
|
||||
05 COLUMN 49 VALUE
|
||||
"NUMBER".
|
||||
05 COLUMN 58 VALUE
|
||||
"NUMBER".
|
||||
|
||||
03 SS-LINE-12.
|
||||
05 LINE 12.
|
||||
05 COLUMN 1 VALUE
|
||||
"NO ORIGINAL VALUE".
|
||||
05 COLUMN 23 PIC X(13) TO ANY-CHAR-1.
|
||||
05 COLUMN 39 PIC S9(6) TO INTEGER-1.
|
||||
05 COLUMN 49 PIC S9(4)V99 TO TWO-PLACE-NUM-1.
|
||||
05 COLUMN 58 PIC SV9(5) TO FIVE-PLACE-NUM-1.
|
||||
|
||||
03 SS-LINE-13.
|
||||
05 LINE 13.
|
||||
05 COLUMN 1 VALUE
|
||||
"UPDATE VALUES".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-2.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-2.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-2.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-2.
|
||||
|
||||
03 SS-LINE-14.
|
||||
05 LINE 14.
|
||||
05 COLUMN 1 VALUE
|
||||
"HIGHLIGHT,REV-VIDEO".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-3 HIGHLIGHT.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-3 HIGHLIGHT.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-3
|
||||
REVERSE-VIDEO.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-3
|
||||
REVERSE-VIDEO.
|
||||
|
||||
03 SS-LINE-15.
|
||||
05 LINE 15.
|
||||
05 COLUMN 1 VALUE
|
||||
"UNDERLINE-BLINK".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-4
|
||||
UNDERLINE.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-4
|
||||
UNDERLINE.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-4
|
||||
BLINK.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-4
|
||||
BLINK.
|
||||
03 SS-LINE-16.
|
||||
05 LINE 16.
|
||||
05 COLUMN 1 VALUE
|
||||
"AUTO-SKIP".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-5
|
||||
AUTO.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-5
|
||||
AUTO.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-5
|
||||
AUTO.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-5
|
||||
AUTO.
|
||||
|
||||
03 SS-LINE-17.
|
||||
05 LINE 17.
|
||||
05 COLUMN 1 VALUE
|
||||
"BELL + OTHERS".
|
||||
05 COLUMN 23 PIC X(13) USING ANY-CHAR-6
|
||||
HIGHLIGHT BELL.
|
||||
05 COLUMN 39 PIC S9(6) USING INTEGER-6
|
||||
REVERSE-VIDEO BELL.
|
||||
05 COLUMN 49 PIC S9(4)V99 USING TWO-PLACE-NUM-6
|
||||
UNDERLINE BELL.
|
||||
05 COLUMN 58 PIC SV9(5) USING FIVE-PLACE-NUM-6
|
||||
BLINK BELL.
|
||||
|
||||
|
||||
01 FINAL-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 21 VALUE
|
||||
' END OF MICROSOFT MS-COBOL DEMONSTRATION'.
|
||||
03 LINE 3 COLUMN 15 PIC X(50) FROM WS-TITLE.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'Thank you for taking part in this demonstration of '.
|
||||
03 LINE 6 COLUMN 1 VALUE
|
||||
'the features of Microsoft MS-COBOL.'.
|
||||
03 LINE 8 COLUMN 1 HIGHLIGHT VALUE
|
||||
'Please hit ENTER to end this program. '.
|
||||
03 COLUMN PLUS 1 PIC X TO ANY-CHAR.
|
||||
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
|
||||
P000-MAIN-LINE.
|
||||
*
|
||||
* *** demo.cpy is a copy file of pre-processing warnings ***
|
||||
* *** It MUST always end with:
|
||||
* PERFORM P005-PROCESS.
|
||||
*
|
||||
COPY demo.cpy.
|
||||
|
||||
STOP RUN.
|
||||
|
||||
|
||||
P005-PROCESS.
|
||||
DISPLAY TUTOR-SCREEN.
|
||||
ACCEPT TUTOR-SCREEN.
|
||||
|
||||
|
||||
|
||||
PERFORM P010-CENTER-TITLE.
|
||||
PERFORM P100-GET-OPTIONS
|
||||
UNTIL DEMO-FINISHED.
|
||||
|
||||
DISPLAY FINAL-SCREEN.
|
||||
ACCEPT FINAL-SCREEN.
|
||||
DISPLAY BLANK-SCREEN.
|
||||
|
||||
P010-CENTER-TITLE.
|
||||
IF WS-WK-TITLE = SPACES
|
||||
MOVE SPACES TO WS-TITLE
|
||||
ELSE
|
||||
PERFORM P020-CENTER.
|
||||
|
||||
P020-CENTER.
|
||||
PERFORM P025-NOTHING VARYING IIX FROM 1 BY 1
|
||||
UNTIL WS-WK-TITLE-CHAR (IIX) NOT = SPACE
|
||||
OR IIX > 50.
|
||||
PERFORM P025-NOTHING VARYING JIX FROM 50 BY -1
|
||||
UNTIL WS-WK-TITLE-CHAR (JIX) NOT = SPACE
|
||||
OR JIX NOT > 1.
|
||||
COMPUTE WS-TITLE-LEN = JIX - IIX + 1.
|
||||
COMPUTE WS-START = 1 + ((50 - WS-TITLE-LEN) / 2).
|
||||
COMPUTE WS-END = WS-TITLE-LEN + WS-START - 1.
|
||||
PERFORM P030-MOVE-TITLE VARYING KIX FROM WS-START
|
||||
BY 1 UNTIL KIX > WS-END.
|
||||
|
||||
P025-NOTHING.
|
||||
EXIT.
|
||||
|
||||
P030-MOVE-TITLE.
|
||||
MOVE WS-WK-TITLE-CHAR (IIX) TO WS-TITLE-CHAR (KIX).
|
||||
ADD 1 TO IIX.
|
||||
|
||||
P100-GET-OPTIONS.
|
||||
MOVE ZERO TO WS-OPTION.
|
||||
DISPLAY OPTION-SCREEN.
|
||||
ACCEPT OPTION-SCREEN.
|
||||
|
||||
IF SCREEN-OPTION
|
||||
PERFORM P500-SCREEN-DEMO
|
||||
ELSE IF CREATE-OPTION
|
||||
PERFORM P200-CREATE-DATA-FILE
|
||||
ELSE IF UPDATE-OPTION
|
||||
PERFORM P300-UPDATE-DATA-FILE
|
||||
ELSE IF END-OPTION
|
||||
MOVE ON-VALUE TO DEMO-FINISHED-SW.
|
||||
|
||||
P200-CREATE-DATA-FILE.
|
||||
CALL "build" USING WS-TITLE.
|
||||
|
||||
P300-UPDATE-DATA-FILE.
|
||||
CHAIN "update" USING WS-TITLE.
|
||||
|
||||
P500-SCREEN-DEMO-SECTION SECTION 50.
|
||||
P500-SCREEN-DEMO.
|
||||
DISPLAY SCREEN-SCREEN.
|
||||
ACCEPT SCREEN-SCREEN.
|
||||
DISPLAY SCREEN-SCREEN-2.
|
||||
ACCEPT SCREEN-SCREEN-2.
|
||||
DISPLAY NORMAL-SCREEN.
|
||||
DISPLAY HINT-SCREEN.
|
||||
ACCEPT NORMAL-SCREEN.
|
||||
DISPLAY AUTO-SKIP-SCREEN.
|
||||
DISPLAY HINT-SCREEN.
|
||||
ACCEPT AUTO-SKIP-SCREEN.
|
||||
DISPLAY SECURE-SCREEN.
|
||||
DISPLAY HINT-SCREEN.
|
||||
ACCEPT SECURE-SCREEN.
|
||||
|
45
Microsoft COBOL v21/DEMO.CPY
Normal file
45
Microsoft COBOL v21/DEMO.CPY
Normal file
@ -0,0 +1,45 @@
|
||||
|
||||
* ************* START OF COPIED FILE *************
|
||||
DISPLAY SPACE.
|
||||
DISPLAY SPACE.
|
||||
DISPLAY TEN-SPACES,
|
||||
" This is program DEMO, the first program in the".
|
||||
DISPLAY TEN-SPACES,
|
||||
" MS-COBOL demonstration suite. In this suite".
|
||||
DISPLAY TEN-SPACES,
|
||||
" of programs, you will see several information and".
|
||||
DISPLAY TEN-SPACES,
|
||||
" menu screens which will guide you through the ".
|
||||
DISPLAY TEN-SPACES,
|
||||
" demonstration.".
|
||||
DISPLAY SPACE.
|
||||
DISPLAY TEN-SPACES,
|
||||
' If you see the runtime error message "Must run Install"'.
|
||||
DISPLAY TEN-SPACES,
|
||||
" after this screen is displayed, that indicates that".
|
||||
DISPLAY TEN-SPACES,
|
||||
" you have not run the INSTALL utility, which adapts".
|
||||
DISPLAY TEN-SPACES,
|
||||
" COBOL to your terminal screen.".
|
||||
DISPLAY SPACE.
|
||||
DISPLAY TEN-SPACES,
|
||||
" If this happens, please see the MS-COBOL Users' Guide".
|
||||
DISPLAY TEN-SPACES,
|
||||
" for instructions on running the INSTALL utility. ".
|
||||
DISPLAY SPACE.
|
||||
DISPLAY TEN-SPACES,
|
||||
" After running INSTALL, you can successfully run this".
|
||||
DISPLAY TEN-SPACES,
|
||||
" demonstration. You can cancel this program now by typing"
|
||||
DISPLAY TEN-SPACES,
|
||||
" E (for End) followed by ENTER.".
|
||||
DISPLAY " ".
|
||||
DISPLAY TEN-SPACES,
|
||||
" Please hit ENTER by itself to continue. ".
|
||||
ACCEPT WS-OPTION.
|
||||
|
||||
IF NOT (END-OPTION)
|
||||
PERFORM P005-PROCESS.
|
||||
* ************* END OF COPIED FILE *************
|
||||
|
||||
|
61
Microsoft COBOL v21/E.COB
Normal file
61
Microsoft COBOL v21/E.COB
Normal file
@ -0,0 +1,61 @@
|
||||
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 NXX PIC 99.
|
||||
01 NX PIC 9.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
MAIN.
|
||||
DISPLAY 'computing e'.
|
||||
PERFORM INITA-ROUTINE.
|
||||
PERFORM INITA-ROUTINE-B.
|
||||
PERFORM INITA-ROUTINE-C.
|
||||
PERFORM OUTER-LOOP.
|
||||
DISPLAY 'done'.
|
||||
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 NXX.
|
||||
MOVE X TO NX.
|
||||
IF X < 10 DISPLAY NX ELSE DISPLAY NXX.
|
||||
|
74
Microsoft COBOL v21/FILES.DOC
Normal file
74
Microsoft COBOL v21/FILES.DOC
Normal file
@ -0,0 +1,74 @@
|
||||
Microsoft COBOL MS-DOS Release 2.1
|
||||
|
||||
FILES.DOC
|
||||
|
||||
January 2, 1986
|
||||
|
||||
|
||||
The following files are contained on your Microsoft Cobol distribution
|
||||
diskettes:
|
||||
|
||||
Disk 1: Primary MS-COBOL files
|
||||
|
||||
COBOL.EXE - The Cobol Compiler
|
||||
COBOL0.OVR - Cobol Compiler Overlay
|
||||
COBOL1.OVR - Cobol Compiler Overlay
|
||||
COBOL2.OVR - Cobol Compiler Overlay
|
||||
COBOL3.OVR - Cobol Compiler Overlay
|
||||
COBOL4.OVR - Cobol Compiler Overlay
|
||||
|
||||
RUNCOB.EXE - Cobol Runtime Executor
|
||||
DEBUGCOB.EXE - Cobol Interactive Debug Facility
|
||||
|
||||
ISAM.EXE - Indexed file handler
|
||||
|
||||
FILES.DOC - This Document
|
||||
UPDATE.DOC - Information pertinent to this release
|
||||
REFMAN.DOC - Additions to MS-COBOL Compiler Reference Manual
|
||||
UGUIDE.DOC - Additions to MS-COBOL Compiler User's Guide
|
||||
README.DOC - Information pertinent to using ISAM with networks
|
||||
|
||||
Disk 2: Utilities and Demonstration Programs
|
||||
|
||||
INSTALL.COM - Runtime INSTALL Utilty
|
||||
INSTALL.DAT - INSTALL support file
|
||||
INSTALL.MSG - INSTALL support file
|
||||
INSTALL.OVL - INSTALL support file
|
||||
INSTALL.SPC - INSTALL support file
|
||||
|
||||
LINK.EXE - MS-DOS Linker
|
||||
REBUILD.EXE - Indexed File Recovery Utility
|
||||
|
||||
DEMO.COB - Cobol Demonstration System
|
||||
DEMO.CPY - Cobol Demonstration System
|
||||
BUILD.COB - Cobol Demonstration System
|
||||
UPDATE.COB - Cobol Demonstration System
|
||||
CLDEMO.BAT - Batch file to compile Demonstration System
|
||||
|
||||
CENTER.COB - Demonstration Program
|
||||
CENTER.INT - Compiler output for CENTER.COB
|
||||
CRTEST.COB - Screen handlingTest program
|
||||
|
||||
|
||||
Disk 3: Assembly Language Subroutine Support Files and
|
||||
Isam Network Files
|
||||
|
||||
COBOL1.LIB - Custom Runtime Library #1
|
||||
COBOL2.LIB - Custom Runtime Library #2
|
||||
COBOL.OBJ - Custom Runtime Object Module
|
||||
|
||||
DEBUG.LIB - Custom Debugger Support Library
|
||||
DEBUG.OBJ - Custom Debugger Object Module
|
||||
|
||||
MAKERUN.BAT - Custom Runtime Batch File (Hard Disk)
|
||||
MAKERUN2.BAT - Custom Runtime Batch File (Floppies)
|
||||
|
||||
ASM.ASM - Subroutine name table module
|
||||
PSEG.MAC - Assembly Language Include File for ASM.ASM
|
||||
USERPROG.MAC - Program name table file for ASM.ASM
|
||||
USERSEG.MAC - Assembly Language Segmentation Macro File
|
||||
|
||||
NISAM.EXE - Indexed file handler for use with networks
|
||||
ISAM.SRV - The server component of networked ISAM
|
||||
ISAM.RDR - The redirector component of networked ISAM
|
||||
|
BIN
Microsoft COBOL v21/INSTALL.COM
Normal file
BIN
Microsoft COBOL v21/INSTALL.COM
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/INSTALL.DAT
Normal file
BIN
Microsoft COBOL v21/INSTALL.DAT
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/INSTALL.MSG
Normal file
BIN
Microsoft COBOL v21/INSTALL.MSG
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/INSTALL.OVL
Normal file
BIN
Microsoft COBOL v21/INSTALL.OVL
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/INSTALL.SPC
Normal file
BIN
Microsoft COBOL v21/INSTALL.SPC
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/ISAM.EXE
Normal file
BIN
Microsoft COBOL v21/ISAM.EXE
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/ISAM.RDR
Normal file
BIN
Microsoft COBOL v21/ISAM.RDR
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/ISAM.SRV
Normal file
BIN
Microsoft COBOL v21/ISAM.SRV
Normal file
Binary file not shown.
BIN
Microsoft COBOL v21/LINK.EXE
Normal file
BIN
Microsoft COBOL v21/LINK.EXE
Normal file
Binary file not shown.
14
Microsoft COBOL v21/MAKERUN.BAT
Normal file
14
Microsoft COBOL v21/MAKERUN.BAT
Normal file
@ -0,0 +1,14 @@
|
||||
masm asm;
|
||||
IF %2==DEBUG GOTO D1
|
||||
IF %2==debug GOTO D1
|
||||
IF %2==VIEW GOTO D2
|
||||
IF %2==view GOTO D2
|
||||
link cobol asm %2 %3 %4 %5 %6 %7 %8 %9,%1,,cobol1 cobol2/NOD
|
||||
GOTO D3
|
||||
:D1
|
||||
link cobol asm %2 %3 %4 %5 %6 %7 %8 %9,%1,,debug cobol1 cobol2/NOD
|
||||
GOTO D3
|
||||
:D2
|
||||
link cobol asm %2 %3 %4 %5 %6 %7 %8 %9,%1,,view1 view2/NOD
|
||||
:D3
|
||||
dir %1.*
|
17
Microsoft COBOL v21/MAKERUN2.BAT
Normal file
17
Microsoft COBOL v21/MAKERUN2.BAT
Normal file
@ -0,0 +1,17 @@
|
||||
a:
|
||||
PAUSE insert disk with MASM.EXE in drive b:
|
||||
b:masm asm;
|
||||
PAUSE insert disk with LINK.EXE in drive b:
|
||||
IF %2==DEBUG GOTO D1
|
||||
IF %2==debug GOTO D1
|
||||
IF %2==VIEW GOTO D2
|
||||
IF %2==view GOTO D2
|
||||
b:link cobol asm %2 %3 %4 %5 %6 %7 %8 %9,%1,,b:cobol1 b:cobol2/NOD
|
||||
GOTO D3
|
||||
:D1
|
||||
b:link cobol asm %3 %4 %5 %6 %7 %8 %9,%1,,b:debug b:cobol1 b:cobol2/NOD
|
||||
GOTO D3
|
||||
:D2
|
||||
b:link cobol asm %3 %4 %5 %6 %7 %8 %9,%1,,b:view1 b:view2/NOD
|
||||
:D3
|
||||
dir %1.*
|
BIN
Microsoft COBOL v21/NISAM.EXE
Normal file
BIN
Microsoft COBOL v21/NISAM.EXE
Normal file
Binary file not shown.
102
Microsoft COBOL v21/PSEG.MAC
Normal file
102
Microsoft COBOL v21/PSEG.MAC
Normal file
@ -0,0 +1,102 @@
|
||||
IFNDEF EUREKA
|
||||
EUREKA EQU 1
|
||||
ENDIF
|
||||
LPROG EQU 1 ;Large Program model.
|
||||
LDATA EQU 0 ;Large Data model. (not used)
|
||||
.SALL
|
||||
;
|
||||
; START_PSEG is a macro for defining the Program segment type of each
|
||||
; routine.
|
||||
;
|
||||
|
||||
XDEF = 0 ;Allows code group def.s only once.
|
||||
XDDEF = 0 ;Allows data group def.s only once.
|
||||
|
||||
START_PSEG MACRO ROUTINE
|
||||
|
||||
if LPROG
|
||||
_TEXT SEGMENT BYTE PUBLIC 'CODE'
|
||||
ASSUME CS:_TEXT
|
||||
PUBLIC ROUTINE
|
||||
ROUTINE PROC FAR
|
||||
else ;Small program definitions.
|
||||
_TEXT SEGMENT BYTE PUBLIC 'CODE'
|
||||
ASSUME CS:_TEXT
|
||||
PUBLIC ROUTINE
|
||||
ROUTINE PROC NEAR
|
||||
endif
|
||||
ENDM
|
||||
|
||||
;
|
||||
; END_PSEG is a macro for termination the Program segment type of each
|
||||
; routine.
|
||||
;
|
||||
|
||||
END_PSEG MACRO ROUTINE
|
||||
ROUTINE ENDP
|
||||
_TEXT ENDS
|
||||
ENDM
|
||||
|
||||
;
|
||||
; Standard definiton for near segment definitions.
|
||||
;
|
||||
|
||||
START_CODE MACRO
|
||||
_TEXT SEGMENT
|
||||
ENDM
|
||||
|
||||
END_CODE MACRO
|
||||
_TEXT ENDS
|
||||
ENDM
|
||||
|
||||
;
|
||||
; Standard Data area descriptions.
|
||||
;
|
||||
|
||||
ife XDDEF
|
||||
DGROUP GROUP CONST,_BSS,_DATA
|
||||
CONST SEGMENT WORD PUBLIC 'DATA'
|
||||
CONST ENDS
|
||||
_BSS SEGMENT WORD PUBLIC 'DATA'
|
||||
_BSS ENDS
|
||||
_DATA SEGMENT WORD PUBLIC 'DATA'
|
||||
ASSUME DS:DGROUP,ES:DGROUP,SS:DGROUP
|
||||
_DATA ENDS
|
||||
endif
|
||||
|
||||
START_DSEG MACRO
|
||||
_DATA SEGMENT
|
||||
ASSUME DS:DGROUP,ES:DGROUP,SS:DGROUP
|
||||
ENDM
|
||||
|
||||
END_DSEG MACRO
|
||||
_DATA ENDS
|
||||
ENDM
|
||||
|
||||
;
|
||||
; Structure used to reference parameters off the stack.
|
||||
;
|
||||
|
||||
IF LPROG
|
||||
|
||||
DYNS STRUC
|
||||
DD ? ;Long return address.
|
||||
ARG1 DW ? ;Parameter number 1.
|
||||
ARG2 DW ? ;Parameter number 2.
|
||||
ARG3 DW ? ;Parameter number 3.
|
||||
ARG4 DW ? ;Parameter number 4.
|
||||
ARG5 DW ? ;Parameter number 5.
|
||||
DYNS ENDS
|
||||
|
||||
ELSE
|
||||
|
||||
DYNS STRUC
|
||||
DW ? ;Near return address.
|
||||
ARG1 DW ? ;Parameter number 1.
|
||||
ARG2 DW ? ;Parameter number 2.
|
||||
ARG3 DW ? ;Parameter number 3.
|
||||
ARG4 DW ? ;Parameter number 4.
|
||||
ARG5 DW ? ;Parameter number 5.
|
||||
DYNS ENDS
|
||||
|
||||
ENDIF
|
86
Microsoft COBOL v21/README.DOC
Normal file
86
Microsoft COBOL v21/README.DOC
Normal file
@ -0,0 +1,86 @@
|
||||
README.DOC
|
||||
|
||||
December 13, 1985
|
||||
|
||||
This diskette contains two versions of ISAM.
|
||||
|
||||
One version, ISAM.EXE, is version 2.30, and should be
|
||||
used if you have a stand-alone, or non-IBM PC environment.
|
||||
If it is used in a network environment, locking affects the
|
||||
entire file instead of a single record. It will allow ISAM
|
||||
files OPENed for INPUT to be read simultaneously by
|
||||
different processes, however. There are also some speed im-
|
||||
provements over ISAM.EXE version 2.26. This version of ISAM
|
||||
will support MS-NET compatible networks as well as the
|
||||
IBM PC-NET.
|
||||
|
||||
The second version of ISAM is designed to be used in an IBM
|
||||
PC-NET network environment and requires PC-DOS v 3.1 or
|
||||
greater. It consists of three files: NISAM.EXE, ISAM.SRV,
|
||||
and ISAM.RDR.
|
||||
|
||||
NISAM.EXE is the front end ISAM command processor, version
|
||||
3.0. The commands it accepts are:
|
||||
|
||||
NISAM START SRV | RDR {/S:NNNNN} --start network ISAM
|
||||
(/S: specifies buffer size)
|
||||
NISAM STOP --stop ISAM & free memory
|
||||
NISAM SHARE --show share list, as with
|
||||
server
|
||||
NISAM SHARE shortname=d:\path --share a directory with
|
||||
the specified shortname
|
||||
NISAM SHARE d:\path --share the specified
|
||||
directory
|
||||
NISAM SHARE shortname|d:\path /D --stop sharing the short-
|
||||
name or directory
|
||||
NISAM FILE --show the currently OPEN
|
||||
ISAM files
|
||||
NISAM CLOSE name --close the specified open
|
||||
file
|
||||
|
||||
ISAM.SRV is the server version of ISAM which can service
|
||||
ISAM requests. It is activated by the NISAM START SRV
|
||||
command. This command should be given on a network
|
||||
server machine when requests for ISAM files located on that
|
||||
machine will be made either locally or across the network.
|
||||
|
||||
ISAM.RDR is the redirector version of ISAM, and is activated
|
||||
by the NISAM START RDR command. This command should be
|
||||
given on network machines that run programs that access ISAM
|
||||
files located only on other, server machines.
|
||||
|
||||
Thus, ISAM files must be located on a server, and the ISAM
|
||||
on that machine must be activated with the NISAM START SRV
|
||||
command.
|
||||
|
||||
Note: It is possible, in the same network, to have some
|
||||
machines running ISAM.EXE and others running NISAM.EXE.
|
||||
We do not recommend it, however. It is NOT possible to
|
||||
have the same machine running both ISAM.EXE and NISAM.EXE
|
||||
at the same time.
|
||||
|
||||
Like the network server, network directory paths must be
|
||||
shared using the NISAM SHARE command. The command syntax
|
||||
has been modeled after the NET SHARE command. You MUST
|
||||
NISAM SHARE the same directories that you NET SHARE, using
|
||||
the SAME syntax used in the NET SHARE command.
|
||||
For example, on a server named ZEKE you would type:
|
||||
|
||||
NET SHARE PAYABLE=C:\LEDGER\PAYABLE
|
||||
NISAM SHARE PAYABLE=C:\LEDGER\PAYABLE
|
||||
|
||||
Then, the user on another machine who wants to use an ISAM
|
||||
file in the C:\LEDGER\PAYABLE directory on the server named
|
||||
ZEKE would type:
|
||||
|
||||
NET USE E: \\ZEKE\PAYABLE
|
||||
|
||||
and then run the application which OPENs the ISAM file on
|
||||
drive E:.
|
||||
|
||||
The application can be passed the name of the machine\short-
|
||||
name to do an explicit OPEN using the "VALUE OF FILE-ID"
|
||||
clause. For example:
|
||||
|
||||
VALUE OF FILE-ID "\\ZEKE\PAYABLE\MASTER.DAT".
|
||||
|
BIN
Microsoft COBOL v21/REBUILD.EXE
Normal file
BIN
Microsoft COBOL v21/REBUILD.EXE
Normal file
Binary file not shown.
126
Microsoft COBOL v21/REFMAN.DOC
Normal file
126
Microsoft COBOL v21/REFMAN.DOC
Normal file
@ -0,0 +1,126 @@
|
||||
Microsoft COBOL MS-DOS Release 2.1
|
||||
|
||||
REFMAN.DOC
|
||||
|
||||
Additions to the Microsoft COBOL Compiler
|
||||
Reference Manual
|
||||
|
||||
September 3, 1985
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
The following information was not available when the
|
||||
Microsoft COBOL Compiler Reference Manual was printed,
|
||||
but will appear in future versions of that document.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CONTENTS
|
||||
|
||||
CHAPTER 6 DATA DIVISION
|
||||
|
||||
6.2 Record Description Entry
|
||||
|
||||
6.2.5 Numeric Items
|
||||
|
||||
3. Binary Item
|
||||
|
||||
|
||||
CHAPTER 7 PROCEDURE DIVISION
|
||||
|
||||
7.2 Arithmetic Statements
|
||||
|
||||
7.2.1 SIZE ERROR Option
|
||||
|
||||
7.6 PROCEDURE DIVISION Statements
|
||||
|
||||
7.6.1 ACCEPT Statement
|
||||
|
||||
7.6.1.1 Format 1 ACCEPT Statement
|
||||
|
||||
|
||||
|
||||
|
||||
CHAPTER 6 DATA DIVISION
|
||||
|
||||
6.2 Record Description Entry
|
||||
|
||||
6.2.5 Numeric Items
|
||||
|
||||
3. Binary Item
|
||||
|
||||
Warning: Regardless of the number of digits
|
||||
specified in the PICTURE clause for
|
||||
a COMP-0 or COMP-4 item, truncation
|
||||
and the SIZE ERROR condition occur
|
||||
only when a value moved to such an
|
||||
item exceeds the range (described
|
||||
above) for a 2-byte (COMP-0) or 4-
|
||||
byte (COMP-4) SIGNED binary integer.
|
||||
A COMP-0 item has an implicit PICTURE
|
||||
S9(5), and a COMP-4 item has an
|
||||
implicit PICTURE S9(10).
|
||||
|
||||
Binary items are always considered
|
||||
to be signed, even if the PICTURE
|
||||
omits the sign character S.
|
||||
|
||||
|
||||
|
||||
CHAPTER 7 PROCEDURE DIVISION
|
||||
|
||||
|
||||
7.2 Arithmetic Statements
|
||||
|
||||
7.2.1 SIZE ERROR Option
|
||||
|
||||
Warning: For binary items, defined with
|
||||
USAGE COMP-0 or COMP-4, truncation
|
||||
and the SIZE ERROR condition occur
|
||||
only when a value moved to such an
|
||||
item exceeds the range for a 2-byte
|
||||
(COMP-0) or 4-byte (COMP-4) SIGNED
|
||||
binary integer. A COMP-0 item has
|
||||
an implicit PICTURE S9(5), and a
|
||||
COMP-4 item has an implicit PICTURE
|
||||
S9(10), regardless of the number of
|
||||
digits specified in the PICTURE
|
||||
clause.
|
||||
|
||||
|
||||
7.6 PROCEDURE DIVISION Statements
|
||||
|
||||
7.6.1 ACCEPT Statement
|
||||
|
||||
The Format 1 ACCEPT obtains date or time
|
||||
information from the operating system. It
|
||||
places the amount of data specified into
|
||||
identifier, regardless of the size of
|
||||
identifier. (For example, DATE will move
|
||||
6 digits of information even if identifier
|
||||
is PIC XX). Be sure identifier is large enough
|
||||
to hold the output of ACCEPT.
|
||||
|
||||
7.6.1.1 Format 1 ACCEPT Statement
|
||||
|
||||
LINE NUMBER
|
||||
|
||||
a two-digit value. The ACCEPT ... FROM LINE
|
||||
NUMBER is provided for compatibility with
|
||||
other COBOL's, but in Microsoft COBOL the
|
||||
value of LINE NUMBER is always "00".
|
||||
|
BIN
Microsoft COBOL v21/RUNCOB.EXE
Normal file
BIN
Microsoft COBOL v21/RUNCOB.EXE
Normal file
Binary file not shown.
53
Microsoft COBOL v21/SIEVE.COB
Normal file
53
Microsoft COBOL v21/SIEVE.COB
Normal file
@ -0,0 +1,53 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. SIEVE.
|
||||
* REMARKS. BYTE magazine benchmark.
|
||||
* REMARKS. MS Cobol limits array sizes to 4095.
|
||||
* REMARKS. Expected prime count: 1026.
|
||||
ENVIRONMENT DIVISION.
|
||||
CONFIGURATION SECTION.
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 MISC.
|
||||
03 I PIC 9(4) COMP.
|
||||
03 PRIME PIC 9(4) COMP.
|
||||
03 K PIC 9(4) COMP.
|
||||
03 TOTAL-PRIME-COUNT PIC 9(4) COMP.
|
||||
02 SIEVETABLE.
|
||||
04 FLAGS PIC 9 COMP OCCURS 4095 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 = 4095.
|
||||
PERFORM DCP THRU DCE VARYING I FROM 0 BY 1 UNTIL I = 4094.
|
||||
|
||||
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 > 4095 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.
|
||||
|
171
Microsoft COBOL v21/TTT.COB
Normal file
171
Microsoft COBOL v21/TTT.COB
Normal file
@ -0,0 +1,171 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. TTT.
|
||||
* REMARKS. prove tic-tac-toe is not winnable against a good foe.
|
||||
* REMARKS. DOES NOT RUN WITH MS COBOL v1 or v2 due to recursive PERFORM
|
||||
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 < 1 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.
|
||||
DISPLAY '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 )
|
||||
|
||||
DISPLAY 'recursing to minmax'
|
||||
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.
|
||||
|
298
Microsoft COBOL v21/UGUIDE.DOC
Normal file
298
Microsoft COBOL v21/UGUIDE.DOC
Normal file
@ -0,0 +1,298 @@
|
||||
Microsoft COBOL MS-DOS Release 2.1
|
||||
|
||||
UGUIDE.DOC
|
||||
|
||||
Additions to the Microsoft COBOL Compiler
|
||||
User's Guide
|
||||
|
||||
September 3, 1985
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
The following information was not available when the
|
||||
Microsoft COBOL Compiler User's Guide was printed,
|
||||
but will appear in future versions of that document.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CONTENTS
|
||||
|
||||
CHAPTER 3 Compiling
|
||||
|
||||
3.1 Invoking the Compiler
|
||||
|
||||
3.1.3 Using Compiler Switches
|
||||
|
||||
CHAPTER 7 Data Input and Output
|
||||
|
||||
7.3 Using MS-DOS and Nondisk FIles
|
||||
|
||||
CHAPTER 10 Interprogram Communication
|
||||
|
||||
10.5 Calling MS-COBOL Extension Subroutines
|
||||
|
||||
APPENDIX F Error Messages
|
||||
|
||||
F.1 Compile Time Error Messages
|
||||
|
||||
F.1.2 Program Syntax Errors
|
||||
|
||||
F.2 Runtime Error Messages
|
||||
|
||||
APPENDIX G Loading the Indexed File Handler
|
||||
|
||||
|
||||
CHAPTER 3 Compiling
|
||||
|
||||
3.1 Invoking the Compiler
|
||||
|
||||
3.1.3 Using Compiler Switches
|
||||
|
||||
An additional compile time switch has been added to
|
||||
MS-COBOL.
|
||||
|
||||
Switches
|
||||
|
||||
/G
|
||||
|
||||
This switch causes any program statements with a "D"
|
||||
in column 7 to be compiled, rather than being treated
|
||||
as comments. Specifying this switch has the same effect
|
||||
as specifying WITH DEBUGGING MODE in the SOURCE-COMPUTER
|
||||
paragraph in the ENVIRONMENT DIVISION.
|
||||
|
||||
CHAPTER 7 Data Input and Output
|
||||
|
||||
7.3 Using MS-DOS and Nondisk FIles
|
||||
|
||||
To send an output file to the printer, use the SELECT
|
||||
file-name ASSIGN TO PRINTER clause. Then, in an associated
|
||||
FD, specify the clause LABEL RECORD IS OMITTED. DO not
|
||||
specify the VALUE OF FILE-ID clause.
|
||||
|
||||
The FILE-STATUS data-item for a PRINTER file will not be
|
||||
updated; You may receive MS-DOS messages if a printer is
|
||||
not attached or is not on-line, but the FILE-STATUS item
|
||||
will not change from its initial value. Be sure to check
|
||||
your printer before writing to it.
|
||||
|
||||
CHAPTER 10 Interprogram Communication
|
||||
|
||||
10.5 Calling MS-COBOL Extension Subroutines
|
||||
|
||||
Two additional Extension Subroutines, KBDAVAIL and
|
||||
CURPOS, are now available. KBDAVAIL allows a COBOL
|
||||
program to check whether keyboard data has been
|
||||
entered, without having to wait for such entry,
|
||||
or having to read the data. CURPOS allows a COBOL
|
||||
program to examine the current line and column
|
||||
value of the screen cursor.
|
||||
|
||||
Note that to call these or any other extension
|
||||
subroutines, the routine name must be entered
|
||||
in UPPER-CASE in the CALL statement.
|
||||
|
||||
|
||||
Name and function:
|
||||
|
||||
KBDAVAIL Indicates whether data is available
|
||||
at the keyboard, without actually
|
||||
reading the data.
|
||||
|
||||
CURPOS Returns the line and column location
|
||||
of the screen cursor at the time of
|
||||
the call.
|
||||
|
||||
Calling conventions:
|
||||
|
||||
CALL "KBDAVAIL" USING status.
|
||||
|
||||
CALL "CURPOS" USING line-val, column-val.
|
||||
|
||||
Arguments:
|
||||
|
||||
status A alphanumeric two-character
|
||||
data-item (PIC XX). Returned
|
||||
status values are described below.
|
||||
|
||||
line-val A numeric data-name with USAGE
|
||||
COMP-0. The current cursor line
|
||||
will be returned here.
|
||||
|
||||
column-val A numeric data-name with USAGE
|
||||
COMP-0. The current cursor column
|
||||
will be returned here.
|
||||
|
||||
|
||||
Returned status values:
|
||||
|
||||
Status Code: "00"
|
||||
For KBDAVAIL, "00" indicates
|
||||
keyboard data has been entered.
|
||||
|
||||
Status Code: "30"
|
||||
For KBDAVAIL, "30" indicates
|
||||
keyboard data has not been entered.
|
||||
|
||||
|
||||
Programming notes:
|
||||
|
||||
KBDAVAIL can be used to check whether data
|
||||
has been entered at the keyboard, without
|
||||
having to ACCEPT the data.
|
||||
|
||||
One use of this routine is to place it in
|
||||
a timing loop before ACCEPTing keyboard data.
|
||||
This allows a "timeout" ACCEPT - if data is
|
||||
entered before the loop times out, an ACCEPT
|
||||
can be done to process the data; otherwise
|
||||
some default action may take place. Normally,
|
||||
an ACCEPT will wait until data is entered or
|
||||
the process is terminated. The timing loop may
|
||||
be based on a fixed number of iterations of
|
||||
the call, which is machine dependent, or based
|
||||
on a period of time derived from ACCEPT ... FROM
|
||||
TIME. For example, the following procedure may
|
||||
be used:
|
||||
|
||||
PERFORM P900-CHECK-KEYBOARD
|
||||
UNTIL KEYBOARD-CHECK-DONE = "YES".
|
||||
IF KEYBOARD-STATUS = "00"
|
||||
ACCEPT KEYBOARD-LINE
|
||||
ELSE
|
||||
MOVE DEFAULT-DATA TO KEYBOARD-LINE.
|
||||
|
||||
where P900-CHECK-KEYBOARD would call KBDAVAIL
|
||||
and do some timing checks, which can be used
|
||||
to set KEYBOARD-CHECK-DONE to "YES".
|
||||
|
||||
|
||||
CURPOS will return the current line (x) and
|
||||
column (y) values of the screen cursor. This
|
||||
may be useful for determining the last field
|
||||
entered during a screen ACCEPT, for example.
|
||||
|
||||
In general, after an ACCEPT or DISPLAY, the
|
||||
cursor is placed in the column immediately
|
||||
following the last field involved in the
|
||||
operation.
|
||||
|
||||
Following is a list of special circumstances
|
||||
involving the cursor. (x, y) is assumed to
|
||||
be the previous cursor position if a position
|
||||
is not specified. Blank-screen is a screen
|
||||
containing only BLANK SCREEN.
|
||||
|
||||
Operation Cursor placement after operation
|
||||
|
||||
Program startup (1, 1)
|
||||
DISPLAY (x, y) ERASE (x, y)
|
||||
DISPLAY (x, y) data-name (x, (y + data-name size + 1))
|
||||
ACCEPT (x, y) data-name (x, (y + data-name size + 1))
|
||||
DISPLAY blank-screen (1, 1)
|
||||
DISPLAY screen-name 1 column past the end of the
|
||||
last screen line
|
||||
ACCEPT screen-name 1 column past the end of the
|
||||
field the cursor was in
|
||||
when the ACCEPT was
|
||||
terminated
|
||||
DISPLAY data-name (x + 1, 1)
|
||||
ACCEPT data-name (x + 1, 1)
|
||||
|
||||
|
||||
|
||||
APPENDIX F Error Messages
|
||||
|
||||
F.1 Compile Time Error Messages
|
||||
|
||||
F.1.2 Program Syntax Errors
|
||||
|
||||
|
||||
INSPECT REPLACING operands have incorrect length
|
||||
|
||||
The operands used in the REPLACING form of the
|
||||
INSPECT statement must be the same length. If
|
||||
CHARACTERS is used, the replacing operand must
|
||||
have a length of 1. If the replaced operand is
|
||||
a figurative constant, the replacing operand
|
||||
must have a length of 1.
|
||||
|
||||
|
||||
Illegal structure: Item beyond scope of
|
||||
OCCURS/DEPENDING.
|
||||
|
||||
A variable sized data item, defined as one
|
||||
containing the OCCURS DEPENDING ON clause,
|
||||
had more data defined following the variable
|
||||
length section of the record. A variable
|
||||
sized data item may only be followed, within
|
||||
the current 01 level data item, by data
|
||||
description entries which are subordinate to it.
|
||||
|
||||
END DECLARATIVES required.
|
||||
|
||||
A DECLARATIVES header was declared with no
|
||||
matching END DECLARATIVES.
|
||||
|
||||
F.2 Runtime Error Messages
|
||||
|
||||
Subroutine must be CALLed.
|
||||
|
||||
A program with a USING list in its PROCEDURE
|
||||
DIVISION header has been invoked directly,
|
||||
rather than being CALLed from a COBOL program.
|
||||
Since the LINKAGE SECTION variables are undefined,
|
||||
this is not allowed.
|
||||
|
||||
CALL parameters mismatched.
|
||||
|
||||
The number of elements in the USING list in a
|
||||
CALLed program's PROCEDURE DIVISION header does
|
||||
not match the number of elements in the USING
|
||||
list of the CALL statement that CALLed the
|
||||
subroutine.
|
||||
|
||||
Must run Install.
|
||||
|
||||
Screen DISPLAYs or ACCEPTs were attempted which
|
||||
used Microsoft extensions supported by the INSTALL
|
||||
utility, but INSTALL had not been run. See this
|
||||
manual for instructions on running INSTALL.
|
||||
|
||||
APPENDIX G Loading the Indexed File Handler
|
||||
|
||||
G.3 Error Handling
|
||||
|
||||
Opening a large number of Indexed files or using
|
||||
files with very large records may cause ISAM to
|
||||
run out of buffer memory space. If this happens,
|
||||
and a FILE-STATUS item has been defined, the
|
||||
file operation that caused the memory overflow
|
||||
will return status "96". If no FILE-STATUS item
|
||||
was defined, the runtime error message "Need
|
||||
more memory" will be displayed and the job will
|
||||
be cancelled.
|
||||
|
||||
The /S switch may be used to increase the buffer
|
||||
space available to ISAM. Note that this switch
|
||||
must be entered exactly as described, with
|
||||
a colon (:) after the S and no spaces in the
|
||||
command line. E.g.,
|
||||
|
||||
ISAM/S:20000
|
||||
|
||||
is a valid invocation of ISAM with the /S switch.
|
572
Microsoft COBOL v21/UPDATE.COB
Normal file
572
Microsoft COBOL v21/UPDATE.COB
Normal file
@ -0,0 +1,572 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. UPDATE.
|
||||
SECURITY.
|
||||
THIS PROGRAM MODIFIES AND LISTS AN INDEXED FILE OF
|
||||
NAMES, ADDRESSES, AND PHONE NUMBERS
|
||||
*
|
||||
ENVIRONMENT DIVISION.
|
||||
INPUT-OUTPUT SECTION.
|
||||
FILE-CONTROL.
|
||||
SELECT ISAM-FILE
|
||||
ASSIGN TO DISK
|
||||
FILE STATUS IS ISAM-STATUS
|
||||
RECORD KEY IS ISAM-KEY
|
||||
ACCESS MODE IS DYNAMIC
|
||||
ORGANIZATION IS INDEXED.
|
||||
|
||||
SELECT MAIL-LIST-FILE
|
||||
ASSIGN TO DISK
|
||||
FILE STATUS IS MAIL-LIST-STATUS
|
||||
ORGANIZATION IS LINE SEQUENTIAL.
|
||||
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
FD ISAM-FILE
|
||||
LABEL RECORDS ARE STANDARD
|
||||
VALUE OF FILE-ID IS 'ISAM.DAT'.
|
||||
|
||||
01 ISAM-RECORD.
|
||||
05 ISAM-KEY.
|
||||
10 ISAM-LAST-NAME PIC X(20).
|
||||
10 ISAM-FIRST-NAME PIC X(20).
|
||||
05 ISAM-ADDRESS-LINE-1 PIC X(40).
|
||||
05 ISAM-ADDRESS-LINE-2 PIC X(40).
|
||||
05 ISAM-PHONE PIC X(12).
|
||||
|
||||
FD MAIL-LIST-FILE
|
||||
LABEL RECORDS ARE STANDARD
|
||||
VALUE OF FILE-ID IS 'MAIL.DAT'.
|
||||
|
||||
01 MAIL-LIST-RECORD PIC X(41).
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
|
||||
01 WORK-FIELDS.
|
||||
05 IIX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 JIX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 KIX PIC S9(5) VALUE 0 COMP-0.
|
||||
05 WS-START PIC S9(5) VALUE 0 COMP-0.
|
||||
05 WS-END PIC S9(5) VALUE 0 COMP-0.
|
||||
05 ISAM-STATUS PIC XX VALUE SPACES.
|
||||
05 MAIL-LIST-STATUS PIC XX VALUE SPACES.
|
||||
05 WS-ACTION PIC X(20) VALUE SPACES.
|
||||
|
||||
05 WS-OPTION PIC X VALUE SPACE.
|
||||
88 ADD-OPTION VALUE 'A', 'a'.
|
||||
88 LIST-OPTION VALUE 'L', 'l'.
|
||||
88 DELETE-OPTION VALUE 'D', 'd'.
|
||||
88 MODIFY-OPTION VALUE 'M', 'm'.
|
||||
88 EXIT-OPTION VALUE 'E', 'e'.
|
||||
|
||||
|
||||
05 WS-TERMINATE PIC X VALUE SPACES.
|
||||
88 TERMINATED VALUE 'T', 't', 'N', 'n',
|
||||
'S', 's'.
|
||||
05 ANY-CHAR PIC X VALUE SPACE.
|
||||
|
||||
01 SWITCHES.
|
||||
05 ON-VALUE PIC X VALUE 'Y'.
|
||||
05 OFF-VALUE PIC X VALUE 'N'.
|
||||
05 UPDT-FINISHED-SW PIC X VALUE 'N'.
|
||||
88 UPDT-FINISHED VALUE 'Y'.
|
||||
|
||||
01 WS-DATA-RECORD.
|
||||
05 WS-KEY.
|
||||
10 WS-LAST-NAME.
|
||||
15 WS-LAST-NAME-CHAR OCCURS 20 TIMES PIC X.
|
||||
10 WS-FIRST-NAME PIC X(20).
|
||||
05 WS-ADDRESS-LINE-1 PIC X(40) VALUE SPACES.
|
||||
05 WS-ADDRESS-LINE-2 PIC X(40) VALUE SPACES.
|
||||
05 WS-PHONE PIC X(12) VALUE SPACES.
|
||||
|
||||
01 WS-MAIL-LIST-RECORD.
|
||||
05 WS-ML-NAME.
|
||||
10 WS-ML-NAME-CHAR PIC X OCCURS 41 TIMES.
|
||||
05 WS-ML-ADDRESS-LINE-1 PIC X(40) VALUE SPACES.
|
||||
05 WS-ML-ADDRESS-LINE-2 PIC X(40) VALUE SPACES.
|
||||
|
||||
|
||||
01 WS-TITLE PIC X(50).
|
||||
|
||||
SCREEN SECTION.
|
||||
|
||||
01 BLANK-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
|
||||
01 TUTOR-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 17 VALUE
|
||||
'MS-COBOL INDEXED FILE UPDATE DEMONSTRATION'.
|
||||
03 LINE 2 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
03 LINE 4 COLUMN 5 VALUE
|
||||
'This is main program UPDATE, CHAINed to from main prog
|
||||
- 'ram DEMO.'.
|
||||
03 LINE 5 COLUMN 5 VALUE
|
||||
'Since UPDATE was CHAINed to and not CALLed, control wi
|
||||
- 'll not return'.
|
||||
03 LINE 6 COLUMN 5 VALUE
|
||||
'to DEMO.'.
|
||||
03 LINE 8 COLUMN 1 VALUE
|
||||
'In this program, you may list, add, delete, or modify
|
||||
- 'records in file ISAM.DAT'.
|
||||
03 LINE 9 COLUMN 1 VALUE
|
||||
'which was created in subprogram BUILD. If you did not
|
||||
- 'try the CREATE option'.
|
||||
03 LINE 10 COLUMN 1 VALUE
|
||||
'yet, please terminate this program by responding T bel
|
||||
- 'ow, then execute'.
|
||||
03 LINE 11 COLUMN 1 VALUE
|
||||
'DEMO again, this time selecting option C to create the
|
||||
- ' file which is'.
|
||||
03 LINE 12 COLUMN 1 VALUE
|
||||
'updated in this program. OK?.'.
|
||||
03 LINE 14 COLUMN 1 VALUE
|
||||
'To terminate this program type T, then hit ENTER.'.
|
||||
03 LINE 15 COLUMN 1 HIGHLIGHT VALUE
|
||||
'Hit ENTER by itself to continue:'.
|
||||
03 COLUMN PLUS 1 PIC X TO WS-TERMINATE.
|
||||
|
||||
01 TUTOR-SCREEN-2.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 17 VALUE
|
||||
'MS-COBOL INDEXED FILE UPDATE DEMONSTRATION'.
|
||||
03 LINE 2 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
03 LINE 4 COLUMN 1 VALUE
|
||||
'Ok. Since you have created file ISAM.DAT, you may now
|
||||
- 'modify or'.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'display its contents. One advantage of the MS-COBOL in
|
||||
- 'dexed file'.
|
||||
03 LINE 6 COLUMN 1 VALUE
|
||||
'structure is that it automatically returns records sor
|
||||
- 'ted by key when'.
|
||||
03 LINE 7 COLUMN 1 VALUE
|
||||
'the file is read sequentially.'.
|
||||
03 LINE 9 COLUMN 1 VALUE
|
||||
'You will now see a menu screen which will let you:'.
|
||||
03 LINE 10 COLUMN 5 VALUE
|
||||
'List the file, creating a file of mailing labels sorte
|
||||
- 'd by last name,'.
|
||||
03 LINE 11 COLUMN 10 VALUE
|
||||
'then first name;'.
|
||||
03 LINE 12 COLUMN 5 VALUE
|
||||
'Add records to the file;'.
|
||||
03 LINE 13 COLUMN 5 VALUE
|
||||
'Delete records from the file;'.
|
||||
03 LINE 14 COLUMN 5 VALUE
|
||||
'Modify records on the file.'.
|
||||
03 LINE 17 COLUMN 1 VALUE
|
||||
'You will return to the options menu after you have com
|
||||
- 'pleted'.
|
||||
03 LINE 18 COLUMN 1 VALUE
|
||||
'any set of actions, so that you may modify, then list
|
||||
- 'the'.
|
||||
03 LINE 19 COLUMN 1 VALUE
|
||||
'file, as many times as you like.'.
|
||||
03 LINE 21 COLUMN 1 HIGHLIGHT VALUE
|
||||
'Please hit ENTER to continue.'.
|
||||
03 COLUMN PLUS 1 PIC X TO ANY-CHAR.
|
||||
|
||||
01 OPTION-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 17 VALUE
|
||||
'MS-COBOL INDEXED FILE UPDATE DEMONSTRATION'.
|
||||
03 LINE 2 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
03 LINE 6 COLUMN 1 VALUE
|
||||
'Please select one of the following options by typing t
|
||||
- 'he first letter'.
|
||||
03 LINE 7 COLUMN 1 VALUE
|
||||
'of the option in the space below, then hitting ENTER.
|
||||
- 'Option E'.
|
||||
03 LINE 8 COLUMN 1 VALUE
|
||||
'followed by ENTER will end this demonstration.'.
|
||||
03 LINE 10 COLUMN 5 VALUE
|
||||
'Option L: List records in indexed file sorted by last nam
|
||||
- 'e, then first name'.
|
||||
03 LINE 11 COLUMN 15 VALUE
|
||||
'and create a mailing label file in the same order'.
|
||||
03 LINE 12 COLUMN 5 VALUE
|
||||
'Option A: Add a record to the indexed file'.
|
||||
03 LINE 13 COLUMN 5 VALUE
|
||||
'Option D: Delete a specified record in the indexed file'.
|
||||
03 LINE 14 COLUMN 5 VALUE
|
||||
'Option M: Modify a specified record in the indexed file'.
|
||||
03 LINE 16 COLUMN 5 VALUE
|
||||
'Option E: End this program'.
|
||||
03 LINE 23 COLUMN 10 HIGHLIGHT VALUE
|
||||
'Enter option here followed by ENTER: '.
|
||||
03 COLUMN PLUS 1 PIC X TO WS-OPTION.
|
||||
|
||||
01 AFTERMATH-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 20 VALUE
|
||||
'MS-COBOL INDEXED FILE UPDATE DEMONSTRATION'.
|
||||
03 LINE 2 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
03 LINE 4 COLUMN 1 VALUE
|
||||
'Action requested = '.
|
||||
03 PIC X(20) FROM WS-ACTION HIGHLIGHT.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'File status = '.
|
||||
03 PIC XX FROM ISAM-STATUS HIGHLIGHT.
|
||||
03 LINE 8 COLUMN 1 VALUE
|
||||
'File status = 00 means action was successful'.
|
||||
03 LINE 9 COLUMN 1 VALUE
|
||||
'File status = 10 means END-OF-FILE encountered'.
|
||||
03 LINE 10 COLUMN 1 VALUE
|
||||
'File status = 21 means KEY NOT IN SEQUENCE'.
|
||||
03 LINE 11 COLUMN 1 VALUE
|
||||
'File status = 22 means ATTEMPT TO WRITE DUPLICATE KEY'.
|
||||
03 LINE 12 COLUMN 1 VALUE
|
||||
'File status = 23 means NO RECORD FOUND'.
|
||||
03 LINE 13 COLUMN 1 VALUE
|
||||
'File status = 24 means DISK FULL'.
|
||||
03 LINE 14 COLUMN 1 VALUE
|
||||
'File status = 30 means PERMANENT INPUT-OUTPUT ERROR'.
|
||||
03 LINE 15 COLUMN 1 VALUE
|
||||
'File status = 91 means FILE STRUCTURE WAS DAMAGED'.
|
||||
03 LINE 18 COLUMN 1 VALUE
|
||||
' Do you wish to '.
|
||||
03 PIC X(6) FROM WS-ACTION HIGHLIGHT.
|
||||
03 VALUE ' any more records (Y/N)?'.
|
||||
03 LINE 20 COLUMN 10 HIGHLIGHT VALUE
|
||||
'Reply (followed by ENTER) = '.
|
||||
03 COLUMN PLUS 1 PIC X TO WS-TERMINATE.
|
||||
|
||||
01 LIST-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 17 VALUE
|
||||
'MS-COBOL INDEXED FILE UPDATE DEMONSTRATION'.
|
||||
03 LINE 2 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
03 LINE 4 COLUMN 1 VALUE
|
||||
'The following record was written by you to file ISAM.D
|
||||
- 'AT, and is now '.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'sorted in ascending order by LAST NAME followed by FIR
|
||||
- 'ST name.'.
|
||||
03 LINE 7 COLUMN 1 PIC X(20) FROM WS-FIRST-NAME
|
||||
HIGHLIGHT.
|
||||
03 LINE 8 COLUMN 1 PIC X(20) FROM WS-LAST-NAME
|
||||
HIGHLIGHT.
|
||||
03 LINE 9 COLUMN 1 PIC X(40) FROM WS-ADDRESS-LINE-1
|
||||
HIGHLIGHT.
|
||||
03 LINE 10 COLUMN 1 PIC X(40) FROM WS-ADDRESS-LINE-2
|
||||
HIGHLIGHT.
|
||||
03 LINE 11 COLUMN 1 PIC X(12) FROM WS-PHONE AUTO
|
||||
HIGHLIGHT.
|
||||
03 LINE 13 COLUMN 1 VALUE
|
||||
'The following records were written to file MAIL.DAT to
|
||||
- 'be used for mailing'.
|
||||
03 LINE 14 COLUMN 1 VALUE
|
||||
'labels. File status of last write = '.
|
||||
03 PIC XX FROM MAIL-LIST-STATUS HIGHLIGHT.
|
||||
03 LINE 15 COLUMN 9 VALUE
|
||||
'File status = 00 means action was successful'.
|
||||
03 LINE 17 COLUMN 1 PIC X(41) FROM WS-ML-NAME
|
||||
HIGHLIGHT.
|
||||
03 LINE 18 COLUMN 1 PIC X(40) FROM WS-ML-ADDRESS-LINE-1
|
||||
HIGHLIGHT.
|
||||
03 LINE 19 COLUMN 1 PIC X(40) FROM WS-ML-ADDRESS-LINE-2
|
||||
HIGHLIGHT.
|
||||
03 LINE 21 COLUMN 9 VALUE
|
||||
'Do you wish to read the next record?'.
|
||||
03 LINE 22 COLUMN 12 VALUE
|
||||
'Reply ENTER by itself to continue reading the file. Type
|
||||
- 'S followed '.
|
||||
03 LINE 23 COLUMN 12 VALUE
|
||||
'by ENTER to stop reading the file.'.
|
||||
03 LINE 23 COLUMN 50 HIGHLIGHT VALUE
|
||||
'Reply = '.
|
||||
03 COLUMN PLUS 1 PIC X TO WS-TERMINATE.
|
||||
|
||||
|
||||
01 NAME-ADDRESS-SCREEN.
|
||||
03 NAME-SCREEN.
|
||||
05 BLANK SCREEN.
|
||||
05 LINE 1 COLUMN 17 VALUE
|
||||
'MS-COBOL INDEXED FILE UPDATE DEMONSTRATION'.
|
||||
05 LINE 2 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
05 LINE 4 COLUMN 1 VALUE
|
||||
'Please enter the data requested below. To exit from th
|
||||
- 'is program'.
|
||||
05 LINE 5 COLUMN 1 VALUE
|
||||
'reply N to the question: "Do you wish to enter more da
|
||||
- 'ta?(Y/N)"'.
|
||||
05 LINE 6 COLUMN 1 VALUE
|
||||
'when it appears on the screen.'.
|
||||
05 LINE 8 COLUMN 1 VALUE
|
||||
'Enter FIRST name and initial (1 to 20 characters): '.
|
||||
05 LINE 9 COLUMN 1 VALUE '[' HIGHLIGHT.
|
||||
05 LINE 9 COLUMN 2 PIC X(20) FROM WS-FIRST-NAME
|
||||
TO WS-FIRST-NAME.
|
||||
05 LINE 9 COLUMN 22 VALUE ']' HIGHLIGHT.
|
||||
05 LINE 10 COLUMN 1 VALUE
|
||||
'Enter LAST name (1 to 20 characters): '.
|
||||
05 LINE 11 COLUMN 1 VALUE '[' HIGHLIGHT.
|
||||
05 LINE 11 COLUMN 2 PIC X(20) FROM WS-LAST-NAME
|
||||
TO WS-LAST-NAME.
|
||||
05 LINE 11 COLUMN 22 VALUE ']' HIGHLIGHT.
|
||||
|
||||
03 ADDRESS-SCREEN.
|
||||
05 LINE 13 COLUMN 1 VALUE
|
||||
'Enter first address line (1 to 40 characters): '.
|
||||
05 LINE 14 COLUMN 1 VALUE '[' HIGHLIGHT.
|
||||
05 LINE 14 COLUMN 2 PIC X(40) FROM WS-ADDRESS-LINE-1
|
||||
TO WS-ADDRESS-LINE-1.
|
||||
05 LINE 14 COLUMN 42 VALUE ']' HIGHLIGHT.
|
||||
05 LINE 15 COLUMN 1 VALUE
|
||||
'Enter second address line (1 to 40 characters): '.
|
||||
05 LINE 16 COLUMN 1 VALUE '[' HIGHLIGHT.
|
||||
05 LINE 16 COLUMN 2 PIC X(40) TO WS-ADDRESS-LINE-2
|
||||
FROM WS-ADDRESS-LINE-2.
|
||||
05 LINE 16 COLUMN 42 VALUE ']' HIGHLIGHT.
|
||||
05 LINE 18 COLUMN 1 VALUE
|
||||
'Enter phone number (XXX-XXXX or XXX-XXX-XXXX): '.
|
||||
05 LINE 19 COLUMN 1 VALUE '[' HIGHLIGHT.
|
||||
05 LINE 19 COLUMN 2 PIC X(12) FROM WS-PHONE
|
||||
TO WS-PHONE.
|
||||
05 LINE 19 COLUMN 14 VALUE ']' HIGHLIGHT.
|
||||
05 LINE 21 COLUMN 10 VALUE
|
||||
'If data is OK, hit ENTER to write to the file. You can
|
||||
- 'use BACK TAB to '.
|
||||
05 LINE 22 COLUMN 15 VALUE
|
||||
'return to previous fields and modify data with cursor pos
|
||||
- 'itioning.'.
|
||||
05 LINE 23 COLUMN 15 VALUE
|
||||
'keys. '.
|
||||
05 LINE 23 COLUMN 21 HIGHLIGHT VALUE
|
||||
'Hit ENTER here to continue: '.
|
||||
05 COLUMN PLUS 1 PIC X TO ANY-CHAR.
|
||||
|
||||
01 EOF-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 17 VALUE
|
||||
'MS-COBOL INDEXED FILE UPDATE DEMONSTRATION'.
|
||||
03 LINE 3 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
03 LINE 6 COLUMN 1 VALUE
|
||||
'You have reached the end of the file ISAM.DAT.'.
|
||||
03 LINE 8 COLUMN 1 VALUE
|
||||
'You have also built the line sequential file MAIL.DAT, a
|
||||
- 'sorted file'.
|
||||
03 LINE 9 COLUMN 1 VALUE
|
||||
'of mailing labels. You will now return to the options scr
|
||||
- 'een, where '.
|
||||
03 LINE 10 COLUMN 1 VALUE
|
||||
'you can again modify or list ISAM.DAT. When you choose op
|
||||
- 'tion E to end'.
|
||||
03 LINE 11 COLUMN 1 VALUE
|
||||
'this demonstration and return to the operating system, yo
|
||||
- 'u may use the'.
|
||||
03 LINE 12 COLUMN 1 VALUE
|
||||
'system TYPE command to list file MAIL.DAT.'.
|
||||
03 LINE 18 COLUMN 1 HIGHLIGHT VALUE
|
||||
'Please hit ENTER to return to the options menu: '.
|
||||
03 COLUMN PLUS 1 PIC X TO ANY-CHAR.
|
||||
|
||||
|
||||
01 FINAL-SCREEN.
|
||||
03 BLANK SCREEN.
|
||||
03 LINE 1 COLUMN 21 VALUE
|
||||
' END OF MICROSOFT MS-COBOL DEMONSTRATION'.
|
||||
03 LINE 3 COLUMN 15 PIC X(50) FROM WS-TITLE HIGHLIGHT.
|
||||
03 LINE 5 COLUMN 1 VALUE
|
||||
'Thank you for taking part in this demonstration of '.
|
||||
03 LINE 6 COLUMN 1 VALUE
|
||||
'the features of Microsoft MS-COBOL.'.
|
||||
03 LINE 8 COLUMN 1 VALUE
|
||||
'After hitting ENTER to end this program, you can use the
|
||||
- 'system TYPE '.
|
||||
03 LINE 9 COLUMN 5 VALUE
|
||||
'command to list file MAIL.DAT and see the mailing list
|
||||
- ' you have built. '.
|
||||
03 LINE 16 COLUMN 1 HIGHLIGHT VALUE
|
||||
'Please hit ENTER to end this program.'.
|
||||
03 COLUMN PLUS 1 PIC X TO ANY-CHAR.
|
||||
|
||||
|
||||
|
||||
PROCEDURE DIVISION CHAINING WS-TITLE.
|
||||
|
||||
P000-MAIN-LINE.
|
||||
DISPLAY TUTOR-SCREEN.
|
||||
ACCEPT TUTOR-SCREEN.
|
||||
|
||||
IF TERMINATED
|
||||
STOP RUN.
|
||||
|
||||
OPEN I-O ISAM-FILE.
|
||||
IF ISAM-STATUS NOT = '00'
|
||||
DISPLAY ' FILE OPEN FAILURE. JOB CANCELLED'
|
||||
DISPLAY 'FILE STATUS = ', ISAM-STATUS
|
||||
DISPLAY 'TYPE ANY CHARACTER TO END JOB'
|
||||
ACCEPT ANY-CHAR
|
||||
ELSE
|
||||
DISPLAY TUTOR-SCREEN-2
|
||||
ACCEPT TUTOR-SCREEN-2
|
||||
PERFORM P100-GET-DATA
|
||||
UNTIL UPDT-FINISHED.
|
||||
|
||||
CLOSE ISAM-FILE.
|
||||
DISPLAY BLANK-SCREEN.
|
||||
STOP RUN.
|
||||
|
||||
|
||||
P100-GET-DATA.
|
||||
MOVE SPACE TO WS-TERMINATE.
|
||||
MOVE SPACE TO WS-OPTION.
|
||||
MOVE SPACES TO WS-DATA-RECORD.
|
||||
DISPLAY OPTION-SCREEN.
|
||||
ACCEPT OPTION-SCREEN.
|
||||
|
||||
IF LIST-OPTION
|
||||
MOVE 'MAIL LIST' TO WS-ACTION
|
||||
PERFORM P110-START-FILE
|
||||
OPEN OUTPUT MAIL-LIST-FILE
|
||||
PERFORM P200-MAIL-LIST
|
||||
UNTIL TERMINATED
|
||||
CLOSE MAIL-LIST-FILE
|
||||
ELSE IF ADD-OPTION
|
||||
MOVE 'ADD' TO WS-ACTION
|
||||
PERFORM P300-ADD
|
||||
UNTIL TERMINATED
|
||||
ELSE IF DELETE-OPTION
|
||||
MOVE 'DELETE' TO WS-ACTION
|
||||
PERFORM P400-DELETE
|
||||
UNTIL TERMINATED
|
||||
ELSE IF MODIFY-OPTION
|
||||
MOVE 'MODIFY' TO WS-ACTION
|
||||
PERFORM P500-MODIFY
|
||||
UNTIL TERMINATED
|
||||
ELSE IF EXIT-OPTION
|
||||
DISPLAY FINAL-SCREEN
|
||||
ACCEPT FINAL-SCREEN
|
||||
MOVE ON-VALUE TO UPDT-FINISHED-SW
|
||||
ELSE
|
||||
NEXT SENTENCE.
|
||||
|
||||
|
||||
P110-START-FILE.
|
||||
MOVE SPACES TO ISAM-KEY.
|
||||
START ISAM-FILE
|
||||
KEY IS GREATER THAN ISAM-KEY
|
||||
INVALID KEY PERFORM P900-START-ERROR.
|
||||
|
||||
|
||||
P200-MAIL-LIST.
|
||||
PERFORM P800-READ-ISAM.
|
||||
|
||||
IF NOT TERMINATED
|
||||
PERFORM P210-BUILD-MAIL
|
||||
DISPLAY LIST-SCREEN
|
||||
ACCEPT LIST-SCREEN.
|
||||
|
||||
P210-BUILD-MAIL.
|
||||
* PREPARE MAIL LIST RECORD. PLACE FIRST NAME AND
|
||||
* INITIAL ON LINE, SEARCH FOR END, THEN MOVE LAST
|
||||
* NAME TO LINE AND WRITE TO FILE MAIL.DAT.
|
||||
|
||||
MOVE WS-ADDRESS-LINE-1 TO WS-ML-ADDRESS-LINE-1.
|
||||
MOVE WS-ADDRESS-LINE-2 TO WS-ML-ADDRESS-LINE-2.
|
||||
MOVE WS-FIRST-NAME TO WS-ML-NAME.
|
||||
|
||||
IF WS-FIRST-NAME = SPACES
|
||||
MOVE 1 TO IIX
|
||||
ELSE
|
||||
PERFORM P220-NOTHING VARYING IIX FROM 20 BY -1
|
||||
UNTIL (WS-ML-NAME-CHAR (IIX) NOT = SPACE)
|
||||
OR (IIX < 1)
|
||||
ADD 2 TO IIX.
|
||||
* ** IIX IS LOCATION FOR START OF LAST NAME
|
||||
|
||||
* *** FIND FIRST NON-BLANK IN LAST NAME
|
||||
|
||||
IF WS-LAST-NAME = SPACES
|
||||
MOVE 1 TO WS-START, WS-END
|
||||
ELSE
|
||||
PERFORM P220-NOTHING VARYING JIX FROM 1 BY 1
|
||||
UNTIL (WS-LAST-NAME-CHAR (JIX) NOT = SPACE)
|
||||
OR (JIX > 20)
|
||||
MOVE JIX TO WS-START
|
||||
PERFORM P220-NOTHING VARYING JIX FROM 20 BY -1
|
||||
UNTIL (WS-LAST-NAME-CHAR (JIX) NOT = SPACE)
|
||||
OR (JIX < 1)
|
||||
MOVE JIX TO WS-END.
|
||||
* **** MOVE LAST NAME TO LINE
|
||||
|
||||
PERFORM P230-MOVE-NAME VARYING KIX FROM WS-START BY 1
|
||||
UNTIL KIX > WS-END.
|
||||
|
||||
PERFORM P240-WRITE-MAIL-LIST.
|
||||
|
||||
P220-NOTHING.
|
||||
EXIT.
|
||||
|
||||
P230-MOVE-NAME.
|
||||
MOVE WS-LAST-NAME-CHAR (KIX) TO WS-ML-NAME-CHAR (IIX).
|
||||
ADD 1 TO IIX.
|
||||
|
||||
P240-WRITE-MAIL-LIST.
|
||||
WRITE MAIL-LIST-RECORD FROM WS-ML-NAME.
|
||||
WRITE MAIL-LIST-RECORD FROM WS-ML-ADDRESS-LINE-1.
|
||||
WRITE MAIL-LIST-RECORD FROM WS-ML-ADDRESS-LINE-2.
|
||||
MOVE SPACES TO MAIL-LIST-RECORD.
|
||||
WRITE MAIL-LIST-RECORD.
|
||||
|
||||
P300-ADD.
|
||||
MOVE SPACES TO WS-DATA-RECORD.
|
||||
DISPLAY NAME-ADDRESS-SCREEN.
|
||||
ACCEPT NAME-ADDRESS-SCREEN.
|
||||
|
||||
PERFORM P700-WRITE-ISAM.
|
||||
|
||||
DISPLAY AFTERMATH-SCREEN.
|
||||
ACCEPT AFTERMATH-SCREEN.
|
||||
|
||||
P400-DELETE.
|
||||
MOVE SPACES TO WS-DATA-RECORD.
|
||||
DISPLAY NAME-SCREEN.
|
||||
ACCEPT NAME-SCREEN.
|
||||
PERFORM P820-DELETE-ISAM.
|
||||
|
||||
DISPLAY AFTERMATH-SCREEN.
|
||||
ACCEPT AFTERMATH-SCREEN.
|
||||
|
||||
P500-MODIFY.
|
||||
MOVE SPACES TO WS-DATA-RECORD.
|
||||
DISPLAY NAME-SCREEN.
|
||||
ACCEPT NAME-SCREEN.
|
||||
PERFORM P810-RANDOM-READ-ISAM.
|
||||
|
||||
IF ISAM-STATUS = '00'
|
||||
DISPLAY NAME-SCREEN
|
||||
DISPLAY ADDRESS-SCREEN
|
||||
ACCEPT ADDRESS-SCREEN
|
||||
PERFORM P710-REWRITE-ISAM.
|
||||
|
||||
DISPLAY AFTERMATH-SCREEN.
|
||||
ACCEPT AFTERMATH-SCREEN.
|
||||
|
||||
P700-WRITE-ISAM.
|
||||
WRITE ISAM-RECORD FROM WS-DATA-RECORD.
|
||||
|
||||
P710-REWRITE-ISAM.
|
||||
REWRITE ISAM-RECORD FROM WS-DATA-RECORD.
|
||||
|
||||
P800-READ-ISAM.
|
||||
READ ISAM-FILE NEXT INTO WS-DATA-RECORD
|
||||
AT END
|
||||
MOVE 'T' TO WS-TERMINATE
|
||||
DISPLAY EOF-SCREEN
|
||||
ACCEPT EOF-SCREEN.
|
||||
|
||||
P810-RANDOM-READ-ISAM.
|
||||
MOVE WS-DATA-RECORD TO ISAM-RECORD.
|
||||
READ ISAM-FILE INTO WS-DATA-RECORD.
|
||||
|
||||
P820-DELETE-ISAM.
|
||||
MOVE WS-DATA-RECORD TO ISAM-RECORD.
|
||||
DELETE ISAM-FILE RECORD.
|
||||
|
||||
P900-START-ERROR.
|
||||
MOVE 'T' TO WS-TERMINATE.
|
||||
DISPLAY EOF-SCREEN.
|
||||
ACCEPT EOF-SCREEN.
|
223
Microsoft COBOL v21/UPDATE.DOC
Normal file
223
Microsoft COBOL v21/UPDATE.DOC
Normal file
@ -0,0 +1,223 @@
|
||||
Microsoft COBOL MS-DOS Release 2.1
|
||||
|
||||
UPDATE.DOC
|
||||
|
||||
December 13, 1985
|
||||
|
||||
Significant changes in this release:
|
||||
|
||||
1) Any programs compiled under earlier versions of MS-COBOL
|
||||
should be recompiled before running; an error message
|
||||
indicating incompatible systems will appear otherwise.
|
||||
|
||||
2) There are numerous differences between MS-COBOL 2.1 and
|
||||
MS-COBOL 1.0. These are explained in detail in Appendix
|
||||
A of the Microsoft COBOL Compiler User's Guide.
|
||||
|
||||
In particular you should be aware that:
|
||||
|
||||
- Microsoft COBOL 2.1 is validated at LOW-INTERMEDIATE
|
||||
level; however, more standard COBOL features,
|
||||
including multiple-key Indexed files and dynamically
|
||||
called subroutines, are available for program use
|
||||
|
||||
- MS-COBOL 2.1 will run only under version 2.0 or later of
|
||||
MS-DOS.
|
||||
|
||||
- MS-COBOL 2.1 does not use a link step. Programs may be compiled
|
||||
then run. Programs are run by entering RUNCOB <filename>.
|
||||
|
||||
- If file I/O is to be done, you should have a CONFIG.SYS file
|
||||
in your root directory with the FILES command set to at
|
||||
least 20 (FILES=20). This allocates buffer space in MS-DOS
|
||||
for files.
|
||||
|
||||
If no CONFIG.SYS file is present, the default is FILES=8,
|
||||
which is too small. See your MS-DOS manual for details.
|
||||
|
||||
- Indexed (ISAM) files use Microsoft ISAM, which must be loaded
|
||||
before running programs that use Indexed files. (See Appendix
|
||||
G in the Microsoft COBOL User's Guide). The MS-DOS ASSIGN
|
||||
command must not be used while ISAM is active.
|
||||
|
||||
- See the README.DOC file for information concerning the use of
|
||||
ISAM files in an IBM PC-NET environment.
|
||||
|
||||
- The non-network version of ISAM.EXE shipped with Cobol 2.1,
|
||||
version 2.30, is not compatible with earlier versions of Cobol,
|
||||
and previous versions of Cobol are not compatible with
|
||||
ISAM.EXE version 2.30. THEREFORE, ENSURE YOUR APPLICATIONS
|
||||
COMPILED WITH COBOL 2.1 INCLUDE ISAM VERSION 2.30 WHEN DISTRIBUTED.
|
||||
|
||||
- Indexed file formats are different from those in MS-COBOL
|
||||
Version 1.0; the REBUILD utility will convert files from one
|
||||
format to the other.
|
||||
|
||||
- Sequential and Line Sequential files have the same format as
|
||||
those in MS-COBOL 1.0, except that the end of file is indicated
|
||||
without terminating CONTROL-Z characters. Files created under
|
||||
COBOL 1.0 may be used except when the OPEN EXTEND option is used.
|
||||
In that case, files should be generated by or copied using an
|
||||
MS-COBOL 2.1 program to produce the correct end of file.
|
||||
|
||||
- Cobol 2.1 does not truncate trailing blanks in a Line Sequential
|
||||
file. However, if an attempt is made to REWRITE a record longer
|
||||
than what was originally written, only the number of bytes orig-
|
||||
inally written will be rewritten. See discussion of /C switch
|
||||
below under 5) Enhancements and corrections....
|
||||
|
||||
- Assembly language subroutines must be linked with the runtime
|
||||
executor (RUNCOB.EXE) instead of with your COBOL program. This
|
||||
is explained in Chapter 10 of the User's Guide.
|
||||
|
||||
- There are several built-in subroutines which may be called to
|
||||
perform tasks such as deleting and renaming files, converting
|
||||
to upper or lower case, and getting the current cursor position.
|
||||
These are described in Chapter 10 of the User's Guide. Additional
|
||||
routines are described in the file UGUIDE.DOC.
|
||||
|
||||
- Default tab stops are now set at every 8 characters. A compiler
|
||||
switch (/O) is available for programs that have tabs set for
|
||||
the default MS-COBOL 1.0 settings.
|
||||
|
||||
- Both RUNCOB.EXE and DEBUGCOB.EXE should be configured using the
|
||||
INSTALL utility before any programs using screen I/O are run.
|
||||
DEBUGCOB.EXE should be configured even if your program does no
|
||||
screen I/O. INSTALL accepts a file name to be configured, but
|
||||
will not accept paths. Files configured must be in the same
|
||||
directory as the INSTALL files, or in a directory on a different
|
||||
disk drive or device.
|
||||
|
||||
3) Additional documentation which appeared too late to be included
|
||||
in the Microsoft COBOL Compiler Reference Manual and User's
|
||||
Guide is available in the files REFMAN.DOC, for Reference Manual
|
||||
information, and UGUIDE.DOC for User's Guide information.
|
||||
|
||||
Included in these files is information concerning COMP-0 and
|
||||
COMP-4 variables, some error messages, some new extension
|
||||
subroutines, an undocumented compiler switch, and an undocumented
|
||||
file status.
|
||||
|
||||
4) File and record locking syntax are accepted by the MS-COBOL compiler
|
||||
under MS-DOS 2.x, but are IGNORED at runtime. This means that files
|
||||
used in a multi-user environment under MS-DOS 2.x are UNPROTECTED
|
||||
by MS-COBOL.
|
||||
|
||||
5) Enhancements and corrections from version 2.0
|
||||
|
||||
Both compiler and runtime speed have been significantly increased
|
||||
compared to version 2.0. Compile speed is roughly three times
|
||||
faster than version 1.12 and twice as fast as version 2.0. Runtime
|
||||
speed is generally comparable to version 1.12, and ISAM processing
|
||||
is faster than in 1.12.
|
||||
|
||||
A runtime switch, /C, has been added. The product no longer
|
||||
defaults to truncation of trailing blanks when writing records to
|
||||
a Line Sequential file. However, if the /C (for Compress)
|
||||
switch is specified, trailing blanks will be truncated.
|
||||
|
||||
Corrections
|
||||
|
||||
- An error in which low level I/O failure, such as no space on a
|
||||
disk file, would cause the runtime to crash has been corrected.
|
||||
|
||||
- If INSTALL has not been run, and MS-COBOL screen extensions are
|
||||
requested, the job will be canceled instead of producing a long
|
||||
list of messages.
|
||||
|
||||
- Subprograms with USING lists in their PROCEDURE DIVISION headers
|
||||
can no longer be invoked except through a CALL. Also, an error
|
||||
is reported if the number of parameters in a calling program
|
||||
does not match the number in the called program.
|
||||
|
||||
- Non-COBOL subprograms whose names are the same length and
|
||||
differ only in the last character are now correctly
|
||||
differentiated.
|
||||
|
||||
- COMP-3 variables may now be used as subprogram arguments.
|
||||
|
||||
- An error is detected if DECLARATIVES is declared without a matching
|
||||
END DECLARATIVES.
|
||||
|
||||
- A problem with DIVIDE with REMAINDER using very large operands
|
||||
and a signed quotient which caused the runtime to crash has
|
||||
been corrected.
|
||||
|
||||
- Variables with subordinate LEVEL 88 items were treated as
|
||||
group items for MOVE. This has been corrected.
|
||||
|
||||
- A bug was fixed in which a paragraph containing exact multiples
|
||||
of 512 characters of literals would pick up the wrong text
|
||||
for the literals.
|
||||
|
||||
- Several problems involving COMP-4 variables have been corrected,
|
||||
including improper initialization and erroneous moving of a
|
||||
sign character into the data following an unsigned DISPLAY
|
||||
format receiving field of a MOVE.
|
||||
|
||||
- ACCEPT from LINE NUMBER now returns the two digit field "00"
|
||||
instead of a five-digit program line number. This change was
|
||||
done for compatibility with version 1.x.
|
||||
|
||||
- A problem where the compiler did not reject illegal characters
|
||||
inside the parentheses of a PICTURE clause has been corrected.
|
||||
|
||||
- The version number now appears correctly in the listing file.
|
||||
|
||||
- Problems compiling programs with more than 32K of generated object
|
||||
code have been fixed.
|
||||
|
||||
- Previously, if no object file was produced, and a program had overlay
|
||||
segments, strange characters were written to the screen during a
|
||||
compile. This has been fixed.
|
||||
|
||||
- Alternate collating sequences of more than 128 characters should now
|
||||
work. HIGH-VALUES is now hexadecimal 'FF' instead of '7F'.
|
||||
|
||||
- START with WAIT or LOCK previously generated invalid object code.
|
||||
This has been corrected.
|
||||
|
||||
- FULL and REQUIRED for group items no longer generates a compiler
|
||||
error.
|
||||
|
||||
- Several problems regarding printing have been corrected.
|
||||
|
||||
- CHAIN and CALL in certain circumstances could cause memory
|
||||
management problems. These have been corrected.
|
||||
|
||||
- A bug was fixed where more than 7 identifiers in and UNSTRING
|
||||
would cause an error in phase 3.
|
||||
|
||||
- INSTALL option 1, (install your own terminal) now works properly.
|
||||
|
||||
NOTE: When using the "Define your own terminal" option of INSTALL:
|
||||
If the terminal you wish to Install, and are using, is con-
|
||||
nected to the COM port, some characters may be lost when
|
||||
defining single keys (such as Function keys, cursor keys, or
|
||||
keys on the numeric keypad) which generate multiple character
|
||||
sequences. An approach which will work in all cases is to
|
||||
explicitly type in the character sequence that defines
|
||||
the key.
|
||||
|
||||
- A correction has been made such that the ON OVERFLOW clause in the
|
||||
CALL statement now works properly.
|
||||
|
||||
- A bug in handling relative files has been corrected.
|
||||
|
||||
- A syntax error involving BLANK now generates a syntax error rather
|
||||
than a compiler error in phase 3.
|
||||
|
||||
- REWRITEing a record in a LINE SEQUENTIAL file no longer clobbers
|
||||
the first byte in the following record.
|
||||
|
||||
- The cursor is no longer hidden after certain runtime errors.
|
||||
|
||||
- An arithmetic expression in a PERFORM statement now computes
|
||||
properly in all cases.
|
||||
|
||||
- The compiler will now give an error if there is no period following
|
||||
a required paragraph name.
|
||||
|
||||
- The compiler now works properly when REDEFINES clauses are sub-
|
||||
ordinate to data items containing an OCCURS clause.
|
||||
|
23
Microsoft COBOL v21/USERPROG.MAC
Normal file
23
Microsoft COBOL v21/USERPROG.MAC
Normal file
@ -0,0 +1,23 @@
|
||||
; ********** Assembly language interface table include file
|
||||
|
||||
;*********************************************************************
|
||||
;
|
||||
; User non-COBOL subroutines must be specified in this file using
|
||||
; the macro asmnam to generate table entries to go into asm.asm,
|
||||
; which must then be assembled and linked. This file may not
|
||||
; be assembled by itself.
|
||||
|
||||
; Enter new routines by specifying :
|
||||
; asmnam <program entry point>,<program language>
|
||||
; <program entry point> should be entered using the same case as used in
|
||||
; the CALL statement in the COBOL program, so the names will match,
|
||||
; <program language> - only asm86 is acceped (must be provided)
|
||||
|
||||
; Below are some example statements (commented out) specifying some
|
||||
; user routines.
|
||||
|
||||
; asmnam leon,asm86
|
||||
; asmnam BOBZ,asm86
|
||||
; asmnam lylek,asm86
|
||||
|
||||
; ********* enter routine specifications here *************************
|
53
Microsoft COBOL v21/USERSEG.MAC
Normal file
53
Microsoft COBOL v21/USERSEG.MAC
Normal file
@ -0,0 +1,53 @@
|
||||
.SALL
|
||||
;
|
||||
; START_CSEG is a macro for defining the Code (Program) segment type of each
|
||||
; routine.
|
||||
;
|
||||
|
||||
START_CSEG MACRO ROUTINE
|
||||
|
||||
_USER SEGMENT BYTE
|
||||
ASSUME CS:_USER
|
||||
PUBLIC ROUTINE
|
||||
ROUTINE PROC FAR
|
||||
ENDM
|
||||
|
||||
;
|
||||
; END_CSEG is a macro for termination the Code (Program) segment type of each
|
||||
; routine.
|
||||
;
|
||||
|
||||
END_CSEG MACRO ROUTINE
|
||||
|
||||
|
||||
ROUTINE ENDP
|
||||
_USER ENDS
|
||||
ENDM
|
||||
|
||||
;
|
||||
; START_DSEG and END_DSEG are macros for initalization and termination
|
||||
; of the DATA segment type of each routine.
|
||||
;
|
||||
|
||||
;
|
||||
; DMACCNT is used to assure that the DGROUP command is generated only if
|
||||
; needed, and then only once.
|
||||
;
|
||||
|
||||
DMACCNT = 0
|
||||
|
||||
START_DSEG MACRO
|
||||
|
||||
IFE DMACCNT
|
||||
DGROUP GROUP _DATA
|
||||
DMACCNT = 1
|
||||
ENDIF
|
||||
_DATA SEGMENT WORD PUBLIC 'DATA'
|
||||
ASSUME DS:DGROUP,ES:DGROUP,SS:DGROUP
|
||||
ENDM
|
||||
|
||||
END_DSEG MACRO
|
||||
_DATA ENDS
|
||||
ENDM
|
||||
|
||||
;
|
9
Microsoft COBOL v21/m.bat
Normal file
9
Microsoft COBOL v21/m.bat
Normal file
@ -0,0 +1,9 @@
|
||||
del %1.obj 2>nul
|
||||
del %1.exe 2>nul
|
||||
|
||||
ntvdm -t -r:. -h -c -d cobol %1,%1,%1/D;
|
||||
|
||||
ntvdm -c runcob %1
|
||||
echo:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user