Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-04 - 43,50343/vttam.rno
There is 1 other file named vttam.rno in the archive. Click here to see a list.
.TITLE VTTAM DOCUMENTATION
.NUMBER
.LEFT MARGIN 5
.RIGHT MARGIN 65
.SPACING 1
.SKIP 10
.CENTER
^^^&V T T A M   S O F T W A R E   D O C U M E N T A T I O N\&
.SKIP 2
.CENTER
TONY LAUCK
.CENTER
JULY 2,1971
.CENTER
REVISED JULY 1,1972
.SKIP 5
.PARAGRAPH
THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS COMMITTMENT BY DIGITAL EQUIPMENT
CORPORATION.
.PARAGRAPH
ACTUAL DISTRIBUTION OF THE SOFTWARE DESCRIBED IN THIS DOCUMENT WILL
BE SUBJECT TO TERMS AND CONDITIONS DETERMINED AT SOME FUTURE DATE
BY DIGITAL EQUIPMENT CORPORATION.
.SUBTITLE GENERAL
.PAGE
.TEST PAGE 20
.INDENT -5
1.0  GENERAL OVERVIEW
.SKIP 2
VTTAM IS A SOFTWARE PACKAGE TO ALLOW A COBOL PROGRAM TO COMMUNICATE
EFFECIENTLY WITH A NUMBER OF VT05 ALPHANUMERIC CRT TERMINALS
ON A TRANSACTION BASIS. THIS PACKAGE WILL ASSIST IN CONVERSION OF
APPLICATIONS PACKAGES ORIGINALLY WRITTEN FOR
IBM SYSTEMS AND BASED ON THE IBM 2260 DISPLAY TERMINAL.
THE COBOL APPLICATIONS PROGRAM CAN ERASE OR WRITE ON ANY ONE
OF SEVERAL TERMINALS, OR CAN GO INTO A WAIT CONDITION UNTIL A
COMPLETE TRANSACTION IS RECEIVED FROM ANY ONE OF THE TERMINALS.
.SKIP
TERMINAL ORIENTED SOFTWARE ENABLES THE VT05 TO FUNCTION LIKE AN
IBM 2260. THE USER CAN EDIT HIS SCREEN IMAGE USING THE CURSOR
POSITIONING CONTROLS ON THE VT05 KEYBOARD, AND WHEN HE IS
SATISFIED CAN CAUSE A COMPLETE SCREEN IMAGE TO BE SENT TO THE
COBOL PROGRAM BY PRESSING "ESC".
.SKIP
SHOULD SEVERAL TERMINALS REQUEST SERVICE FASTER THAN THE APPLICATIONS
PROGRAM CAN SERVICE THEM, THE REQUESTS WILL BE QUEUED ON 
A FIRST COME, FIRST SERVED BASIS. HOWEVER, A GIVEN TERMINAL CAN HAVE
AT MOST ONE REQUEST QUEUED, AND SUBSEQUENT
"ESC"S FROM THAT TERMINAL WILL BE IGNORED.
.SKIP
THE COBOL APPLICATIONS PROGRAM SHOULD BE WRITTEN TO PROVIDE
A CONFIRMATION MESSAGE FOR EACH TRANSACTION,
SIGNIFYING COMPLETION OF PROCESSING AND WILLINGNESS TO ACCEPT THE
NEXT TRANSACTION.
.SKIP
OUTPUT TO A TERMINAL MAY BE GENERATED BY THE APPLICATIONS PROGRAM
AT ANY TIME. IN PARTICULAR, THIS MEANS THAT OUTPUT MAY BE
SENT TO A TERMINAL THAT DID NOT ENTER A TRANSACTION. IN FACT,
A USER MAY EVEN BE IN THE MIDDLE OF KEYING IN A TRANSACTION
WHEN THIS UNSOLICITED OUTPUT IS GENERATED.
.SKIP
IN GENERAL, UNSOLICITED OUTPUT SHOULD BE AVOIDED IN THE DESIGN
OF THE APPLICATIONS PROGRAM, BECAUSE IT WILL INTERFERE WITH A
TRANSACTION BEING ENTERED BY A USER AT THE TIME THE OUTPUT OCCURS.
A PORTION OF THE TRANSACTION WILL USUALLY HAVE TO BE RE-ENTERED.
IF THE APPLICATIONS PROGRAM REWRITES THE ENTIRE SCREEN, THE
USER WILL HAVE TO RECOMPOSE HIS ENTIRE MESSAGE. THIS WILL BE
ANNOYING TO HIM. FURTHERMORE, SHOULD THE USER CONTINUE TYPING
DURING THE ACTUAL I/O, HE MAY GET GARBLED COPY ON HIS CRT SCREEN,
DUE TO TIMING CONDITIONS INVOLVING THE VT05, MONITOR, AND
USER PROGRAM. SHOULD THIS HAPPEN THE USER CAN RECOVER BY
DEPRESSING THE
"RUB OUT" KEY, BUT THIS WILL STILL BE A MAJOR INCONVENIENCE.
.SUBTITLE USER FUNCTIONS
.PAGE
.INDENT -5
2.0  USER FUNCTIONS
.SKIP
WHEN THE APPLICATIONS COBOL PROGRAM INITIALIZES VTTAM, EACH
TERMINAL'S SCREEN IS BLANKED AND AN INITIALIZATION MESSAGE GIVING THE
DATE, TIME, AND TERMINAL NUMBER ARE DISPLAYED. A SIMILAR MESSAGE
IS DISPLAYED WHEN THE SYSTEM IS SHUT DOWN.
.SKIP 2
.TEST PAGE 20
.INDENT -5
2.1  COMPUTER GENERATED OUTPUT
.SKIP
WHILE THE COMPUTER IS OUTPUTTING TO A USER'S TERMINAL THE USER MUST
REFRAIN FROM TYPING. THE END OF THE OUTPUT OPERATION IS SIGNIFIED
BY THE RETURN OF THE CURSOR TO THE TOP LEFT POSITION.
.SKIP
TYPING DURING OUTPUT MAY PRODUCE GARBLED COPY ON THE SCREEN.
SHOULD THIS HAPPEN INADVERTENTLY, THE USER CAN RECOVER BY
PRESSING THE "RUB OUT" KEY OF THE VT05.
.SKIP
NOTE THAT A PARTIAL
LINE OF EDITING TYPED JUST PRIOR TO UNSOLICITED OUTPUT WILL
USUALLY BE LOST.
AFTER THE OUTPUT IS DONE, THE CRT SCREEN WILL REFLECT WHAT
IS IN THE COMPUTER CORE MEMORY, UNLESS THE USER WAS TYPING
DURING THE OUTPUT OPERATION.
.SKIP 2
.TEST PAGE 20
.INDENT -5
2.2  EDITING
.SKIP 2
THE USER CAN EDIT CHARACTERS ON THE SCREEN BY USE OF THE 
"HOME UP", "ERASE EOL" "ERASE EOF" AND CURSOR
POSITIONING KEYS LOCATED TO THE RIGHT OF THE 
KEYBOARD OF THE VT05. THE USER CAN ALSO EDIT DATA
BY USING ANY ALPHANUMERIC KEY OR THE SPACE BAR. HOWEVER, THE USER
MUST NOT SEND ANY "CONTROL" CODES. (THESE ARE GENERATED BY PRESSING
THE "CONTROL" KEY AND THEN TYPING ANOTHER CHARACTER. DO NOT DO
THIS.)
.SKIP
NOTE THAT THERE IS A DIFFERENCE BETWEEN THE SPACE BAR AND THE
"CURSOR RIGHT" KEY. THE SPACE BAR MOVES THE CURSOR TO THE RIGHT
ONE POSITION AFTER ERASING THE PREVIOUS CHARACTER. THE "CURSOR RIGHT"
KEY DOES NOT ERASE THE PREVIOUS CHARACTER.
.SKIP
NOTE ALSO THE DIFFERENCE BETWEEN THE UPARROW AND LEFT ARROW GRAPHIC
CHARACTERS (SHIFT O AND SHIFT N) AND THE "CURSOR UP" AND "CURSOR
"LEFT" POSITIONING KEYS. THE GRAPHIC CHARACTERS WILL BE DISPLAYED
ON THE SCREEN. THE POSITIONING KEYS ARE USED FOR EDITING.
.SKIP 2
.TEST PAGE 20
.INDENT -5
2.3  TRANSACTION ENTRY
.SKIP 2
WHEN THE USER IS SATISFIED WITH THE DATA DISPLAYED ON HIS SCREEN,
WHETHER GENERATED BY HIS TYPING, THE COMPUTER OUTPUT, OR A
COMBINATION OF THE TWO, HE CAN SEND THIS DATA TO THE COBOL
APPLICATIONS PROGRAM BY DEPRESSING THE "ESC" KEY.
VTTAM WILL ACKNOWLEGE RECEIPT OF THE TRANSACTION BY RETURNING
THE CURSOR TO THE TOP LEFT CORNER OF THE SCREEN.
THE USER
SHOULD THEN WAIT FOR A RESPONSE FROM THE APPLICATIONS PROGRAM
BEFORE ANY FURTHER TYPING.
.SKIP
SHOULD THE USER DEPRESS "ESC" WHILE A PREVIOUS ENTRY FROM HIS
TERMINAL IS PENDING, THE SECOND ENTRY WILL BE IGNORED, AND THE USER
WILL HEAR THE VT05 BELL (ACTUALLY A "BEEP" SOUND).
THE ENTIRE SCREEN IMAGE WILL THEN BE REWRITTEN AS IF
AN ILLEGAL CHARACTER HAD BEEN RECEIVED.
.SKIP 2
.TEST PAGE 20
.INDENT -5
2.4  VERIFICATION
.SKIP 2
THE USER SHOULD BE AWARE THAT THE DATA DISPLAYED ON THE VT05 SCREEN
IS A COPY OF THE DATA STORED IN THE COMPUTER CORE MEMORY, AND THAT
THIS DATA IN THE COMPUTER MEMORY IS THE DATA ACTUALLY PROCESSED
WHEN THE USER ENTERS A TRANSACTION WITH THE "ESC" KEY.
IN GENERAL, THE DATA ON THE SCREEN WILL AGREE WITH THE DATA IN CORE;
HOWEVER IF THERE WERE I/O ERRORS OR THE USER WAS TYPING DURING
OUTPUT, THERE MAY BE DIFFERENCES.
.SKIP
SHOULD THE USER HAVE ANY DOUBT ABOUT THE VALIDITY OF DATA IN CORE, HE
CAN CAUSE THIS DATA TO BE REWRITTEN ON THE SCREEN, FORCING THE
TWO COPIES TO AGREE. THIS IS DONE BY DEPRESSING THE "RUB OUT" KEY.
.SKIP
THE USER MUST THEN WAIT UNTIL THE SCREEN IS COMPLETELY
REWRITTEN AND THE CURSOR
RETURNED TO THE TOP LEFT CORNER BEFORE RESUMING TYPING.
.SKIP 2
.TEST PAGE 20
.INDENT -5
2.5  ILLEGAL CHARACTERS
.SKIP 2
SHOULD THE USER ACCIDENTALLY GENERATE AN ILLEGAL CHARACTER, SUCH
AS A CONTROL CHARACTER, AN ERROR WILL RESULT WHEN THIS CHARACTER
IS PROCESSED. AT THIS TIME THE BELL WILL RING, AND THEN THE
CRT SCREEN WILL BE REWRITTEN, JUST AS IF THE USER HAD PRESSED
"RUB OUT".
.SKIP
DUE TO MONITOR BUFFERING OF LINES, IT IS POSSIBLE THAT THE ILLEGAL
CHARACTER WILL NOT BE PROCESSED UNTIL THE USER TYPES A BREAK
CHARACTER SUCH AS "RETURN", "LINE FEED", "RUB OUT", OR "ESC".
SHOULD THIS HAPPEN, THE USER WILL HEAR THE BELL SOME
TIME AFTER HE TYPED THE ILLEGAL CHARACTER. ANY TYPING AFTER THE
ILLEGAL CHARACTER WILL BE IGNORED.
.SKIP
THE USER SHOULD WAIT FOR THE SCREEN TO BE REWRITTEN AND THE CURSOR
POSITIONED TO THE TOP LEFT, BEFORE PROCEEDING.
.SKIP 2
.TEST PAGE 20
.INDENT -5
2.6  BUFFER OVER-RUN
.SKIP 2
IF THE DECSYSTEM-10 IS OVERLOADED OR THE USER TYPES VERY RAPIDLY
IT IS POSSIBLE HE WILL OVERRUN THE VTTAM PROGRAM. IN THIS CASE,
THE MONITOR WILL MISS SOME CHARACTERS TYPED (OR SOME CURSOR
CONTROL CHARACTERS TYPED) AND THE USER WILL HEAR A BELL
EACH TIME HE PRESSES A KEY.
.SKIP
SHOULD THIS HAPPEN, THE USER SHOULD PAUSE A FEW SECONDS AND RETYPE
ALL THE CHARACTERS THAT WERE LOST. THE SCREEN WILL BE A TRUE COPY
OF WHAT WAS ACTUALLY ACCEPTED BY THE COMPUTER.
.SUBTITLE COBOL APPLICATIONS PROGRAMMING
.PAGE
.TEST PAGE 20
.INDENT -5
3.0  COBOL APPLICATIONS PROGRAMMING
.SKIP 2
A COBOL APPLICATIONS PROGRAM COMMUNICATES WITH
THE VTTAM PACKAGE VIA "ENTER MACRO" STATEMENTS.
.SKIP 2
.TEST PAGE 20
.INDENT -5
3.1  VTOPEN AND VTCLSE
.SKIP 2
TO START PROCESSING, THE APPLICATIONS PROGRAM MUST CALL VTOPEN. THIS 
WILL INITIALIZE ALL TERMINALS, ALLOW THEM TO ACCEPT INPUT, AND
DISPLAY AN INITIALIZATION MESSAGE ON EACH TERMINAL.
THIS INITIALIZATION MESSAGE INCLUDES THE TTY NUMBER OF THE
TERMINAL (ASSIGNED BY THE MONITOR), THE JOB NUMBER OF THE TERMINAL
JOB (ASSIGNED BY THE MONITOR) AND THE TERMINAL NUMBER (AS REFERENCED
BY THE APPLICATIONS PROGRAM). THE MESSAGE ALSO INCLUDES THE DATE AND
TIME.
.SKIP
THE CORRESPONDENCE BETWEEN TTY NUMBER AND TERMINAL NUMBER DEFINES
WHICH TERMINALS ARE AVAILABLE TO THE APPLICATIONS PROGRAM. SEE
SECTION  6.0 OF THIS DOCUMENT FOR DETAILS OF HOW THE MAPPING IS
ACCOMPLISHED.
.SKIP
WHEN ALL PROCESSING IS COMPLETE, THE APPLICATIONS PROGRAM SHOULD
CALL VTCLSE. THIS WILL SUSPEND ENTRY OF FURTHER TRANSACTIONS,
DISPLAY A CLOSING MESSAGE ON EACH TERMINAL, AND FACILITATE ORDERLY
SHUT DOWN OF THE SYSTEM, SHOULD THIS BE DESIRED.
.SKIP
NOTE THAT THE VTTAM SOFTWARE RUNS AS SEVERAL JOBS (1 PER TERMINAL
PLUS 1 FOR THE APPLICATIONS PROGRAM). THE VTOPEN AND VTCLSE CALLS
DO NOT LOGIN OR LOGOUT THESE JOBS. THIS IS ACCOMPLISHED VIA
COMMANDS TO EACH JOB. SEE SECTION 6.0.
.SKIP 2
.TEST PAGE 20
.INDENT -5
3.2  ERSCR
.SKIP 2
THE ERSCR ENTRY IS USED TO BLANK A SPECIFIC TERMINAL'S SCREEN.
.SKIP
CONTROL RETURNS IMMEDIATELY TO THE
APPLICATION PROGRAM UNLESS OUTPUT IS BUSY
FROM A PREVIOUS OPERATION. SEE SECTION 4.0.
.SKIP 2
.TEST PAGE 20
.INDENT -5
3.3  ERLINE
.SKIP 2
THE ERLIN ENTRY IS USED TO BLANK A SPECIFIC LINE ON A
TERMINAL'S SCREEN.
.SKIP
CONTROL RETURNS IMMEDIATELY TO THE APPLICATIONS
PROGRAM UNLESS OUTPUT IS BUSY FROM A PREVIOUS OPERATION.
.SKIP 2
.TEST PAGE 20
.INDENT -5
3.4  WRSCR
.SKIP 2
THE WRSCR ENTRY TAKES A BUFFER OF 20 LINES BY 72 CHARACTERS AND DISPLAYS
THEM ON THE VT05 SCREEN.
.SKIP
IT IS NOT NECESSARY TO ERASE THE SCREEN WITH ERSCR PRIOR TO CALLING
WRSCR.
.SKIP
CONTROL RETURNS IMMEDIATELY TO THE APPLICATIONS PROGRAM UNLESS
OUTPUT IS BUSY FROM A PREVIOUS OPERATION.
.SKIP 2
.TEST PAGE 20
.INDENT -5
3.5  WRLIN
.SKIP 2
THE WRLIN ENTRY TAKES A SINGLE 72 CHARACTER LINE AND DISPLAYS IT ON THE
APPROPRIATE LINE OF THE SELECTED TERMINAL.
.SKIP
CHARACTERS IN THE USER SUPPLIED BUFFER BEYOND THE FIRST 72, IF ANY,
ARE IGNORED.
.SKIP
CONTROL RETURNS IMMEDIATELY TO THE APPLICATIONS PROGRAM UNLESS OUTPUT
IS BUSY FROM A PREVIOUS OPERATION.
.SKIP 2
.TEST PAGE 20
.INDENT -5
3.6  VTWAIT
.SKIP 2
THE VTWAIT ENTRY IS USED TO GET THE NEXT TRANSACTION TO PROCESS.
CONTROL WILL NOT RETURN TO THE APPLICATIONS PROGRAM UNTIL SOME
USER PRESSES "ESC" ON HIS TERMINAL, OR UNLESS PREVIOUS
TRANSACTIONS WERE QUEUED.
.SKIP
THE BUFFER SUPPLIED BY THE COBOL PROGRAM IS FILLED (TRUNCATED IF
NECESSARY) WITH THE SCREEN IMAGE (20 LINES OF 72 CHARACTERS).
THE PROGRAM IS ALSO INFORMED OF THE TERMINAL NUMBER.
.SKIP
SHOULD SEVERAL USERS PRESS "ESC" FASTER THAN THE COBOL
APPLICATIONS PROGRAM CAN HANDLE TRANSACTIONS, TRANSACTIONS
ARE QUEUED ON A F.C.F.S. BASIS. A TRANSACTION IS DEQUEUED EACH TIME
VTWAIT IS CALLED.
.SKIP
EACH TERMINAL MAY HAVE ONE TRANSACTION QUEUED. THIS TRANSACTION
REMAINS QUEUED EVEN IF OUTPUT IS SUBSEQENTLY SENT TO THE
TERMINAL BEFORE VTWAIT IS CALLED. SUBSEQUENT ENTRIES FROM
THAT TERMINAL WILL BE IGNORED UNTIL THE TERMINAL IS SERVICED BY
THE APPLICATIONS PROGRAM. SEE SECTION 2.0.
.SKIP 2
.TEST PAGE 20
.INDENT -5
3.7  CALLING SEQUENCES
.SKIP 2
THE FOLLOWING ARE SAMPLE CALLING SEQUENCES TO THE VTTAM PACKAGE.
THE USER SHOULD BE CAREFUL TO ENSURE THAT ALL ARGUMENTS ARE PRESENT AND THAT THEY ARE ALL OF THE 
CORRECT TYPE (DISPLAY-6 OR COMPUTATIONAL) AND SIZE.
.SKIP 2
.LEFT MARGIN 10
.RIGHT MARGIN 60
ENTER MACRO VTOPEN.
.SKIP
ENTER MACRO VTCLSE.
.SKIP
ENTER MACRO ERSCR USING TERM-NO.
.SKIP
ENTER MACRO ERLIN USING TERM-NO,LINE-NO.
.SKIP
ENTER MACRO WRSCR USING TERM-NO, SCREEN-START, SCREEN-END.
.SKIP
ENTER MACRO WRLIN USING TERM-NO, LINE-NO, SCREEN-START, SCREEN-END.
.SKIP
ENTER MACRO VTWAIT USING TERM-NO, SCREEN-START, SCREEN-END.
.SKIP 2
TERM-NO PICTURE 9(6) COMPUTATIONAL.
.SKIP
LINE-NO PICTURE 9(6) COMPUTATIONAL.
.SKIP
01 SCREEN USAGE DISPLAY-6.
.INDENT 2
  02 SCREEN-START PICTURE X(1440).
.INDENT 2
  02 SCREEN-END PICTURE X.
.SKIP 2
.LEFT MARGIN 5
.RIGHT MARGIN 65
TERM-NO IS THE NUMBER USED BY THE COBOL PROGRAM TO SELECT A SPECIFIC
TERMINAL AVAILABLE TO THE VTTAM PACKAGE. TERMINALS ARE NUMBERED
FROM 1 TO N (THE MAXIMUM VTTAM IS ASSEMBLED FOR).
THE VTTAM INITIATION PROCEDURE DETERMINES THE MAPPING BETWEEN THESE
NUMBERS AND THE MONITOR TTY NUMBERS ACTUALLY REFERENCED.
.SKIP
TERM-NO IS USED TO SPECIFY THE TERMINAL ON ERSCR, ERLIN, WRSCR, WRLIN 
CALLS AS WELL AS TO INDICATE WHICH TERMINAL IS REQUESTING SERVICE ON
VTWAIT CALLS.
.SKIP 2
LINE-NO IS THE NUMBAPPLICATIONS PROGRAM CAN HANDLE TRANSACTIONS, TRANSACTIONS
ARE QUEUED ON A F.C.F.S. BASIS. A TRANSACTION IS DEQUEUED EACH TIME
VTWAIT IS CALLED.
.SKIP
EACH TERMINAL MAY HAVE ONE TRANSACTION QUEUED. THIS TRANSACTION
REMAINS QUEUED EVEN IF OUTPUT IS SUBSEQENTLY SENT TO THE
TERMINAL BEFORE VTWAIT IS CALLED. SUBSEQUENT ENTRIES FROM
THAT TERMINAL WILL BE IGNORED UNTIL THE TERMINAL IS SERVICED BY
THE APPLICATIONS PROGRAM. SEE SECTION 2.0.
.SKIP 2
.TEST PAGE 20
.INDENT -5
3.7  CALLING SEQUENCES
.SKIP 2
THE FOLLOWING ARE SAMPLE CALLING SEQUENCES TO THE VTTAM PACKAGE.
THE USER SHOULD BE CAREFUL TO ENSURE THAT ALL ARGUMENTS ARE PRESENT AND THAT THEY ARE ALL OF THE 
CORRECT TYPE (DISPLAY-6 OR COMPUTATIONAL) AND SIZE.
.SKIP 2
.LEFT MARGIN 10
.RIGHT MARGIN 60
ENTER MACRO VTOPEN.
.SKIP
ENTER MACRO VTCLSE.
.SKIP
ENTER MACRO ERSCR USING TERM-NO.
.SKIP
ENTER MACRO ERLIN USING TERM-NO,LINE-NO.
.SKIP
ENTER MACRO WRSCR USING TERM-NO, SCREEN-START, SCREEN-END.
.SKIP
ENTER MACRO WRLIN USING TERM-NO, LINE-NO, SCREEN-START, SCREEN-END.
.SKIP
ENTER MACRO VTWAIT USING TERM-NO, SCREEN-START, SCREEN-END.
.SKIP 2
TERM-NO PICTURE 9(6) COMPUTATIONAL.
.SKIP
LINE-NO PICTURE 9(6) COMPUTATIONAL.
.SKIP
01 SCREEN USAGE DISPLAY-6.
.INDENT 2
  02 SCREEN-START PICTURE X(1440).
.INDENT 2
  02 SCREEN-END PICTURE X.
.SKIP 2
.LEFT MARGIN 5
.RIGHT MARGIN 65
TERM-NO IS THE NUMBER USED BY THE COBOL PROGRAM TO SELECT A SPECIFIC
TERMINAL AVAILABLE TO THE VTTAM PACKAGE. TERMINALS ARE NUMBERED
FROM 1 TO N (THE MAXIMUM VTTAM IS ASSEMBLED FOR).
THE VTTAM INITIATION PROCEDURE DETERMINES THE MAPPING BETWEEN THESE
NUMBERS AND THE MONITOR TTY NUMBERS ACTUALLY REFERENCED.
.SKIP
TERM-NO IS USED TO SPECIFY THE TERMINAL ON ERSCR, ERLIN, WRSCR, WRLIN 
CALLS AS WELL AS TO INDICATE WHICH TERMINAL IS REQUESTING SERVICE ON
VTWAIT CALLS.
.SKIP 2
LINE-NO IS THE NUMBER USED TO REFER TO A SPECIFIC LINE ON A
CRT SCREEN. IT MUST BE FROM 1 TO 20. LINE-NO IS USED ON
ERLIN AND WRLIN CALLS.
.SKIP 2
SCREEN IS A BUFFER AREA USED TO HOLD INPUT OR OUTPUT BETWEEN
THE COBOL PROGRAM AND VTTAM. ORDINARILY THE USER WOULD SPECIFY
SEPERATE AREAS FOR INPUT AND OUTPUT, BUT THIS IS NOT REQUIRED.
IF SCREEN IS NOT AN 01 LEVEL RECORD, IT MUST BE SYNCHRONIZED.
.SKIP
SCREEN-START IS THE ACTUAL AREA HOLDING THE VT05 SCREEN IMAGE.
.SKIP
SCREEN-END IS A DUMMY FIELD USED TO INDICATE THE END OF SCREEN.
.SKIP
SHOULD THE BUFFER BE SHORTER THAN 1440 CHARACTERS, THE EXCESS IS
TRUNCATED ON INPUT, AND TREATED AS BLANKS ON OUTPUT.
.SUBTITLE BUFFERING CONSIDERATIONS
.PAGE
.TEST PAGE 20
.INDENT -5
4.0  BUFFERING CONSIDERATIONS
.SKIP 2
IN ADDITION TO ANY 01 LEVEL RECORDS SPECIFIED BY THE COBOL
PROGRAM VTTAM INCLUDES THE FOLLOWING BUFFERS:
.LEFT MARGIN 10
.RIGHT MARGIN 60
1 COMMON INPUT BUFFER
.BREAK
1 COMMON OUTPUT BUFFER
.BREAK
1 SCREEN BUFFER PER TERMINAL
.BREAK
1 HOLD BUFFER PER TERMINAL
.LEFT MARGIN 5
.RIGHT MARGIN 65
.SKIP 2
.TEST PAGE 20
.INDENT -5
4.1  OUTPUT BUFFERING
.SKIP 2
ON AN OUTPUT CALL (ERSCR, ERLIN, WRSCR, OR WRLIN) THE STATUS OF
THE COMMON OUTPUT BUFFER IS CHECKED. IF IT IS FULL, THE APPLICATIONS
PROGRAM IS BLOCKED UNTIL IT IS EMPTIED BY A TERMINAL PROGRAM.
IF IT IS EMPTY, THE OUTPUT DATA IS PUT IN THE COMMON OUTPUT BUFFER AND
THE APPROPRIATE TERMINAL PROGRAM ACTIVATED.
.SKIP
THE TERMINAL PROGRAM CHECKS FOR ANY OUTPUT I/O IN PROGRESS.
WHEN ALL OUTPUT IS COMPLETED,
IT COPIES THE DATA IN THE COMMON OUTPUT BUFFER
TO THE TERMINAL'S SCREEN BUFFER AND RELEASES
THE COMMON OUTPUT BUFFER. AT THIS
POINT THE APPLICATIONS PROGRAM IS UNBLOCKED IF NECESSARY.
.SKIP
NORMALLY, WHEN AN APPLICATIONS PROGRAM DOES AN OUTPUT,
CONTROL WILL RETURN IMMEDIATELY. HOWEVER A BRIEF WAIT MAY BE
NEEDED IF DATA FROM A PREVIOUS CALL HAS TO BE COPIED FROM THE
COMMON OUTPUT BUFFER TO THAT TERMINAL'S SCREEN BUFFER.
.SKIP
A LONG WAIT OCCURS IF A SECOND OUTPUT CALL TO A
SPECFIC TERMINAL IS ISSUED, BEFORE THE
I/O
FROM THE FIRST CALL CAN BE FINISHED.
THEREFORE THE PREFERED WAY TO OUTPUT MANY
SCREEN LOADS TO SEVERAL TERMINALS IS ROUND-ROBIN.
.SKIP
ORDINARILY, OUTPUTS TO A TERMINAL
WILL BE ISSUED BY THE APPLICATIONS PROGRAM
IN RESPONSE TO TRANSACTIONS FROM THE SAME TERMINAL.
IN THIS CASE, IT IS VERY LIKELY THAT ANY PREVIOUS OUTPUT IS
COMPLETE. THERE SHOULD BE FEW CASES WHERE OUTPUT TO A TERMINAL BLOCKS
THE APPLICATIONS PROGRAM FOR A SIGNIFICANT PERIOD OF TIME.
.SKIP 2
.TEST PAGE 20
.INDENT -5
4.2  INPUT BUFFERING
.SKIP 2
WHEN A USER PRESSES THE "ESC" KEY, THE ASSOCIATED VTTAM TERMINAL
JOB CHECKS TO SEE IF THE COMMON INPUT BUFFER IS FREE. IF SO, THE
CURRENT CONTENTS OF THAT USER'S SCREEN BUFFER ARE COPIED DIRECTLY TO
THE COMMON INPUT BUFFER. THE APPLICATIONS PROGRAM IS THEN AWAKENED
IN CASE IT WAS BLOCKED.
.SKIP
IF THE INPUT BUFFER IS BUSY, THE CURRENT CONTENTS OF THE
SCREEN BUFFER ARE COPIED TO THE USER'S HOLD BUFFER AND A REQUEST
FOR THE COMMON INPUT BUFFER IS ENTERED IN A QUEUE.
.SKIP
WHEN THE COBOL APPLICATIONS PROGRAM CALLS VTWAIT, THE VTTAM
SOFTWARE CHECKS FOR A FULL COMMON INPUT BUFFER. IF THE
COMMON INPUT BUFFER IS FULL, VTTAM COPIES THE DATA TO THE
USER BUFFER SPECIFIED BY THE CALL. BEFORE RETURNING CONTROL TO
THE APPLICATIONS PROGRAM, VTTAM CHECKS FOR ANY TERMINALS BLOCKED
WAITING FOR THE COMMON INPUT BUFFER. IF THERE ARE NONE, THE
INPUT BUFFER IS FREED. IF THERE ARE SOME, THE INPUT BUFFER
IS ASSIGNED TO THE FIRST TERMINAL REQUESTING IT, AND THE ASSOCIATED
JOB AWOKEN. THAT TERMINAL JOB WOULD THEN COPY ITS
HOLD BUFFER INTO THE COMMON INPUT BUFFER IN PREPARATION FOR
THE NEXT CALL TO VTWAIT.
.SKIP
IF THERE HAD BEEN NO TRANSACTION IN THE COMMON INPUT BUFFER
AT THE TIME VTWAIT WAS CALLED, THE APPLICATIONS PROGRAM WOULD
HAVE BEEN BLOCKED. IT WOULD BE AWOKEN WHEN THE INPUT BUFFER WAS
FILLED BY THE NEXT TRANSACTION ENTERED BY A USER.
.SKIP
THE SINGLE COMMON INPUT BUFFER IS A COMPROMISE BETWEEN CORE SIZE
AND EFFECIENCY. THE TRADE-OFF CHOSEN WAS BASED ON THE ASSUMPTION
OF A RELATIVELY LOW TRANSACTION RATE, A HIGH PREMIUM ON CORE
SIZE, AND A RELATIVELY LONG TRANSACTION PROCESSING TIME.
.SKIP
REGARDLESS OF THE VTTAM TRANSACTION LOAD,
A SINGLE BUFFER WILL 
ENSURE MAXIMUM EFFECIENCY SO LONG AS THE TERMINAL JOBS CAN REFILL
IT FROM THEIR HOLD BUFFERS IN LESS TIME THAN IT TAKES
THE APPLICATION PROGRAM TO PROCESS A TRANSACTION. THIS WILL
USUALLY BE THE CASE, SINCE THE COPYING OPERATION
IS RAPID, AND THE TYPICAL APPLICATIONS PROGRAM MAKES SEVERAL
DISK FILE I/O ACCESSES WHILE PROCESSING A TRANSACTION.
.SUBTITLE JOB STRUCTURE
.PAGE
.TEST PAGE 20
.INDENT -5
5.0 JOB STRUCTURE
.SKIP 2
IF THERE ARE N TERMINALS COMMUNICATING WITH A SINGLE APPLICATIONS
PROGRAM VIA VTTAM, THEN VTTAM WILL USE N+1 JOBS IN THE PDP-10
TIMESHARING MONITOR.
.SKIP
THERE WILL BE ONE MASTER JOB WHICH CONSISTS OF THE COBOL APPLICATIONS
PROGRAM AND THE ASSOCIATED VTTAM ROUTINES. THIS JOB DOES ALL THE
APPLICATIONS PROCESSING ON A TRANSACTION BASIS ON INPUT, OR
A SCREEN BASIS ON OUTPUT.
.SKIP
THERE IS A SMALL VTTAM JOB ASSOCIATED WITH EACH
VT05 TERMINAL. THIS JOB PERFORMS ALL LINE AT A TIME I/O TO ITS
TERMINAL VIA THE PDP-10 MONITOR. THE MONITOR TAKES CARE OF THE
ASSEMBLY OF CHARACTERS INTO LINES, ECHOING, ETC.
.SKIP
THE TERMINAL JOB ACCEPTS INCOMING CHARACTERS AND INTERPRETS THEIR
EFFECT ON THE VT05 SCREEN. CURSOR POSITIONING CHARACTERS AFFECT
COUNTERS IN THE TERMINAL JOB, WHILE GRAPHIC CHARACTERS AFFECT THE
CONTENTS OF THE SCREEN BUFFER. THE SCREEN BUFFER IS KEPT IN
STEP WITH THE DATA DISPLAYED ON THE VT05 SCREEN.
.SKIP
ON OUTPUT, THE TERMINAL JOB DUMPS THE SCREEN BUFFER TO THE VT05,
PASSING A LINE AT A TIME TO THE MONITOR. THE TERMINAL JOB OPTIMIZES
I/O BY SUPRESSING TRAILING BLANKS AND SKIPPING BLANK LINES.
.SKIP
THE TERMINAL JOBS COMMUNICATE WITH THE MASTER JOB VIA A SHARED 
HIGH-SEGMENT. THIS SEGMENT INCLUDES A SHARED INPUT
AND OUTPUT BUFFER, INTER JOB COMMUNICATION FLAGS, AND THE NECESSARY
INTERLOCKS AND QUEUEING MECHANISMS TO ENSURE ORDERLY
INTERJOB COMMUNICATION AND PROPER CONTENTION FOR THE
SHARED INPUT BUFFER.
THE SHARED SEGMENT ALSO INCLUDES VTTAM CODE COMMON TO BOTH THE
TERMINAL AND MASTER JOBS.
.SKIP
THE READER IS REFERRED TO SECTION 7.0 FOR INSTRUCTIONS ON HOW
TO BUILD THE VTTAM SOFTWARE. THE READER IS REFERED TO SECTION 6.0
FOR INSTRUCTIONS ON HOW TO BRING UP AND TERMINATE THE N + 1 JOBS.
.SUBTITLE INITIALIZATION AND TERMINATION
.PAGE
.TEST PAGE 20
.INDENT -5
6.0  INITIATION AND TERMINATION
.SKIP 2
THE PURPOSE OF THIS SECTION IS TO EXPLAIN HOW TO INITIALIZE 
AND TERMINATE A FIXED NUMBER OF JOBS RUNNING UNDER VTTAM. 
THE PROCEDURE TO FOLLOW IS EXTREMLY SIMPLE AND CONSISTS OF 
BUILDING TWO AUTO COMMAND FILES FOR USE UNDER OPSER, ONE FOR 
INITIATION AND ONE FOR TERMINATION.
.SKIP 2
.INDENT -5
6.1 INITIATION EXAMPLE
.SKIP 2
THE FOLLOWING IS AN EXAMPLE OF AN INITIATION FILE REFFERED TO AS 
VTBEG.ATO IN THE FOLLOWING DOCUMENTATION.
.SKIP 2
.LEFT MARGIN 10
:SLOGIN 1,2
.BREAK
:SILENCE
.BREAK
:DEFINE MAST=
.BREAK
:SET TTY TTY1:SLAVE
.BREAK
:SET TTY TTY2:SLAVE
.BREAK
:ASSIGN TTY1
.BREAK
:ASSIGN TTY2
.BREAK
:SET TTY TTY1:NO CRLF
.BREAK
:SET TTY TTY2:NO CRLF
.BREAK
:SET TTY TTY1:TAB
.BREAK
:SET TTY TTY2:TAB
.BREAK
:SET TTY TTY1:FORM
.BREAK
:SET TTY TTY2:FORM
.BREAK
:SET TTY TTY1:NO FILL
.BREAK
:SET TTY TTY2:NO FILL
.BREAK
:SLOGIN 30,1526
.BREAK
:SILENCE
.BREAK
:DEFINE TTY1=
.BREAK
:SLOGIN 30,1526
.BREAK
:SILENCE
.BREAK
:DEFINE TTY2=
.BREAK
MAST-DEASIGN TTY1
.BREAK
TTY1-ASSIGN TTY1 VTTERM
.BREAK
MAST-DEASIGN TTY2
.BREAK
TTY2-ASSIGN TTY2 VTTERM
.BREAK
TTY1-ASSIGN DSK SYS
.BREAK
TTY2-ASSIGN DSK SYS
.BREAK
TTY1-RUN VTSLVE
.BREAK
TTY2-RUN VTSLVE
.BREAK
TTY1-1
.BREAK
TTY2-2
.BREAK
:KJOB MAST
.BREAK
:REVIVE ALL
.PAGE
.TEST PAGE 20
.INDENT -5
6.2 TERMINATION EXAMPLE
.SKIP 2
THE FOLLOWING IS AN EXAMPLE OF A TERMINATION FILE REFFERED TO AS VTEND.ATO 
IN THE FOLLOWING DOCUMENTATION.
.SKIP 2
.LEFT MARGIN 10
:SILENCE ALL
.BREAK
:KJOB TTY1
.BREAK
:KJOB TTY2
.BREAK
:SLOGIN 1,2
.BREAK
:SILENCE
.BREAK
:DEFINE MAST=
.BREAK
:ASSIGN TTY1
.BREAK
:ASSIGN TTY2
.BREAK
:SET TTY TTY1:CRLF
.BREAK
:SET TTY TTY2:CRLF
.BREAK
:SET TTY TTY1:NO SLAVE
.BREAK
:SET TTY TTY2:NO SLAVE
.BREAK
:KJOB MAST
.BREAK
:REVIVE ALL
.SKIP 2
.INDENT -5
6.3 SYSTEM STARTUP
.SKIP 2
ONCE THE VTTAM SYSTEM HAS BEEN GENERATED (SEE SECTION 7.0) THE SLAVE
 TERMINALS CAN BE STARTED BY THE OPERATOR AS FOLLOWS: 
.SKIP 2
.INDENT 5
R OPSER
.INDENT 5
:AUTO VTBEG.ATO
.SKIP 2
NOW THAT THE SLAVE TERMINALS HAVE BEEN 
BROUGHT UP THE MASTER TERMINAL MUST BE STARTED, THIS CAN BE DONE IN ONE 
OF TWO WAYS; 1) INCLUDE COMMANDS IN THE ORGINAL OPSER FILE (VTBEG.ATO) OR 2) LOGIN ON THE MASTER TERMINAL AND RUN THE MASTER PROGRAM 
(IN OUR EXAMPLE RUN VTTEST).
.SKIP 2
.INDENT -5
6.4 SYSTEM TERMINATION.
.SKIP 2
THE PROCEDURE TO SHUT DOWN THE SYSTEM SHOULD BE AS FOLLOWS:
.SKIP 1
.INDENT 5
1) SHUTDOWN THE MASTER PROGRAM FIRST BY 
EITHER INCLUDING COMMANDS IN THE TERMINATION FILE (VTEND.ATO) OR 
BY THE USE OF THE KJOB COMMAND.
.SKIP 1
.INDENT 5
2) SHUTDOWN THE SLAVE TERMINALS BY ENTERING THE FOLLOWING COMMAND 
TO OPSER:
.SKIP 1
.INDENT 5
:AUTO VTEND.ATO
.SKIP 1
WHEN THIS AUTO COMMAND FILE COMPLETES EXECUTION UNDER OPSER YOUR 
SYSTEM SHOULD BE COMPLETELY SHUTDOWN.
.SUBTITLE ASSEMBLY AND LOADING
.PAGE
.TEST PAGE 20
.INDENT -5
7.0  ASSEMBLY AND LOADING
.SKIP 2
THE PURPOSE OF THIS SECTION IS TO EXPLAIN HOW TO GENERATE A RUNNABLE 
VTTAM SYSTEM. THE PROCEDURE IS VERY SIMPLE AND CONSISTS OF ASSEMBLYING 
THE VTTAM MODULES, COMPILING THE COBOL MASTER PROGRAM, AND 
THEN LINKING THE PROPER MODULES TOGETHER TO FORM A COMPLETE VTTAM 
SYSTEM.
.SKIP 2
THIS ENTIRE PROCEDURE IS ACCOMPLISHED THROUGH THE USE OF A BATCH 
CONTROL FILE (VTMAKE.CTL) CONTAINED ON THE VTTAM RELEASE TAPE. 
 IN ORDER TO GENERATE A COMPLETE VTTAM SYSTEM ENTER THE FOLLOWING 
COMMAND TO THE SYSTEM:
.SKIP
.INDENT 5
Q INP:VTTAM=VTMAKE.CTL
.SKIP
UPON COMPLETION OF THIS CONTROL FILE A COMPLETE VTTAM SYSTEM WILL 
HAVE BEEN GENERATED.
.SUBTITLE  DESIGN GOALS
.PAGE
.INDENT-5
8.0  VTTAM SOFTWARE DESIGN GOALS
.SKIP 2
1.  OPERATE WITH LOCAL OR REMOTE TERMINALS
.SKIP
2.  ALLOW ONE COBOL JOB TO TALK TO MANY VT05 TERMINALS
.SKIP
3.  BE LARGELY COMPATABLE WITH EXISTING 2260 ORIENTED PACKAGES
.SKIP
4.  USER INTERFACE SIMILAR TO 2260 BUFFERED CRT
.SKIP
5.  BE RELATIVELY FREE FROM ERRATIC OPERATION OR TIMING PROBLEMS
.SKIP
6.  HIDE ANY MEDIOCRE SYSTEM RESPONSE FROM USERS IF POSSIBLE
.SKIP
7.  REDUCE SYSTEM LOAD AS MUCH AS POSSIBLE
.SKIP
8.  REQUIRE A MINIMUM OF MONITOR CHANGES
.SKIP
9.  REQUIRE A MINIMUM OF REMOTE CONCENTRATOR SUPPORT
.SKIP
10. USE SIMPLE, MINIMAL CODING
.LEFT MARGIN 5
.SUBTITLE ENVIRONMENT
.PAGE
.INDENT -5
9.0  VTTAM ENVIRONMENT
.SKIP 2
VTTAM RUNS ON A DECSYSTEM 10 WITH 5 SERIES MONITOR AND THE TWO SEGMENT
CAPABILITY. THE CRT TERMINALS MUST BE VT05 OR EQUIVALENT.
OTHER TERMINALS MAY WORK, BUT WILL PROBABLY REQUIRE MODIFICATIONS
TO VTTAM CODING.
.SKIP 2
.INDENT -5
9.1  STANDARD 5 SERIES MONITOR FEATURES REQUIRED BY VTTAM
.LEFT MARGIN 10
.SKIP
500 MODE TELETYPE INPUT AND ECHOING
.BREAK
TTY SLAVE COMMAND
.BREAK
TTY FORM COMMAND
.BREAK
TTY NOCRLF COMMAND
.BREAK
TTY TAB COMMAND
.BREAK
HIBER UUO
.BREAK
WAKE UUO
.SKIP 2
.LEFT MARGIN 5
.INDENT -5
9.2  SPECIAL (NEW) FEATURES NEEDED BY VTTAM BUT NOT YET IN 5 SERIES
MONITORS
.SKIP
.LEFT MARGIN 10
TTCALL 11, TO AN ARBITRARY TERMINAL
.BREAK
TTCALL 7, TO AN ARBITRARY TERMINAL