1 / FLOATING POINT MATH PACKAGE
11 /COPYRIGHT (C) 1974,1977 BY DIGITAL EQUIPMENT CORPORATION
22 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
23 /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
24 /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
25 /FOR ANY ERRORS THAT MAY APPEAR IN THIS MANUAL.
27 /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
28 /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
29 /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
30 /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
32 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
33 /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
47 / VERSION NUMBER IS AVAILABLE AT ENTRY POINTS
64 /THE FOLLOWING DEFINITIONS ENABLE LIBRARY OPTIMIZATIONS
65 /WHERE CRITICAL TIMING CONSIDERATIONS EXIST.
66 /THEY SHOULD BE USED WITH EXTREME CAUTION, AND MUST
67 /REFERENCE CURRENT PAGE AND PAGE ZERO SYMBOLS ONLY.
90 // ADDITION AND SUBTRACTION ROUTINE
93 LAP /LEAVE AUTO PAGING
95 ADSRAD, ADSRAC /SOME INDIRECTS TO SAVE CORE...
102 5 /FLOATING POINT SUBTRACT
104 DCA FAD / ARG <F.P. VARIABLE>
112 5 /FLOATING POINT ADD SUBROUTINE
113 ED1, DCA FSB / CALL 1,FAD
114 TAD FAD / ARG <VARIABLE>
116 FAD1, NOP /CDF TO PICK UP ARGUMENT
126 TAD ACH /EXAMINE THE FLOATING AC
128 JMP FADLD /IT'S ZERO, DO A LOAD...
167 CLA CLL CMA RTL / GENERATE -3
185 FADLD, TAD 7 /FLOATING LOAD WHEN AC=0
188 SZA /CHECK FOR 0.-0. DON'T GIVE -0.
198 DCA FSB /FOR IFAD AFTER SUBTRACT
200 TAD FAD /HIGH SPEED RETURN
205 ABSSW, 7777 /ABSOLUTE VALUE SWITCH
207 FADSB, 0 /TIME SAVING SUBROUTINE
212 / FLOATING POINT ABSOLUTE VALUE FUNCTION
216 TAD ABS / ARG <F.P. VARIABLE>
222 JMP ED1 /GO INTO ADD ROUTINE...
227 / ROUTINE TO GET OPERAND INTO SR, SEPARATE SIGNS AND
228 / EXPONENTS OF AC AND SR, AND MOVE GLOBAL AC TO LOCAL AC.
235 TADI 10 /PICK UP HIGH ORDER WORD
236 JMS SPLIT /MUST NOT CHANGE DATA FIELD****
244 TADI 10 /PICK UP WORD 2
246 TADI 10 /PICK UP WORD 3
249 JMS SPLIT /EXPAND THE FLOATING AC...
252 GTS2, TAD ACM /NEEDS LABEL TO FORCE CDF!
259 SPLIT, 0 /BREAK UP SIGN, EXPON, AND HI-ORD BITS
260 DCA TMP /ROUTINE MUST NOT CHANGE DATA FIELD****
266 CLA CLL CML RAR / = 4000
276 ALS, 0 /LOCAL AC SHIFT LEFT SUBROUTINE
291 ADSRAC, 0 /ADD LOCAL SR TO LOCAL AC
306 / ROUTINE TO NORMALIZE AND RECOMBINE ACCUMULATOR,
307 / AND PLACE LOCAL ACC. IN GLOBAL ACC.
309 ARSAD, ARS /SOME CORE SAVING INDIRECTS
313 NORMAC, 0 /NORMALIZE AND PACKING SUBROUTINE
339 CLA CLL CMA RTL / = -3
372 5 /FLOATING POINT INDIRECT STORE
373 TAD ISTO / CALL 1,ISTO
374 DCA IST1 / ARG <2WORD ADDRESS>
397 / ROUTINE TO STORE CONTENTS OF FL. PT. ACC AND CLEAR IT
401 TAD STO / ARG <F.P. VARIABLE>
403 STO1, NOP /REPLACED BY CDF
421 TAD STO /SOME TIME SAVING CODE...
423 STO3, NOP /REPLACED BY CIF CDF
426 STOSB, 0 /TIME SAVING SUBROUTINE
427 NOP /CHANGED TO A CDF DESTINATION
431 / FLOATING POINT TO FIXED POINT CONVERSION
473 CLA CLL CML RTL / = 2
481 JMP FIXRTN /RETURN WITH 2047 IN FIXED AC
486 / FLOATING POINT MULTIPLICATION
489 ADSRAE, ADSRAC /SOME TIME SAVING INDIRECTS
503 FMP1, NOP /CDF TO FIELD OF CALLING PROGRAM
511 JMSI GTSPLB /WARNING ***THIS INSTRUCTION SKIPS***
548 / FLOATING POINT DIVISION
558 FDV0, NOP /CDF TO FIELD OF CALLING PROGRAM
579 DVID, CLA CLL CML RAR / = 4000
616 / ROUTINE TO GET TWO'S COMPLEMENT OF TRIPLE WORD NUMBER
617 / IF NO ADDRESS IN AC UPON ENTRY, SR IS ASSUMED.
620 TAD (25 /ADDRESS OF SRL
622 CLA CLL CMA RTL / = -3
638 / CONVERT FIXED POINT TO FLOATING POINT
644 TAD FLOAT / CALL 1,FLOAT
645 DCA FLO1 / ARG <INT. VARIABLE>
657 FLO2, NOP /CDF TO FIELD OF ARGUMENT
661 / INTEGER TO FLOATING POINT CONVERSION
665 FLOTX, CLL /ASSUMES INTEGER VARIABLE IN AC
679 / INDIRECT FLOATING POINT ADD
684 TAD IFAD / ARG <2WORD ADDRESS>
707 ARS, 0 /LOCAL AC SHIFT RIGHT SUBROUTINE
724 5 /FLOATING POINT NEGATION
733 ER0, 0 /CONTAINS ADDRESS OF CURRENT ENTRY PT
735 TAD I ER0 /BANK CALL IS FROM
737 ISZ ER0 /INDEX TO ADDRESS