$DEBUG PAGELENGTH(55) /*********************/ /* */ /* E X $ A T T R I B*/ /* */ /*********************/ M$EX$ATTRIB: DO; $NOLIST $INCLUDE(COMMON.DCL) $INCLUDE(ISIS.DCL) $INCLUDE(:F1:ISISIO.DCL) $LIST GET$FNAME: PROCEDURE(NAME$P,TYPE,WILDCARD,NULLNAME,EXTPNT) EXTERNAL; DECLARE NAME$P ADDRESS, TYPE BYTE, WILDCARD BOOLEAN, NULLNAME BOOLEAN, EXTPNT BOOLEAN; END GET$FNAME; SWITCH: PROCEDURE(YESNO$P,MSG$P) EXTERNAL; DECLARE (YESNO$P,MSG$P) ADDRESS; END; DECLARE MSG$FILL$IN(1) BYTE EXTERNAL; DECLARE MSG$OPTIONS(1) BYTE EXTERNAL; $INCLUDE(STRING.DCL) EX$ATTRIB: PROCEDURE (COM$LINE$P,COM$TYPE$P) PUBLIC; DECLARE COM$LINE$P ADDRESS, COM$TYPE$P ADDRESS; DECLARE (COM$LINE BASED COM$LINE$P) STRING, (COM$TYPE BASED COM$TYPE$P) BYTE; DECLARE NAME STRUCTURE( ML ADDRESS, L ADDRESS, D(15) BYTE ); DECLARE SWITCHES(9) STRUCTURE( ML ADDRESS, L ADDRESS, D(4) BYTE ) DATA ( 3,3,' I0',0, 3,3,' I1',0, 3,3,' W0',0, 3,3,' W1',0, 3,3,' F0',0, 3,3,' F1',0, 3,3,' S0',0, 3,3,' S1',0, 3,3,' Q ',0 ); DECLARE YESNO STRUCTURE( L BYTE, D(9) BYTE ); DECLARE COMP1 STRUCTURE( ML ADDRESS, L ADDRESS, D(8) BYTE ) DATA (7,7,'ATTRIB ',0); DECLARE COMP3 STRUCTURE( ML ADDRESS, L ADDRESS, D(3) BYTE ) DATA (2,2,CR,LF,0); DECLARE CONSOL$LINE$I ADDRESS; DECLARE I BYTE; DECLARE MSG1(*) BYTE DATA( LF, ' --- CHANGE/DISPLAY FILE ATTRIBUTES---',CR,LF, ' FILE NAME ',CR,LF, ' ..............', 0); DECLARE MSG2(*) BYTE DATA( C$LFT,C$LFT,C$LFT,C$LFT, C$LFT,C$LFT,C$LFT,C$LFT, C$LFT,C$LFT,C$LFT,C$LFT, C$LFT,C$LFT, 0); DECLARE MSG4(*) BYTE DATA( 'Invisible file : OFF',CR,LF, 'Invisible file : ON',CR,LF, 'Write protect : OFF',CR,LF, 'Write protect : ON',CR,LF, 'Format file : OFF',CR,LF, 'Format file : ON',CR,LF, 'System file : OFF',CR,LF, 'System file : ON',CR,LF, 'Query ( ask for o.k. ) before each change',CR,LF, 0); YESNO.L=9; DO I=0 TO 8; YESNO.D(I)=0; END; CALL MSG$OUT(.MSG$FILL$IN); CALL MSG$OUT(.MSG1); CALL MSG$OUT(.MSG2); COM$LINE.L=0; CALL APPEND$S(.COM$LINE,.COMP1); CALL GET$FNAME(.NAME,1,TRUE,FALSE,FALSE); CALL APPEND$S(.COM$LINE,.NAME); CALL MSG$OUT(.MSG$OPTIONS); IF UPPER(CI)='Y' THEN DO; CALL MSG$OUT(.(CLR$LIN,CR,0)); CALL SWITCH(.YESNO,.MSG4); END; DO I=0 TO YESNO.L-1; IF YESNO.D(I)=1 THEN CALL APPEND$S(.COM$LINE,.SWITCHES(I)); END; CALL APPEND$S(.COM$LINE,.COMP3); CALL MSG$OUT(.(CLR$SCRN,0)); COM$TYPE=1; END EX$ATTRIB; END M$EX$ATTRIB;