/ / / / / / / / / / /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 INSERT SUBROUTINE /THIS ROUTINE PERFORMS THE INSERTION OF VARIABLE DATA INTO THE DUMMY /PASS 3 RECORDS. .ENTRY IN .RSECT INSER .EXTERNAL ANSPTR,TABLE1,QUES,CQUES .EXTERNAL SIZ,QUEPTR,EQUES,CLR,UNP1,TOVER,TQUES .EXTERNAL SYSPTR,UNPACK,TSYS,PCKPTR,PCK,OVRPTR,RECLOC / /CALLING SEQUENCE: / / AC CONTAINS POINTER TO ANSWER / / CDF .FLD / CIF IN / JMS SUB / ARG1 / ARG2 / . / . / / . /SUB,IN / /WHERE: / ARG1-DISPLACEMENT INTO UNPACKED RECORD / ARG2-NUMBER OF CHARACTERS TO BE INSERTED (IF 0 CONCATENATE STRING) / / /AC=MINUS ONE UPON RETURN IF NO ANSWER. /AC=RESULTANT LENGTH UPON RETURN / IN, 0 DCA IN1 /SAVE NONZERO POINTER AS CALL ARGUMENT TAD I IN DCA IN10 /SAVE ARG1 AS DISPLACEMENT ISZ IN TAD I IN DCA IN11 /SAVE ARG2 AS NUMBER OF CHARACTERS TO BE INSERTED ISZ IN /BYPASS ARG2 TAD (CDF CIF) RDF DCA IN100 /SETUP FOR RETURN STA TAD IN1 SNA JMP IN30 IAC SNA CLA JMP IN3 /CHECK IF PASSED PARAMETER IS POINTER OR FLAG CDF .FLD CIF UNP1 JMS I IN2 IN1, TSYS-1 /ARGUMENT FOR SOURCE BIFFER UNPACK-1 /POINTING TO CURRENT TASK 2 /TARGET BUFFER CDF TABLE1 /TWO PASSES (6 CHARACTERS) TAD IN11 SZA CLA STA /ACCOUNT FOR ZEROTH CHARACTER TAD QUEPTR TAD IN10 DCA 13 /POINT TO TQUES TABLE TAD PCKPTR /PLUS DISPLACEMENT DCA 14 /POINT TO UNPACK TABLE TAD I 14 SNA JMP IN3 /FIRST ENTRY MUST BE NON-ZERO DCA I 13 TAD (-5 DCA IN4 IN5, TAD I 14 DCA I 13 /MOVE 5 MORE CHARACTERS ISZ IN4 JMP IN5 TAD IN11 SZA CLA JMP IN7 /CHECK FOR A CONCATINATION TAD IN10 TAD (6 /RETURN RESULTANT LENGTH IN THE AC IN100, 0 JMP I IN /RETURN IN3, STA JMP IN100 /SET AC TO MINUS ONE IF ANSWER ENTRY IS ZERO IN7, TAD IN1 TAD (4 DCA 14 TAD I 14 JMP IN100 /WHERE DISPLACEMENT ARGUMENT IS NON-ZERO, /ANSWER DELIMITER IS RETURNED IN THE AC IN2,UNP1 /LINK TO UNPACK ROUTINE IN4,0 /COUNTER FOR 5-WORD MOVE LOOP IN6,SIZ IN10, 0 /STORAGE FOR INSERT DISPLACEMENT IN11,0 /STORAGE FOR ARG2. (NUMBER OF CHARACTERS) IN30, CDF TABLE1 TAD QUEPTR TAD IN10 /POINT TO END OF EQUATE IN TQUES BUFFER DCA 13 TAD (261 DCA I 13 /STORE A ASCII ONE AT END OF RECORD DCA I 13 /ENSURE ZERO FILL TAD (2 TAD IN10 /RETURN RESULTANT LENGTH OF STRING IN THE AC JMP IN100 /RETURN