.TITLE DMOD REMAINDERING FOR DOUBLE ARGUMENTS ARG1( MOD ARG2) / / / FIRST PRINTING, FEBRUARY 1974 / / THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO / CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED / AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. / DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPON- / SIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS / DOCUMENT. / / THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FUR- / NISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON / A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH / INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR / USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PRO- / VIDED IN WRITING BY DIGITAL. / / DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY / FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIP- / MENT THAT IS NOT SUPPLIED BY DIGITAL. / / COPYRIGHT (C) 1974, BY DIGITAL EQUIPMENT CORPORATION / / .EJECT /COPYRIGHT 1970,1971, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. /EDIT 4 6-24-71 /FOR HARDWARE FLOATING POINT PROCESSOR (FPP), DEFINE %FPP, .GLOBL DMOD,.DA,.AW,.AX .IFUND %FPP .GLOBL .AO,.AS,.AT,.AU,.AV .ENDC .IFUND %FPP .DEFIN DLD%,A JMS* A /DOUBLE LOAD (.AO) .ENDM .ENDC .IFDEF %FPP DLD=713150 .DEFIN DLD% DLD .ENDM .ENDC .IFUND %FPP .DEFIN DMP%,A JMS* A /DOUBLE MULTIPLY (.AS) .ENDM .ENDC .IFDEF %FPP DMP=711540 .DEFIN DMP% DMP .ENDM .ENDC .IFUND %FPP .DEFIN DRS%,A /DOUBLE REVERSE SUBTRACT JMS* A /(.AV) .ENDM .ENDC .IFDEF %FPP DRS=711140 .DEFIN DRS% DRS .ENDM .ENDC .IFUND %FPP .DEFIN DRD%,A /DOUBLE REVERSE DIVIDE JMS* A /(.AV) .ENDM .ENDC .IFDEF %FPP DRD=712540 .DEFIN DRD% DRD .ENDM .ENDC .IFUND %FPP .DEFIN DDV%,A /DOUBLE DIVIDE (.AT) JMS* A .ENDM .ENDC .IFDEF %FPP DDV=712140 .DEFIN DDV% DDV .ENDM .ENDC / CALLING SEQUENCE / JMS* (DMOD) SUBR CALL / JMP .+3 SUBR RETURN / CAL/XCTADDR ADDR OF ARG 1 / CAL/XCTADDR ADDR OF ARG 2 (XCT IF INDIRECT) / DMOD CAL 0 /ENTRY-EXIT JMS* .DA /GET ARGUMENT (.DA) JMP DMOD03 DMOD01 CAL 0 /ARG1 DMOD02 CAL 0 /ARG2 DMOD03 DLD% .AO /LOAD DOUBLE (.AO) .DSA DMOD01+400000 / (ARG1) DDV% .AT /DIVIDE DOUBLE (.AT) .DSA DMOD02+400000 / (ARG1/ARG2) JMS* .AX /FIX TO INTEGER (.AX) JMS* .AW /FLOAT TO ACC (.AW) DMP% .AS .DSA DMOD02+400000 DRS% .AU /REVERSE SUBTRACT DOUBLE .DSA DMOD01+400000 JMP* DMOD /EXIT .END