/ / / / / / / / / / /COPYRIGHT (C) 1978,1979 BY DIGITAL EQUIPMENT CORPORATION / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / /VERSION=1 / .TITLE SUBROUTINE TGDEFH.MA /THIS IS A MULTIPLE ENTRY SPECIAL SERVICE ROUTINE THAT HANDLES /THE VARIOUS CONTROL FILE ENTRIES FOR THE TTY MULTIPLE /PARAMETER TASK. IT USES EITHER YESNO OR OCTDEC TO CREATE THE /ENTRIES INTO THE ANSWER TABLE, AND MODIFIES SYSNUM TO POINT /AT THE CORRECT ENTRY IN THE CONTROL FILE AREA OF TANS. .RSECT TGDEFH .ENTRY TG .ENTRY TE .ENTRY TF .ENTRY TH .ENTRY TM .ENTRY TO .EXTERNAL TABLE1,OFLAG,TTYPTR,YESN,OCTD,OCTDEC,YESNO,TTALLY,ERR1 .EXTERNAL UQ,TTYIO,QUES,TYPE,DIRLOC,ANSPTR,MAIN12,TTYFLG,IQUES,TQES FIELD 1 TG, 0 /HERE FOR TTY NUL QUESTION CLA TAD TG DCA RET /SETUP RETURN TAD (5 DCA TTYC1 /ESTABLISH DISPLACEMENT IN CONTROL /FILE FOR NULL QUESTION JMP TTYC3 /GO TO COMMON ENTRY FOR /OCTDEC QUESTION TE, 0 /HERE FOR VT50 QUESTION (CNTLS/Q) CLA TAD TE DCA RET /SETUP RETURN TAD (3 DCA TTYC1 /ESTABLISH DISPLACEMENT JMP TTYC2 /GO TO COMMON Y/N ENTRY TF, 0 /HERE FOR SCOPE QUESTION CLA TAD TF DCA RET /SETUP RETURN TAD (4 DCA TTYC1 /ESTABLISH DISPLACEMENT JMP TTYC2 /GO TO COMMON Y/N ENTRY TH, 0 CLA TAD TH DCA RET /SETUP RETURN TAD (6 DCA TTYC1 /ESTABLISH DISPLACEMENT JMP TTYC2 /DO NOT SET OFLAG IF DECIMAL ANSWER TM, 0 /HERE FOR HARDWARE TABS QUESTION CLA TAD TM DCA RET /SETUP FOR RETURN TAD (7 DCA TTYC1 /GET DISPLACEMENT INTO CONTROL FILE /FOR THIS PARAMETER JMP TTYC2 /GO TO COMMON ENTRY FOR Y/N TO, 0 /HERE TO HANDLE TTY READ TIMEOUT PARAMETER CLA TAD TO DCA RET /SETUP FOR RETURN TAD (10 DCA TTYC1 JMP TTYC2 /DECIMAL ANSWER EXPECTED TTYC2, TAD (CIF CDF) RDF DCA TTYC20 JMP TTYC4 /SETUP FIELD FOR RETURN TTYC3, TAD (CIF CDF) RDF DCA TTYC20 /SETUP FIELD FOR RETURN CDF TABLE1 ISZ OFLAG /SET THE OFLAG (OCTAL ANSWER) TTYC4, CDF TABLE1 TAD OFLAG SZA JMP TTYC6 /SETUP FOR OCTDEC CALL TAD TTYC1 TAD (-6 /CHECK FOR DECIMAL ANSWER SNA JMP TTYC6 /IF DECIMAL ANSWER CALL OCTDEC TAD (6-10 SNA JMP TTYC6 /DECIMAL ANSWER EXPECTED JMP TTYC5 /YES/NO ANSWER EXPECTED TTYC1,0 /CURRENT CONTROL FILE DISPLACEMENT PAGE TTYC5, CLA CDF .FLD TAD TTYC7 DCA TTYC16 TAD TTYC22 DCA TTYC17 /GET THE CORRECT JMS AND /CDF-CIF FOR CALL TO YES/NO /AND DEPOSIT IN CALL CODE JMP TTYC12 /JUMP AROUND OCTDEC CALL /SETUP CODE TTYC6, CLA TAD OFLAG CDF .FLD DCA OFG /SET INTERNAL OCTAL FLAG IF OFLAG IS SET TAD TTYC10 DCA TTYC16 TAD TTYC24 DCA TTYC17 /GET JMS AND CDF-CIF FOR CALL /TO OCTDEC AND DEPOSIT IN /CALL CODE. TTYC12, TAD TTYC41 DCA TTYC40 DCA TTYC61 CDF TABLE1 TAD TTALLY CIA DCA TTYC13 /GET NUMBER OF CONTROL FILES /REQUIRED AND SAVE TAD QUES DCA TQES /SETUP FOR T-TYPE OCTAL/DECIMAL ANSWER TAD (317 DCA TYPE /SIMULATE TYPE O RECORD TO GET USER NUMBER CDF .FLD CIF UQ JMS I TTYC42 /GO GET USER NUMBER CDF .FLD CIF TTYIO JMS I TTYC43 /OUTPUT THE QUESTION CLA CDF TABLE1 TAD QUES CDF .FLD DCA ER110 /USE EXCESS THREE FEATURE FOR QUESTION RETURN JMP TTYC15 /GO TO NEXT PAGE TTYC21, CDF TABLE1 CLA TAD DIRLOC TAD (3 DCA DIRLOC /BYPASS CORRESPONDING REMARK CLA DCA OFLAG /RESET THE OCTAL ANSWER FLAG TTYC20, 0 JMP I RET RET, 0 /? TTYC13, 0 /? OF CONTROL FILES (TWO'S /COMPLIMENT) TTYC42,UQ /LINK TO UQUES ROUTINE TTYC43,TTYIO /LINK TO TTYDVR ROUTINE TTYC15, CDF .FLD TAD TTYC13 DCA TTYC25 /GET NO OF CONTROL FILES TAD TTYC1 DCA TTYC27 /GET CONTROL FILE ENTRY DISPLACEMENT CDF TABLE1 TAD TTYPTR DCA 16 /POINT TO TTY BUFFER TAD I 16 TAD (-277 /? RESPONSE SNA JMP TTYC50 TAD (277-243 /# RESPONSE SNA JMP TTYC50 TAD (243-215 SZA CLA JMP TTYC63 TAD QUES DCA TQES /SETUP FOR T-TYPE ANSWER CDF .FLD ISZ TTYC61 CDF TABLE1 JMP TTYC30 /IF DEFAULT BYPASS COMMA SEARCH PAGE TTYC63, TAD TTYPTR DCA 16 TAD TTYFLG SNA CLA JMP TTYC30 /AVOID COMMA SEARCH IF NO CONTROL FILES TTYC33, TAD I 16 SNA JMP ERR110 /NOT ENOUGH ENTRIES IF ZER0 BEFORE COMMA TAD (-254 SZA CLA JMP TTYC33 /POINT 16 AT FIRST COMMA + 1 STA TAD 16 DCA 16 TAD (215 DCA I 16 /INSERT CR AT END OF CURRENT ANSWER TAD QUES DCA TQES /SETUP FOR TYPE T OCTAL/DECIMAL CALL TTYC30, CLA TAD OFG DCA OFLAG CDF .FLD TTYC17, 0 /CALCULATED CIF TTYC16, 0 /CALCULATED JMS /GO TO EITHER OCTDEC OR YESNO /TO DEPOSIT FIRST ANSWER /IN NORMAL FASHION. SUBSEQUENT /ANSWERS ARE ENTERED INTO /CONTROL FILES. CDF TABLE1 CLA TTYC40, TAD BASE1 TAD TTYC27 DCA TQES /GET (CONTROL FILE BASE + DISPLACEMENT) /CHANGE ANSWER TABLE ENTRY ISZ TTYC40 /POINT TO NEXT BASE FOR NEXT PASS ISZ TTYC25 /INCREMENT NO CONTROL FILES SKP JMP TTYC26 /GET OUT WHEN ALL ENTRIES MADE TAD TTYFLG SNA CLA JMP TTYC26 /NO CONTROL FILES NECESSARY, IF TTYFLG /IS RESET TAD TTYPTR DCA 15 /INITIALIZE 15 TO POINT AT BEGINNING /OF TTY IN BUFFER TAD TTYC61 SZA JMP TTYC30 /CHECK FOR INTERNAL DEFAULT FLAG TTYC52, TAD I 16 SNA JMP ERR110 /CHECK FOR CORRECT NUMBER OF ENTRIES TAD (-254 SNA /NEXT COMMA? JMP TTYC31 TAD (254-215) SNA JMP TTYC31 /CARRIAGE RETURN TAD (215 DCA I 15 /EACH CONTROL FILE REPLY SHOULD /BE DELIMITED BY EITHER A /COMMA OR A CARRIAGE RETURN JMP TTYC52 /CONTINUE UNTIL ALL ANSWERS PROCESSED TTYC31, CLA TAD (215 DCA I 15 /INSERT CR AFTER CURRENT ANSWER TAD 16 TAD (-2 DCA 16 /BACKUP TO CHARACTER PRECEDING DELIMITER TAD I 16 TAD (-254 SNA JMP ERR110 /TWO LEGAL DELIMITERS TOGETHER IS ILLEGAL TAD (254-215 SNA CLA JMP ERR110 /SAME FOR COMMA-CR COMBINATION IAC TAD 16 DCA 16 /RESTORE AUTOINDEX JMP TTYC30 /GO INSERT INTO ANSWER TABLES TTYC26, CDF .FLD TAD TTYC41 DCA TTYC40 /INITIALIZE BASE FOR POSSIBLE NEXT PASS JMP TTYC21 /DONE, GO TO EXIT. TTYC25, 0 /NUMBER OF CONTROL FILES TTYC27, 0 /ON PAGE CURRENT DISPLACEMENT /IN CONTROL FILE BASE1, 700 /START OF TTY2 CONTROL FILE BASE2, 715 /START OF TTY3 CONTROL FILE BASE3, 730 /START OF TTY4 CONTROL FILE BASE4, 745 ERR110, CLA /NOT ENOUGH ANSWER FOR NO. /CONTROL FILES ISZ IQUES DCA TTYC61 DCA OFLAG /RESET SOME FLAGS CDF .FLD TAD TTYC41 DCA TTYC40 /REINITIALIZE CALCULATED TAD TAD (110 CIF ERR1 JMS I RETU ER110, 1 /OUTPUT ERROR MESSAGE AND RETURN TO QUESTION RETU,ERR1 /LINK TO ERROR ROUTINE TTYC41,TAD BASE1 TTYC50, CLA CDF TABLE1 DCA OFLAG /RESET OFLAG CIF MAIN12 JMP I TTYC51 /HERE FOR # OR ? RESPONSE TTYC61,0 /COUNTER FOR DEFAULT LOOP TTYC51,MAIN12 /MAIN ENTRY TO AVOID RECORD OUTPUT TTYC7, JMS I YN /CALL TO YESNO TTYC10, JMS I OD /CALL TO OCTDEC YN, YESN /POINTER TO YESNO OD, OCTD /POINTER TO OCTDEC. TTYC22, CIF YESN /FIELD OF YESNO TTYC24, CIF OCTD /FIELD OF OCTDEC OFG,0 /INTERNAL OCTAL FLAG