.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