1 /INTEGER MATH PACKAGE OS8 FORTRAN II LIBRARY
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
58 /THE FOLLOWING DEFINITIONS ARE TO ENABLE LIBRARY
59 /OPTIMIZATIONS WHERE CRITICAL TIMING CONSIDERATIONS
60 /EXIST. THEY SHOULD BE USED WITH EXTREME CAUTION,
61 /AND MUST REFERENCE CURRENT PAGE AND PAGE ZERO SYMBOLS
69 LAP /LV AUTO PAGING FOR PAL-III LIKE CODE
71 AC, 0 /LOCATIONS USED BY MPY & DIV
79 5 /INTEGER MULTIPLY SUBROUTINE
81 TAD MPY / ARG <NUMBER>
83 MPY1, NOP /REPLACED BY CDF
90 MPY2, NOP /REPLACED BY CDF
95 MPYSB, 0 /INTERNAL MULTIPLICATION SUBR
113 DVERR, 4411 /"DIVZ" ERROR
116 5 /INTEGER DIVIDE SUBROUTINE
118 JMP AD1 / ARG <DIVISOR>
125 DIV1, NOP /REPLACED BY CDF
135 JMPI DIVZA /ATTEMPTING TO DIVIDE BY ZERO
184 5 /INTEGER REMAINDER SUBROUTINE
186 INC IREM# / ARG <UNUSED VARIABLE>
188 INC SAV /IREM MUST HAVE AN ARGUMENT
189 TAD MQ /BECAUSE IT IS A FUNCTION.
190 SPA /IREM CAN BE CALLED ONLY ONCE
191 TAD LOC /AFTER EACH DIVISION ...
192 SKP /SUBSEQUENT CALLS WILL RETURN ZERO.
201 5 /INTEGER ABS VALUE FUNCTION
202 TAD IABS / CALL 1,IABS
203 DCA IAB1 / ARG <INTEGER VARIABLE>
211 IAB2, NOP /CDF TO ARGUMENT FIELD
218 5 /READ SWITCH REGISTER FUNCTION
224 DIVZ, CALL 1,ERROR /ZERO DIVIDE ERROR
229 /THE FLOATING POINT CLEAR ROUTINE WAS ADDED TO "INTEGR"
230 /SO THAT PROGRAMS WHICH DO NOT USE FLOATING POINT MATH
231 /CAN RUN WITHOUT LOADING THE F.P. MATH PACKAGE.
234 5 /FLOATING POINT CLEAR FUNCTION
243 / THE FOLLOWING CAN BE USED FOR DOUBLY OR SINGLY
244 / SUBSCRIPTED ARRAYS. ON ENTRY THE AC SHOULD BE
245 / NEGATIVE FOR FLOATING POINT VARIABLES. THIS MAY
246 / BE ANY NEGATIVE NUMBER FOR SINGLY SUBSCRIPTED
247 / VARIABLES, AND MUST BE THE FIRST DIMENSION FOR
248 / DOUBLY SUBSCRIPTED VARIABLES. SOME EXAMPLES
249 / FOLLOW: (TO LOAD THE I,JTH ELEMENT OF AN FP ARRAY)
251 / TAD (-M /DIMENSIONS ARE M BY N
256 / LOC /MUST BE A DUMMY VARIABLE
260 / TO LOAD THE JTH ELEMENT OF AN INTEGER ARRAY:
265 / LOC /STILL A DUMMY VARIABLE
269 S1, BLOCK 1 /ADDR OF 1ST SUBSC
270 S2, BLOCK 1 /ADDR OF 2ND SUBSC
271 A, BLOCK 2 /ADDR OF ARRAY
272 R, BLOCK 1 /ADDR FOR RESULT
274 FL, 0 /DOUBLE SUBSC FLAG
275 N, 0 /DIMENSION -- NEGATIVE IF FLOATING
276 MQA, MQ /FOR INDIRECT DCA
279 5 /FORTRAN SUBSCRIPTING ROUTINE
280 DCA N /SAVE THE DIMENSION
282 SPA /... ALSO ABS VALUE
284 DCAI MQA /WARNING **THIS ASSUMES DF=CURR FIELD**
285 CLA CLL CMA RAL /HOW MANY ARGS?
290 SUB1, NOP /REPLACED BY CDF
293 SNA CLA /DOUBLE SUBSCRIPTS?
295 TADI 10 /YES, PICK UP ARGS...
300 SB0, DCA FL /SET DBL SUBSC FLAG
316 ISZ FL /DBL SUBSCRIPTING?
318 CLA CMA /GET THE 2ND SUBSC
319 SB2, NOP /CDF TO FIELD OF 2ND SUBSCRIPT
322 JMSI MPYSBA /NO, MULTIPLY BY DIMENSION
323 SB1, NOP /CDF TO FIELD OF 1ST SUBSCRIPT
327 SUB2, NOP /REPLACED BY CDF
332 SPA CLA /FIXED OR FLOATING
338 STL CLA RTL /FAST 'RETRN SUBSC'
341 SUB3, NOP /REPLACED BY 'CDF CIF'