$DEBUG PAGELENGTH(55) /***********************/ /* */ /* E X $ H D B A C K */ /* */ /***********************/ M$EX$HDBACK: DO; $NOLIST $INCLUDE(COMMON.DCL) $INCLUDE(ISIS.DCL) $INCLUDE(:F1:ISISIO.DCL) $INCLUDE(STRING.DCL) $LIST DECLARE MSG$FILL$IN(1) BYTE EXTERNAL; DECLARE MSG$BEWARE(1) BYTE EXTERNAL; DECLARE ECOMP5 STRING EXTERNAL; DECLARE ECOMP7 STRING EXTERNAL; EX$HDBACK: 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 CHAR STRUCTURE( ML ADDRESS, L ADDRESS, D(2) BYTE ); DECLARE COMP1 STRUCTURE( ML ADDRESS, L ADDRESS, D(10) BYTE ) DATA (9,9,'HDBACK :F',0); DECLARE COMP2 STRUCTURE( ML ADDRESS, L ADDRESS, D(6) BYTE ) DATA (5,5,': TO ',0); DECLARE COMP3 STRUCTURE( ML ADDRESS, L ADDRESS, D(8) BYTE ) DATA (7,7,' DELETE',0); DECLARE I BYTE; DECLARE MSG1(*) BYTE DATA( LF, ' --- BACKUP A HARD DISK TO FLOPPY DISKS ---',CR,LF, ' FROM TO',CR,LF, ' DISK DRIVE NUMBERS: ', 0); DECLARE MSG2(*) BYTE DATA( CR,LF, LF, 'Delete all files on output disks before copying ( y/n ) ? ', 0); CHAR.ML,CHAR.L=1; CHAR.D(1)=0; CALL MSG$OUT(.MSG1); COM$LINE.L=0; CALL APPEND$S(.COM$LINE,.COMP1); CHAR.D(0)=CI; DO WHILE ((CHAR.D(0)<'0') OR (CHAR.D(0)>'3')); CALL CO(BELL); CHAR.D(0)=CI; END; CALL CO(CHAR.D(0)); CALL APPEND$S(.COM$LINE,.CHAR); CALL APPEND$S(.COM$LINE,.COMP2); CALL MSG$OUT(.(C$RGT,C$RGT,C$RGT,C$RGT,C$RGT,0)); CHAR.D(0)=CI; DO WHILE ((CHAR.D(0)<'0') OR (CHAR.D(0)>'9')); CALL CO(BELL); CHAR.D(0)=CI; END; CALL CO(CHAR.D(0)); CALL APPEND$S(.COM$LINE,.CHAR); CALL MSG$OUT(.MSG2); IF UPPER(CI)='Y' THEN CALL APPEND$S(.COM$LINE,.COMP3); CALL APPEND$S(.COM$LINE,.ECOMP5); COM$TYPE=1; CALL MSG$OUT(.(CLR$SCRN,0)); END EX$HDBACK; END M$EX$HDBACK;