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 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ TONY LAUCK JULY 2,1971 REVISED JULY 1,1972 THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS COMMITTMENT BY DIGITAL EQUIPMENT CORPORATION. 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. vttam documentation PAGE 2 GENERAL 1.0 GENERAL OVERVIEW 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. 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". 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. 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. 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. 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. vttam documentation PAGE 3 USER FUNCTIONS 2.0 USER FUNCTIONS 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. 2.1 COMPUTER GENERATED OUTPUT 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. 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. 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. 2.2 EDITING 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.) 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. 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. vttam documentation PAGE 4 USER FUNCTIONS 2.3 TRANSACTION ENTRY 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. 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. 2.4 VERIFICATION 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. 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. THE USER MUST THEN WAIT UNTIL THE SCREEN IS COMPLETELY REWRITTEN AND THE CURSOR RETURNED TO THE TOP LEFT CORNER BEFORE RESUMING TYPING. vttam documentation PAGE 5 USER FUNCTIONS 2.5 ILLEGAL CHARACTERS 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". 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. THE USER SHOULD WAIT FOR THE SCREEN TO BE REWRITTEN AND THE CURSOR POSITIONED TO THE TOP LEFT, BEFORE PROCEEDING. 2.6 BUFFER OVER-RUN 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. 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. vttam documentation PAGE 6 COBOL APPLICATIONS PROGRAMMING 3.0 COBOL APPLICATIONS PROGRAMMING A COBOL APPLICATIONS PROGRAM COMMUNICATES WITH THE VTTAM PACKAGE VIA "ENTER MACRO" STATEMENTS. 3.1 VTOPEN AND VTCLSE 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. 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. 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. 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. vttam documentation PAGE 7 COBOL APPLICATIONS PROGRAMMING 3.2 ERSCR THE ERSCR ENTRY IS USED TO BLANK A SPECIFIC TERMINAL'S SCREEN. CONTROL RETURNS IMMEDIATELY TO THE APPLICATION PROGRAM UNLESS OUTPUT IS BUSY FROM A PREVIOUS OPERATION. SEE SECTION 4.0. 3.3 ERLINE THE ERLIN ENTRY IS USED TO BLANK A SPECIFIC LINE ON A TERMINAL'S SCREEN. CONTROL RETURNS IMMEDIATELY TO THE APPLICATIONS PROGRAM UNLESS OUTPUT IS BUSY FROM A PREVIOUS OPERATION. 3.4 WRSCR THE WRSCR ENTRY TAKES A BUFFER OF 20 LINES BY 72 CHARACTERS AND DISPLAYS THEM ON THE VT05 SCREEN. IT IS NOT NECESSARY TO ERASE THE SCREEN WITH ERSCR PRIOR TO CALLING WRSCR. CONTROL RETURNS IMMEDIATELY TO THE APPLICATIONS PROGRAM UNLESS OUTPUT IS BUSY FROM A PREVIOUS OPERATION. vttam documentation PAGE 8 COBOL APPLICATIONS PROGRAMMING 3.5 WRLIN THE WRLIN ENTRY TAKES A SINGLE 72 CHARACTER LINE AND DISPLAYS IT ON THE APPROPRIATE LINE OF THE SELECTED TERMINAL. CHARACTERS IN THE USER SUPPLIED BUFFER BEYOND THE FIRST 72, IF ANY, ARE IGNORED. CONTROL RETURNS IMMEDIATELY TO THE APPLICATIONS PROGRAM UNLESS OUTPUT IS BUSY FROM A PREVIOUS OPERATION. 3.6 VTWAIT 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. 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. 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. 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. vttam documentation PAGE 9 COBOL APPLICATIONS PROGRAMMING 3.7 CALLING SEQUENCES 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. ENTER MACRO VTOPEN. ENTER MACRO VTCLSE. ENTER MACRO ERSCR USING TERM-NO. ENTER MACRO ERLIN USING TERM-NO,LINE-NO. ENTER MACRO WRSCR USING TERM-NO, SCREEN-START, SCREEN-END. ENTER MACRO WRLIN USING TERM-NO, LINE-NO, SCREEN-START, SCREEN-END. ENTER MACRO VTWAIT USING TERM-NO, SCREEN-START, SCREEN-END. TERM-NO PICTURE 9(6) COMPUTATIONAL. LINE-NO PICTURE 9(6) COMPUTATIONAL. 01 SCREEN USAGE DISPLAY-6. 02 SCREEN-START PICTURE X(1440). 02 SCREEN-END PICTURE X. 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. 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. 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. vttam documentation PAGE 10 COBOL APPLICATIONS PROGRAMMING 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. 3.7 CALLING SEQUENCES 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. ENTER MACRO VTOPEN. ENTER MACRO VTCLSE. ENTER MACRO ERSCR USING TERM-NO. ENTER MACRO ERLIN USING TERM-NO,LINE-NO. ENTER MACRO WRSCR USING TERM-NO, SCREEN-START, SCREEN-END. ENTER MACRO WRLIN USING TERM-NO, LINE-NO, SCREEN-START, SCREEN-END. ENTER MACRO VTWAIT USING TERM-NO, SCREEN-START, SCREEN-END. TERM-NO PICTURE 9(6) COMPUTATIONAL. LINE-NO PICTURE 9(6) COMPUTATIONAL. 01 SCREEN USAGE DISPLAY-6. 02 SCREEN-START PICTURE X(1440). 02 SCREEN-END PICTURE X. 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. TERM-NO IS USED TO SPECIFY THE TERMINAL ON ERSCR, ERLIN, WRSCR, WRLIN CALLS AS WELL AS TO INDICATE WHICH TERMINAL IS vttam documentation PAGE 11 COBOL APPLICATIONS PROGRAMMING REQUESTING SERVICE ON VTWAIT CALLS. 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. 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. SCREEN-START IS THE ACTUAL AREA HOLDING THE VT05 SCREEN IMAGE. SCREEN-END IS A DUMMY FIELD USED TO INDICATE THE END OF SCREEN. SHOULD THE BUFFER BE SHORTER THAN 1440 CHARACTERS, THE EXCESS IS TRUNCATED ON INPUT, AND TREATED AS BLANKS ON OUTPUT. vttam documentation PAGE 12 BUFFERING CONSIDERATIONS 4.0 BUFFERING CONSIDERATIONS IN ADDITION TO ANY 01 LEVEL RECORDS SPECIFIED BY THE COBOL PROGRAM VTTAM INCLUDES THE FOLLOWING BUFFERS: 1 COMMON INPUT BUFFER 1 COMMON OUTPUT BUFFER 1 SCREEN BUFFER PER TERMINAL 1 HOLD BUFFER PER TERMINAL 4.1 OUTPUT BUFFERING 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. 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. 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. 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. 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. vttam documentation PAGE 13 BUFFERING CONSIDERATIONS 4.2 INPUT BUFFERING 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. 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. 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. 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. 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. 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. vttam documentation PAGE 14 JOB STRUCTURE 5.0 JOB STRUCTURE 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. 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. 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. 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. 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. 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. 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. vttam documentation PAGE 15 INITIALIZATION AND TERMINATION 6.0 INITIATION AND TERMINATION 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. 6.1 INITIATION EXAMPLE THE FOLLOWING IS AN EXAMPLE OF AN INITIATION FILE REFFERED TO AS VTBEG.ATO IN THE FOLLOWING DOCUMENTATION. :SLOGIN 1,2 :SILENCE :DEFINE MAST= :SET TTY TTY1:SLAVE :SET TTY TTY2:SLAVE :ASSIGN TTY1 :ASSIGN TTY2 :SET TTY TTY1:NO CRLF :SET TTY TTY2:NO CRLF :SET TTY TTY1:TAB :SET TTY TTY2:TAB :SET TTY TTY1:FORM :SET TTY TTY2:FORM :SET TTY TTY1:NO FILL :SET TTY TTY2:NO FILL :SLOGIN 30,1526 :SILENCE :DEFINE TTY1= :SLOGIN 30,1526 :SILENCE :DEFINE TTY2= MAST-DEASIGN TTY1 TTY1-ASSIGN TTY1 VTTERM MAST-DEASIGN TTY2 TTY2-ASSIGN TTY2 VTTERM TTY1-ASSIGN DSK SYS TTY2-ASSIGN DSK SYS TTY1-RUN VTSLVE TTY2-RUN VTSLVE TTY1-1 TTY2-2 :KJOB MAST :REVIVE ALL vttam documentation PAGE 16 INITIALIZATION AND TERMINATION 6.2 TERMINATION EXAMPLE THE FOLLOWING IS AN EXAMPLE OF A TERMINATION FILE REFFERED TO AS VTEND.ATO IN THE FOLLOWING DOCUMENTATION. :SILENCE ALL :KJOB TTY1 :KJOB TTY2 :SLOGIN 1,2 :SILENCE :DEFINE MAST= :ASSIGN TTY1 :ASSIGN TTY2 :SET TTY TTY1:CRLF :SET TTY TTY2:CRLF :SET TTY TTY1:NO SLAVE :SET TTY TTY2:NO SLAVE :KJOB MAST :REVIVE ALL 6.3 SYSTEM STARTUP ONCE THE VTTAM SYSTEM HAS BEEN GENERATED (SEE SECTION 7.0) THE SLAVE TERMINALS CAN BE STARTED BY THE OPERATOR AS FOLLOWS: R OPSER :AUTO VTBEG.ATO 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). 6.4 SYSTEM TERMINATION. THE PROCEDURE TO SHUT DOWN THE SYSTEM SHOULD BE AS FOLLOWS: 1) SHUTDOWN THE MASTER PROGRAM FIRST BY EITHER INCLUDING COMMANDS IN THE TERMINATION FILE (VTEND.ATO) OR BY THE USE OF THE KJOB COMMAND. vttam documentation PAGE 17 INITIALIZATION AND TERMINATION 2) SHUTDOWN THE SLAVE TERMINALS BY ENTERING THE FOLLOWING COMMAND TO OPSER: :AUTO VTEND.ATO WHEN THIS AUTO COMMAND FILE COMPLETES EXECUTION UNDER OPSER YOUR SYSTEM SHOULD BE COMPLETELY SHUTDOWN. vttam documentation PAGE 18 ASSEMBLY AND LOADING 7.0 ASSEMBLY AND LOADING 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. 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: Q INP:VTTAM=VTMAKE.CTL UPON COMPLETION OF THIS CONTROL FILE A COMPLETE VTTAM SYSTEM WILL HAVE BEEN GENERATED. vttam documentation PAGE 19 DESIGN GOALS 8.0 VTTAM SOFTWARE DESIGN GOALS 1. OPERATE WITH LOCAL OR REMOTE TERMINALS 2. ALLOW ONE COBOL JOB TO TALK TO MANY VT05 TERMINALS 3. BE LARGELY COMPATABLE WITH EXISTING 2260 ORIENTED PACKAGES 4. USER INTERFACE SIMILAR TO 2260 BUFFERED CRT 5. BE RELATIVELY FREE FROM ERRATIC OPERATION OR TIMING PROBLEMS 6. HIDE ANY MEDIOCRE SYSTEM RESPONSE FROM USERS IF POSSIBLE 7. REDUCE SYSTEM LOAD AS MUCH AS POSSIBLE 8. REQUIRE A MINIMUM OF MONITOR CHANGES 9. REQUIRE A MINIMUM OF REMOTE CONCENTRATOR SUPPORT 10. USE SIMPLE, MINIMAL CODING vttam documentation PAGE 20 ENVIRONMENT 9.0 VTTAM ENVIRONMENT 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. 9.1 STANDARD 5 SERIES MONITOR FEATURES REQUIRED BY VTTAM 500 MODE TELETYPE INPUT AND ECHOING TTY SLAVE COMMAND TTY FORM COMMAND TTY NOCRLF COMMAND TTY TAB COMMAND HIBER UUO WAKE UUO 9.2 SPECIAL (NEW) FEATURES NEEDED BY VTTAM BUT NOT YET IN 5 SERIES MONITORS TTCALL 11, TO AN ARBITRARY TERMINAL TTCALL 7, TO AN ARBITRARY TERMINAL