* SUBROUTINE MXMN (FORTRAN CALL) REV 7/22/69 A.SHERMAN * *************************************************** * * * THIS SUBROUTINE DETERMINES THE MAXIMUM AND * * MINIMUM VALUES WITHIN AN INTEGER ARRAY. * * * * FORTRAN CALL: CALL MXMN(I1,I2,I3,I4,I5) * * I1 = NAME OF ARRAY (GIVES ENTRY PT) * * I2 = NUMBER OF ELEMENTS IN ARRAY * * NOT ZERO OR NEGATIVE! * * * * RETURNED VALUES: * * I1 NONE * * I2 = MAXIMUM ELEMENT POSITION * * I3 = MINIMUM ELEMENT POSITION * * I4 = MAXIMUM VALUE * * I5 = MINIMUM VALUE * * * *************************************************** * HED MAXIMUM-MINIMUM DETERMINATION NAM MXMN ENT MXMN EXT .ENTR ADDR NOP ENTRY POINT CMAX NOP SIZE OF ARRAY CMIN NOP MAX NOP MIN NOP MXMN NOP JSB .ENTR DEF ADDR * * INITIALIZATION * LDA CMAX,I SIZE OF ARRAY STA SIZE CMA,INA STA CTR TEMPORARY COUNTER LDA =B1 STA CMAX,I STA CMIN,I LDA ADDR,I STA MAX,I STA MIN,I CLO * NOTE 1 * TEST ISZ CTR RSS JMP OUT DONE ISZ ADDR LDA MAX,I LATEST MAX LDB MIN,I LATEST MIN CMA,INA CMB,CLE,INB ADA ADDR,I SOC C * NOTE 1 ERA * NOTE 1 CLE * NOTE 1 ADB ADDR,I SOC C * NOTE 1 ERB * NOTE 1 SSA MAXIMUM? JMP BB LDA CTR COUNT INDEX ADA SIZE INA STA CMAX,I MAX COUNT LDA ADDR,I NEW MAX STA MAX,I BB SSB,RSS MINIMUM? JMP TEST LDB CTR COUNT INDEX ADB SIZE INB STB CMIN,I MIN COUNT LDB ADDR,I NEW MIN STB MIN,I JMP TEST * OUT JMP MXMN,I CTR NOP SIZE NOP * * NOTE 1: THESE STEPS MAY BE DELETED TO SAVE CORE AT RISK * OF OVERFLOW ON ADA & ADB * END FTN,B,L,A PROGRAM DEBUG C TEST OF MXMN SUBROUTINE C DIMENSION I(500) 5 WRITE(2,10) 10 FORMAT (//"N=?") READ (1,*)N WRITE(2,20) 20 FORMAT("ENTER N INTEGERS") READ(1,*)(I(J),J=1,N) CALL MXMN(I,N,M,MAX,MIN) WRITE (2,30)N,MAX 30 FORMAT("MAX #"I3"="I6) WRITE (2,40)M,MIN 40 FORMAT("MIN #"I3"="I6) GO TO 5 END END$