ASMB,R,L,C * * **************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * **************************************************************** * * NAME: PART OF MATH LIBRARY * SOURCE: 24998-18XXX SEE NAM FOR LAST THREE DIGITS * RELOC: PART OF 24998-12001 * PGMR: BG & JTS * HED "MXMNI" MAXIMUM AND MINIMUM WITH INTEGER ARGUMENTS NAM MXMNI,7 24998-1X109 REV.2001 750701 ENT AMAX0,MAX0,AMIN0,MIN0 EXT FLOAT SPC 2 * * CALLING SEQUENCES: X1,X2,...XN ARE INTEGERS. * JSB AMAX0 JSB MAX0 JSB AMIN0 JSB MIN0 * DEF *+(N+1) DEF *+(N+1) DEF *+(N+1) DEF *+(N+1) * DEF X1 DEF X1 DEF X1 DEF X1 * . . . . . . . . * . . . . . . . . * . . . . . . . . * DEF XN DEF XN DEF XN DEF XN * (REAL RESULT (INTEGER RESULT (REAL RESULT (INTEGER RESULT * IN A AND B) IN A) IN A AND B) IN A) SPC 2 AMAX0 NOP REAL MAX OF INTEGER ARGS. LDB *-1 CCA,CLE SET INDICATORS JMP SETFG MAX0 NOP INTEGER MAX OF INTEGER ARGS. LDB *-1 CCA,CCE SET INDICATORS JMP SETFG AMIN0 NOP REAL MIN OF INTEGER ARGS. LDB *-1 CLA,CCE SET INDICATORS JMP SETFG MIN0 NOP INTEGER MIN OF INTEGER ARGS. LDB *-1 CLA,CLE SET INDICATORS SETFG STB CALAD SET RETURN ADDRESS LDB SSA OCTAL INSTRUCTION : SSA * USED FOR AMIN0 AND MIN0 * USED FOR AMAX0 AND MAX0 STB SKFLG SZA ISZ SKFLG SEZ,RSS CMA STA TPFLG =-1FOR INTEGER,0 FOR REAL LDA CALAD = ADDRESS OF (DEF *+N+1) = * CMA,INA = -* ADA CALAD,I = -* + * + N + 1 = N + 1 ADA =D-1 A = N CMA,INA STA N = - N INA SSA N < 2 ? JMP ARGOK NO. PROCESS LIST. LDA ADZRO YES. STA ANS SET THE RESULT TO ZERO LDA CALAD LDB 0,I STB CALAD SET RETURN ADDRESS JMP EXIT AND EXIT ARGOK ISZ CALAD CALAD POINTS TO X1 LDA CALAD,I STA ANS ANS = ADDRESS OF CURRENT ANSWER LDA 0,I CONVERT ANS TO ADA LWEST 16 BIT POS. INTEGER STA SAVE AND SAVE. ISZ CALAD ISZ N DONE ? JMP TESTM NO. EXIT LDA ANS,I YES. STORE RESULT ISZ TPFLG JSB FLOAT CONVERT TO REAL IF TPFLG = 0 JMP CALAD,I CALAD NOP ZERO DEC 0 TESTM LDB CALAD,I B = ADDRESS OF ARG. LDA 1,I A = ARG ADA LWEST MAKE POSITIVE CLE USE E-REG AS SIGN BIT CMA,INA NEGATE NEW NO. ADA SAVE ADD TO OLD CME MAKE E LOOK LIKE SIGN ERA ROTATE E INTO SIGN POSITION SKFLG NOP SKIP FLAG FOR MIN OR MAX. JMP ARGOK+6 CURRENT ARGUMENT OK. JMP ARGOK+1 NEW ANSWER ANS NOP ADDRESS OF ANSWER N NOP NUMBER ARGUMENTS TPFLG NOP TYPE OF RESULT:0,-1=REAL,INT ADZRO DEF ZERO USED FOR ERROR CONDITION : N < 2 SSA SSA SAVE NOP LWEST OCT 100000 END *