TRANSACTION PROCESSOR (T/P) -V7- 27-FEB-74 GEORGE H. NEWTON DIGITAL EQUIPMENT CORPORATION DEC DATA CENTER TECHNICAL SUPPORT PK3-2 25-E EXT: 3673 THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ACTUAL DISTRIBUTION OF THE SOFTWARE DESCRIBED IN THIS DOCUMENT WILL BE SUBJECT TO TERMS AND CONDITIONS TO BE ANNOUNCED AT SOME FUTURE DATE BY DIGITAL EQUIPMENT CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL EQUIPMENT CORPORATION. ALTHOUGH THIS PROGRAM HAS BEEN TESTED BY THE AUTHOR, NO WARRANTY, EXPRESS OR IMPLIED, IS MADE BY THE AUTHOR OR DIGITAL EQUIPMENT CORPORATION AS TO THE ACCURACY OR FUNCTIONING OF THE PROGRAM OR RELATED PROGRAM MATERIAL, AND NO RESPONSIBILITY IS ASSUMED BY THESE PARTIES IN CONNECTION THEREWITH. THIS SOFTWARE IS FURNISHED TO THE PURCHASER UNDER AN AGREEMENT TO USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION OF DIGITAL EQUIPMENT CORPORATION'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL EQUIPMENT CORPORATION. A.) WHAT IS T/P? T/P IS A MACRO-10 PROGRAM, WHICH WHEN LOADED WITH A CUSTOM WRITTEN COBOL PROGRAM LOW-SEGMENT WILL ALLOW 'NN' TERMINALS TO 'TALK' TO THE PROGRAM. B.) HOW DOES T/P WORK? THE TERMINAL USER DOES NOT LOG-IN, HE DOES A (.SET TTY PAGE NN) T/P, RECOGNIZING THIS FLAG, 'SLAVES' THE TERMINAL CLEARS HIS 'GAG' BIT, AND ADDS HIM TO THE T/P TTY TABLE. WHEN ONE OF THE TERMINALS IN T/P'S TTY TABLE COMPLETES A LINE, T/P GRABS THE TERMINAL ON CHANNEL 14, TAKES THE MESSAGE, AND THEN RELEASES THE TERMINAL. THE COBOL PROGRAMS LOGICAL-TTY-NUMBER IS THEN CHANGED TO REFLECT THE TERMINAL WE JUST GOT THE MESSAGE FROM, AND CONTROL IS THEN RETURNED TO THE COBOL PROGRAM. WHEN THE COBOL PROGRAM HAS COMPLETED PROCESSING THE TRANSACTION, HE RETURNS CONTROL TO T/P; PASSING ARGUMENTS WHICH CONTAIN LINE-COUNTER (0-N) LINES, ADDRESS OF FIRST RETURNED LINE, ETC. T/P FIRST ALTERS THE ADDRESS OF THIS LOGICAL TTY IN THE COBOL PROGRAM DISPATCHER (GO TO DEPENDING ON - - ), SO WHEN THIS TTY RETURNS, HE WILL CONTINUE PROCESSING AT HIS NEXT LOGICAL INSTRUCTION. THE RETURNED MESSAGE(S) ARE NOW PLACED IN THE TERMINALS TTY BUFFER (AFTER INIT ON CH14) WITH TRAILING SPACES REMOVED, ADDING ; WITH OVERFLOW CHARACTERS PLACED IN T/P'S BUFFER FOR TYPING LATER. T/P THEN LOOKS FOR THE NEXT TERMINAL WITH A LINE. C.) T/P FEATURES - - 1.) MASTER TERMINAL FUNCTIONS: (#) SLAVES CONNECTED NN (S)LAVE LIST (LISTS WHO IS ON & FOR HOW LONG) (H)ELP TELLS HOW TO USE MASTER FUNCTIONS (K)ILL REMOVE ALL TERMINALS & GO TO COBOL PROGRAM WRAP-UP ROUTINE (REQUIRES CONFIRM). 2.) LOCK & HPQ - - T/P ATTEMPTS TO LOCK HIS LOW-SEGMENT, AND RUN UNDER HPQ 1, AFTER HE HAS FOUND HIS FIRST TERMINAL; IF HE FINDS HE HAS NO TERMINALS LEFT HE WILL UNLOCK, AND HPQ 0. 3.) SEARCHING FOR NEW TERMINALS - - T/P SEARCHES FOR HIS FIRST TERMINAL EVERY 5 SECONDS (SLEEPING IN BETWEEN) AFTER HE FINDS HIS FIRST TERMINAL, HE SEARCHES EVERY 3 SECONDS FOR THE NEXT 30 MINUTES, THEN EVERY 30 SECONDS. THIS APPROACH ALLOWS FOR FAST PICK-UP OF NEW TERMINALS AT THE BEGINNING OF THE DAY OR AFTER A CRASH. 4.) SLEEPING - - IF T/P MAKES A COMPLETE PASS OF HIS TTY TABLE AND FINDS NO ACTIVITY, HE WILL SLEEP FOR 1 SECOND, AND IF HE DOES 30 1 SECOND SLEEPS WITHOUT ANY ACTIVITY, HE THEN SLEEPS FOR 5 SECOND INTERVALS. 5.) NAME CHANGE - - EVERY TIME A TERMINAL IS ADDED TO OR REMOVED FROM T/P'S TTY TABLE, HE CHANGES THE PROGRAM NAME TO REFLECT THE NUMBER OF TERMINALS IN HIS POOL. THE NAME TAKES THE FORM XXX### WHERE XXX IS A FIXED NAME ASSEMBLED INTO T/P, AND ### IS THE RIGHT JUSTIFIED, LEFT ZERO FILLED NUMBER OF TERMINALS CONNECTED. CHANGING THE NAME AIDS IN THE MONITORING OF THE PROGRAM VIA SYSTAT ETC. 6.) CONTROL-C (^C) - - IF THE TERMINAL USER TYPES A ^C, T/P WILL SEE IT IN THE INPUT STRING, AND WILL RETURN THE TERMINAL USER TO A PREDETERMINED ^C ROUTINE IN THE COBOL PROGRAM. 7.) MORE-TO-COME (SWITCH) - - THE COBOL PROGRAM MAY REQUEST T/P TO RETURN A TERMINALS CONTROL TO IT WITHOUT THE USER TYPING A LINE. THIS IS USEFULL WHEN THE PROGRAM MAY WANT TO TYPE MORE LINES OF DATA THAN HE BUILT T/P'S BUFFERS TO HOLD. D.) WHY USE T/P? 1.) LESS JOBS REQUIRED TO DO THE SAME WORK. THE MONITOR MAY BE REDUCED IN SIZE BY 20 - 30 JOBS @ 300 WORDS/JOB = 6K - 9K THE SWAPPING AND SCHEDULING LOADS ON THE MONITOR WILL BE REDUCED. LESS DDB'S 2.) LESS USER CORE - - SINCE THERE IS ONLY 1 LOW-SEGMENT FOR 'NN' USERS THERE IS A SIGNIFICANT SAVINGS OF CORE OVER A RE-ENTRANT VERSION OF THE SAME PROGRAM. 3.) LESS SYSTEM HACKING - - THE USER DOES NOT LOGIN, WHICH WILL REDUCE THE USE OF GAMES ETC. E.) WHEN TO USE T/P - - T/P SHOULD BE SELECTED FOR USE BASED ON SOME VARIABLES 1.) THE NUMBER OF USERS A PROGRAM MAY HAVE AT ONE TIME. IF THIS NUMBER IS LESS THAN ABOUT 5 - 10, A RE-ENTRANT VERSION OF THE PROGRAM MAY BE BETTER. IF THIS NUMBER IS GREATER THAN 5 - 10, T/P MAY BE THE BETTER CHOICE. 2.) THE NUMBER OF AND BUFFER SIZE OF FILES. SINCE THE FILES AND BUFFERS ARE REQUIRED FOR EACH COPY OF A REENTRANT VERSION, THE MORE OF THEM AND THE LARGER THEY ARE, THE BETTER ALTERNATIVE T/P BECOMES.