Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | / |
2 | / | |
3 | / | |
4 | / D M O D | |
5 | / - - - - | |
6 | / | |
7 | /SUBROUTINE DMOD(X,Y) | |
8 | / | |
9 | / VERSION 5A 4-27-77 PT | |
10 | / | |
11 | SECT DMOD | |
12 | JA #DMOD | |
13 | DPCHK | |
14 | TEXT +DMOD + | |
15 | AMODXR, SETX XRAMOD | |
16 | SETB BPAMOD | |
17 | STHREE, 0007 /73 | |
18 | 2217 | |
19 | 7777 | |
20 | 7777 | |
21 | 7777 | |
22 | 7777 | |
23 | BPAMOD, F 0.0 | |
24 | F 0.0 | |
25 | XRAMOD, 0;1;73 /73 FOR ALIGNING ON 59 | |
26 | XSTOR, F 0.0 | |
27 | F 0.0 | |
28 | AMODX, F 0.0 | |
29 | F 0.0 | |
30 | ORG 10*3+BPAMOD | |
31 | FNOP | |
32 | JA AMODXR | |
33 | 0 | |
34 | AMDRTN, JA . | |
35 | EXTERN #ARGER | |
36 | AMODER, TRAP4 #ARGER | |
37 | FCLA | |
38 | JA AMDRTN | |
39 | BASE 0 | |
40 | #DMOD, STARTD | |
41 | FLDA 10*3 | |
42 | FSTA AMDRTN | |
43 | FLDA 0 | |
44 | SETX XRAMOD | |
45 | SETB BPAMOD | |
46 | BASE BPAMOD | |
47 | FSTA BPAMOD | |
48 | LDX 1,1 | |
49 | FLDA% BPAMOD,1 /ADDR OF X | |
50 | FSTA AMODX | |
51 | FLDA% BPAMOD,1+ /ADDR OF Y | |
52 | FSTA BPAMOD | |
53 | STARTE | |
54 | FLDA% BPAMOD /GET Y | |
55 | JEQ AMODER /Y=0 IS ERROR | |
56 | FLDA% BPAMOD | |
57 | JGT .+3 /GET ABS VALUE | |
58 | FNEG | |
59 | FSTA BPAMOD | |
60 | FLDA% AMODX /GET X | |
61 | JGT .+5 | |
62 | FNEG /GET ABS VALUE OF X | |
63 | LDX 0,1 /NOTE THE SIGN | |
64 | FSTA AMODX /SAV IN A TEMPORARY | |
65 | FDIV BPAMOD /DIVIDE BY Y | |
66 | FSTA XSTOR /SAVE X/Y | |
67 | XTA 3 /GET EXPONENT | |
68 | FSUB STHREE /CHECK SIZE | |
69 | JGE AMODER /TOO BIG | |
70 | FLDA XSTOR /ABS VALUE X/Y | |
71 | ALN 2 /FIX IT UP NOW. | |
72 | FNORM | |
73 | FMUL BPAMOD /MULITPLY IT. | |
74 | FNEG /NEGATE IT. | |
75 | FADD AMODX /AND ADD IN X. | |
76 | JXN AMR,1 | |
77 | FNEG /RESTORE SIGN | |
78 | AMR, JA AMDRTN | |
79 | \f |