.TITLE JMNMX MIN.-MAX. FOR J ARGS. / /COPYRIGHT (C) 1975 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. / /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY /ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH /THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS /SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- /VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON /EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO /THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE /SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE /WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- /MITMENT BY DIGITAL EQUIPMENT CORPORATION. / /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY /OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. .EJECT /FOR HARDWARE FLOATING POINT PROCESSOR (FPP), DEFINE 90 FPP, /FOR PDP9, DEFINE %PDP9 / FOR ADSS, DEFINE %V5B /EDIT #003 9-13-71 / EDIT 004 19-FEB-75 R.K. HYATT REMOVED PAGE/BANK DEPENDECIES / EDIT 005 AUG-20-75 M. HEBENSTREIT DISCLAIMER .IFUND %FPP .GLOBL .JH, .JG, .JM .ENDC .GLOBL JMNMX, JMAX0, JMIN0, .IFUND %FPP .DEFIN EST%,A JMS* A /EXTENDED INTEGER STORE (.JH) .ENDM .ENDC .IFDEF %FPP EST=713700 .DEFIN EST% EST .ENDM .ENDC .IFUND %FPP .DEFIN ELD%,A JMS* A /EXTENDED INTEGER LOAD (.JG) .ENDM .ENDC .IFDEF %FPP ELD=713100 .DEFIN ELD% ELD .ENDM .ENDC .IFUND %FPP .DEFIN ERS%,A JMS* A /EXTENDED INTEGER REV. SUB. (.JM) .ENDM .ENDC .IFDEF %FPP ERS=711100 .DEFIN ERS% ERS .ENDM .ENDC .IFDEF %FPP BPA=716604 BMA=716602 .ENDC .DEFIN .ADDAC ARG .IFUND %PDP9 AAC ARG .ENDC .IFDEF %PDP9 TAD (ARG .ENDC .ENDM .DEFIN ARGNUM ENTRY,CALLER,NUMADR,TEMP,OFFSET,OFFST2 LAC ENTRY .ADDAC OFFSET DAC CALLER LAC* CALLER DAC CALLER AND (7777 DAC TEMP LAC* CALLER AND (7777 CMA .ADDAC 2 TAD TEMP SMA TAD (770000 DAC NUMADR .ENDM JMNMX=. / CALLING SEQUENCE / JMS* (JMAX0, JMIN0) / JMP .+(N+1) SUBR RETURN / CAL/XCTADDR(1) ADDR OF ARG1 / CAL/XCTADDR(2) ADDR OF ARG2 / / / CAL/XCTADDR(N) ADDR OF ARG(N) (XCT IF INDIRECT) / / .TITLE JMAX0 MAXIMUM WITH DOUBLE INTEGER ANSWER JMAX0 CAL 0 /ENTRY-EXIT .IFUND %FPP LAW 0 /SET FOR SMA (MAX) .ENDC .IFDEF %FPP LAC MNXJ63 /LD BR ON POS. .ENDC JMS MNXJ /DETERMINE MIN-MAX JMP* JMAX0 /EXIT / .TITLE JMIN0 MINIMUM WITH DOUBLE INTEGER ANSWER JMIN0 CAL 0 /ENTRY-EXIT .IFUND %FPP LAW 1000 /SET FOR SPA (MIN) .ENDC .IFDEF %FPP LAC MNXJ64 /LD BR ON NEG. .ENDC JMS MNXJ /DETERMIN MIN-MAX JMP* JMIN0 /EXIT MNXJ CAL 0 /ENTRY-EXIT- .IFUND %FPP TAD MNXJ15 /CONSTRUCT SMA(MAX) OR SPA(MIN) INSTRUCTIO .ENDC DAC MNXJ01 /STORE SWITCH ARGNUM MNXJ,MNXJ02,MNXJ05,MNXJ03,-3 ISZ MNXJ02 /SET POINTER TO FIRST ARG JMS MNXJ06 /GET ARGUMENT MNXJ16 EST% .JH /STORE AS ANSWER .DSA MNXJ08 MNXJ09 ISZ MNXJ05 /SET N=N+1 JMP MNXJ10 /MORE ARGS-CONTINE ELD% .JG /DONE-PICK UP ANSW. .DSA MNXJ08 JMP* MNXJ /EXIT MNXJ10 JMS MNXJ06 /GET NEXT ARG ERS% .JM /REV. SUBTRACT D.INT. .DSA MNXJ08 /(ANS-ARG(N)) MNXJ01 CAL 0 /OPERATE SWITCH (SMA IF MAX,SPA IF MIN) .IFUND %FPP JMP MNXJ09 /NOT MIN OR MAX,CYCLE .ENDC .IFDEF %FPP MNXJ09 .ENDC ELD% .JG /LD. J:NEW MIN. OR MAX. .DSA MNXJ62+400000 /PICK UP ARG(N) AGAIN JMP MNXJ16 /BACK TO STORE ARG(N) AS ANS MNXJ06 CAL 0 /ENTRY-EXIT LAC* MNXJ02 /GET ARG ADDR(PNTR) SMA /IF NEG (XCT) GET ADDR INDIRECT JMP MNXJ61 DAC MNXJ62 LAC* MNXJ62 MNXJ61=. .IFDEF %V5B .IFDEF %FPP AND (477777 /AND OFF MODE BITS FOR FPP .ENDC .ENDC DAC MNXJ62 /STORE ARG ADDR ELD% .JG /LD. J:GET ARG .DSA MNXJ62+400000 ISZ MNXJ02 /BUMP PNTR JMP* MNXJ06 /EXIT MNXJ04 2 MNXJ02 CAL 0 /POINTER FOR ARG(N) MNXJ03 70000 /MASK FOR PDP15 BK AND PG BITS MNXJ08 CAL 0 /ANSWER 0 MNXJ62 CAL 0 /ADDR OF ARG(N) MNXJ05 0 /N .IFUND %FPP MNXJ15 760100 .ENDC .IFDEF %FPP MNXJ63 BPA MNXJ64 BMA .ENDC .END