%SYSTEMROUTINESPEC CONNECT(%STRING(31) FILE,%INTEGER MODE,HOLE,PROT, %C %RECORDNAME R,%INTEGERNAME FLAG) %EXTERNALROUTINESPEC DESTROY(%STRING(255)S ) %EXTERNALROUTINESPEC CLEAR(%STRING(255) S) %EXTERNALROUTINESPEC NEWSMFILE(%STRING(63) S) %SYSTEMROUTINESPEC PSYSMES(%INTEGER ROOT,FLAG) %EXTERNALINTEGERFNSPEC SEARCHFILE(%STRINGARRAYNAME DEFFILES, %C %STRING(32) FILE) %EXTERNALROUTINE PCLEAR(%STRING(255) S) %INTEGER FLAG %RECORDFORMAT RF(%INTEGER CONAD,TYPE,START,END) %RECORD PFILES(RF) CONNECT('T#PFILES',2,0,0,PFILES,FLAG) %IF FLAG=0 %THEN DESTROY ('T#PFILES') CLEAR("") %END ! %EXTERNALROUTINE PDEFINE(%STRING(255) S) %RECORDFORMAT RF(%INTEGER CONAD,TYPE,START,END) %RECORD PFILES(RF) %STRING(32) %ARRAYFORMAT FILFMT(1:64) %STRINGARRAYNAME DEFFILES %INTEGER INDEX,I,FLAG,BLANK %STRING(32) PFILE,EFILE %ON %EVENT 7 %START PRINTSTRING('INCORRECT ARGUMENT TO PDEFINE') NEWLINE %RETURN %FINISH CONNECT("T#PFILES",2,0,0,PFILES,FLAG) !?3 PRINTSTRING('FLAG = ') !?3 WRITE(FLAG,4) !?3 NEWLINE %IF FLAG#0 %THENSTART %IF S="?" %THENSTART PRINTSTRING('NO PASCAL FILES DEFINED') NEWLINE %RETURN %FINISH NEWSMFILE("T#PFILES,4160") CONNECT("T#PFILES",2,0,0,PFILES,FLAG) DEFFILES==ARRAY(PFILES_CONAD,FILFMT) %CYCLE I=1,1,64 DEFFILES(I)="" %REPEAT %FINISHELSE DEFFILES==ARRAY(PFILES_CONAD,FILFMT) %IF S="?" %THENSTART PRINTSTRING('PASCAL FILE EMAS FILE') NEWLINE %CYCLE I=1,1,32 %IF DEFFILES(I)#"" %THENSTART PRINTSTRING(DEFFILES(I)) BLANK=16-LENGTH(DEFFILES(I)) %IF BLANK>0 %THEN SPACES(BLANK) PRINTSTRING(DEFFILES(I+32)) NEWLINE %FINISH %REPEAT %RETURN %FINISH S->PFILE.(",").EFILE INDEX=SEARCHFILE(DEFFILES,PFILE) %IF INDEX=0 %THEN PSYSMES(98,165) %AND %RETURN ! !?2 PRINTSTRING('INDEX = ') !?2 WRITE(INDEX,4) !?2 NEWLINE ! DEFFILES(INDEX)=PFILE DEFFILES(INDEX+32)=EFILE %END; ! PDEFINE %ENDOFFILE