/ / / / / / / / / / /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 ASCII /THIS PROGRAM PACKS AND MOVES ASCII ANSWERS TO THE ASCII ANSWER /TABLE. IT THEN SETS ASCPTR TO THE NEXT AVAILABLE ENTRY, AND /INSERTS A POINTER TO THE CURRENT ANSWER IN ANSWER TABLE. .FSECT ASCII .ENTRY ASC .EXTERNAL TABLE1,PACK8,TTYPTR,ANSPTR,TTTY,UNPACK,TASCI,QUES .EXTERNAL ASCPTR,TEMP1,MOVE,IQUES,ASCPTR .EXTERNAL DEFLT,DFLT,DFPTR,MOV,PCKPTR,PCK,ERR1 ASC, 0 CLA TAD F1 RDF CDF .FLD DCA ASC20 /SETUP FOR RETURN CDF TABLE1 TAD I F2 DCA 10 /SET AUTOINDEX TO POINT TO TTY BUFFER TAD I 10 TAD F3 SNA JMP ASC1 /CHECK FOR CARRIAGE RETURN /INDICATING DEFAULT DESIRED JMP ASC12 /GO CHECK FOR ALPHANUMERIC ANSWER ASC2, CDF .FLD CIF PCK JMS I SUB ASC4, TTTY-1 /CALL PACK8 TO PACK ASCII UNPACK-1 /ANSWER IN UNPACK TABLE /SOURCE BUFFER IS TTY /TARGET BUFFER IS UNPACK WORK AREA CDF TABLE1 TAD I F4 DCA I F5 TAD I F6 TAD I F7 DCA 11 TAD I F10 DCA I 11 /GET POINTER TO CURRENT QUESTION /AND STORE IN ANSWER TABLE TAD I F4 DCA ASC3 /RESTORE CURRENT POINTER FOR # FUNCTION CDF .FLD CIF MOV JMS I MOVER /CALL MOVE TO DEPOSIT PACKED /ANSWER IN ASCII ANSWER TABLE UNPACK-1 ASC3, TASCI-1 /PASS PARAMETER TO POINT TO ASCII TABLE /SOURCE BUFFER IS UNPACK WORK AREA /TARGET BUFFER IS ASCII ANSWER TABLE CDF TABLE1 TAD ASC3 DCA I F11 /CHANGE ASCPTR TO POINT TO NEXT /AVAILABLE ENTRY ASC20, 0 JMP I ASC /RETURN TO MAIN ASC1, CDF .FLD /HERE WHEN DEFAULT ANSWER REQUIRED CIF DFLT JMS I FAULT CLA CDF TABLE1 TAD I F12 DCA 11 /POINT TO TTY BUFFER TAD I F13 DCA 10 /GET POINTER TO UNPACK WHERE ( OCCURS ASC10, TAD I 10 TAD F14 /SEE IF END OF DEFAULT SNA JMP ASC11 TAD F15 DCA I 11 JMP ASC10 /CONTINUE TO MOVE TO TTY BUFFER UNTIL ) DETECTED ASC11, TAD F16 DCA I 11 /INCLUDE CR. TO SIGNAL END OF DEFAULT ENTRY JMP ASC2 /USE DFLT TO GET STARTING /ADDRESS OF DEFAULT ANSWER /IN TABLE TOVER. THEN GO /MOVE IT TO ASCII ANSWER TABLE. ASC12, CLA TAD F17 TAD 10 DCA 10 /BACKUP TO BEGINNING OF USER RESPONSE ASC14, TAD I 10 TAD F20 SNA /CARRIAGE RETURN INDICATES END OF USER RESPONSE JMP ASC2 /ANSWER IS ALPHANUMERIC. GO STORE IT TAD F21 SPA JMP ERR55 /NOT ALPHANUMERIC IF LESS THAN 260 TAD F22 SMA JMP ERR55 /NOT ALPHANUMERIC IF GREATER THAN 332 TAD F23 SPA JMP ASC13 /CHECK IF LESS THAN 272 TAD F24 SPA JMP ERR55 /IF NOT LESS THAN 273, MUST BE EQUAL OR /GREATER THAN 301 ASC13, CLA JMP ASC14 /CONTINUE TEST UNTIL END OF USER RESPONSE ERR55, CDF TABLE1 ISZ I F25 /SET IQUES TO MAINTAIN USER QUESTION NUMBER /CONSTANT CLA TAD F26 /GET ERROR NUMBER CDF .FLD CIF ERR1 JMS I ASC15 /GO TO ERROR TO OUTPUT ERROR MESSAGE 1 /SET ERROR PARAMETER TO RETURN TO CURRENT /QUESTION SUB, PCK MOVER, MOV FAULT, DFLT ASC15,ERR1 /LINK TO ERROR ROUTINE. F1, CIF CDF F2, TTYPTR F3, -215 F4, ASCPTR F5, TEMP1 F6, QUES F7, ANSPTR F10, TEMP1 F11, ASCPTR F12, TTYPTR F13, DFPTR F14, -251 F15, 251 F16, 215 F17, -1 F20, -215 F21, 215-260 F22, 260-333 F23, 333-272 F24, 272-301 F25, IQUES F26, 55