C PROGRAM QUESTION.FT C -------------- C C SUBROUTINE QUESTION(IPATTERN,INSTANCE,IRESULT) C C C C C C P.LEMKIN C NATIONAL INSTUTUTES OF HEALTH C BETHESDA, MD 20014 C C C AUGUST 12, 1976 C C PURPOSE C ------- C TEST FOR THE OCCURANCE OF "?" CHARACTERS IN THE FILENAME C IPATTERN[1:4]. IF A ? IS FOUND (IN THE 6-BIT DATA) THEN SWAP ITS C CORRESPONDING CHARACTER FROM INSTANCE. RETURN THE MODIFIED C IPATTERN IN IRESULT. C C THAT IS: C C FOR I= 1 TO 8 DO C IF IPATTERN[I]="?" THEN IRESULT[I]=INSTANCE[I] C ELSE IRESULT[I]=IPATTERN[I]; C C C .COMPILE QUESTION.RL < QUESTION.FT C C C [1] READ IN IPATTERN, INSTANCE 2 CHARACTERS/TIME C AND DO ?- AND -? TESTS DO 100 I=1,4 IRESULT=IPATTERN C C [1.1] TEST LEFT CHAR S TAD I \IPATTERN S AND (7700 S TAD (-7700 / "?@" S SZA CLA S JMP NOQ1 C C [1.1.1] FOUND ?, SO REPLACE WITH CORRESPONDING CHAR IN INSTANCE S TAD I \INSTANCE S AND (7700 S DCA 20 S TAD I \IRESULT S AND (0077 S TAD 20 S DCA I \IRESULT C C [1.2] TEST RIGHT CHAR S NOQ1, TAD I \IPATTERN S AND (0077 S TAD (-0077 / "?@" S SZA CLA S JMP NOQ2 C C [1.2.1] FOUND ?, SO REPLACE WITH CORRESPONDING CHAR IN INSTANCE S TAD I \INSTANCE S AND (0077 S DCA 20 S TAD I \IRESULT S AND (7700 S TAD 20 S DCA I \IRESULT C C [1.3] INCREMENT POINTERS S NOQ2, INC \IPATTERN# S INC \INSTANCE# S INC \IRESULT# 100 CONTINUE RETURN END