$DEBUG PAGELENGTH(50) /*****************/ /* */ /* S W I T C H */ /* */ /*****************/ M$SWITCH: DO; $NOLIST $INCLUDE (COMMON.DCL) $INCLUDE(ISIS.DCL) $INCLUDE(:F1:ISISIO.DCL) $INCLUDE(STRING.DCL) $LIST /****************************************************/ /* */ /* PROCEDURE NAME - SWITCH */ /* */ /* FUNCTION - PROMPT FOR SWITCHES ( YES / NO */ /* PARAMETERS ) , WITH DEFAULT */ /* OPTION. */ /* */ /* INPUT - YESNO$P : ADDRESS, POINTER TO A */ /* STRUCTURE WHICH CONTAINS : */ /* 1. THE NUMBER OF SWITCHES, BYTE. */ /* 2. AN ARRAY OF BYTES WITH THE */ /* VALUES : 0 - DEFAULT 'NO' */ /* 1 - DEFAULT 'YES' */ /* 2 - NO DEFAULT */ /* MSG$P - A POINTER TO A MESSAGE TO BE */ /* DISPLAYED. THE MESSAGE MUST */ /* CONTAIN ONE LINE FOR EVERY */ /* SWITCH. */ /* */ /* OUTPUT - THE STRUCTURE POINTED BY YESNO$P, WITH */ /* VALUES UPDATED. */ /* */ /* LAST UPDATED - 26.5.82 DROR */ /* */ /****************************************************/ SWITCH: PROCEDURE (YESNO$P,MSG$P) PUBLIC; DECLARE MSG$P ADDRESS, YESNO$P ADDRESS; DECLARE (MSG BASED MSG$P) (1) BYTE; DECLARE (YESNO BASED YESNO$P) STRUCTURE( L BYTE, D(1) BYTE) ; DECLARE MSG1(*) BYTE DATA( CLR$EOS, LF, 'DIRECTIONS: 1. Read the choices listed below.',CR,LF, ' 2. Type RETURN for default option,',CR,LF, ' ''Y'' for YES,',CR,LF, ' ''N'' for NO.',CR,LF, ' 3. Type ''D'' if you want all options unchanged.',CR,LF, '----------------------------------------', '----------------------------------------', 0); DECLARE (K,J,I,CHAR) BYTE, OK BOOLEAN; CALL MSG$OUT(.MSG1); I,J,K=0; DO WHILE KCR) ; CALL CO(MSG(I)); J=J+1; I=I+1; END; CALL CO(' '); DO J=J TO 68; CALL CO('.'); END; CALL CO(' '); IF YESNO.D(K)=0 THEN CALL CO('N'); IF YESNO.D(K)=1 THEN CALL CO('Y'); IF YESNO.D(K)=2 THEN CALL CO(' '); K=K+1; IF K'D') AND (I2)) THEN CALL MSG$OUT(.(LF,0)); ELSE IF NOT (UPPER(CHAR)='D') THEN DO; OK=FALSE; CALL CO(BELL); END; END; I=I+1; END; DO WHILE I