File: DMOD.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text) 


RALF V50A    8-APR-92    PAGE 1

            /D=DMOD(D1,D2) DOUBLE PREC. D1 MODULO D2
            /
            /
            / VERSION 50A 07-04-20
            /
            /
                    SECT    DMOD
00000 1030          JA      #DMOD
00001 0062  
                    DPCHK
00002 0415          TEXT    +DMOD  +
00003 1704  
00004 4040  
00005 1100  AMODXR, SETX    XRAMOD
00006 0025  
00007 1110          SETB    BPAMOD
00010 0017  
00011 0007  STHREE, 0007                    /73
00012 2217          2217
00013 7777          7777
00014 7777          7777
00015 7777          7777
00016 7777          7777
00017 0000  BPAMOD, F 0.0
00020 0000  
00021 0000  
00022 0000          F 0.0
00023 0000  
00024 0000  
00025 0000  XRAMOD, 0;1;73          /73 FOR ALIGNING ON 59
00026 0001  
00027 0073  
00030 0000  XSTOR,  F 0.0
00031 0000  
00032 0000  
00033 0000          F 0.0
00034 0000  
00035 0000  
00036 0000  AMODX,  F 0.0
00037 0000  
00040 0000  
00041 0000          F 0.0
00042 0000  
00043 0000  
                    ORG     10*3+BPAMOD
00047 0040          FNOP
00050 1030          JA      AMODXR
00051 0005  
00052 0000          0
00053 1030  AMDRTN, JA      .
00054 0053  
                    EXTERN  #ARGER
00055 4000  AMODER, TRAP4   #ARGER
00056 0000  
00057 0002          FCLA
00060 1030          JA      AMDRTN
RALF V50A    8-APR-92    PAGE 1-1

00061 0053  
                    BASE    0
00062 0006  #DMOD,  STARTD
00063 0210          FLDA    10*3
00064 6400          FSTA    AMDRTN
00065 0053  
00066 0200          FLDA    0
00067 1100          SETX    XRAMOD
00070 0025  
00071 1110          SETB    BPAMOD
00072 0017  
                    BASE    BPAMOD
00073 6200          FSTA    BPAMOD
00074 0101          LDX     1,1
00075 0001  
00076 0610          FLDA%   BPAMOD,1        /ADDR OF X
00077 6205          FSTA    AMODX
00100 0710          FLDA%   BPAMOD,1+       /ADDR OF Y
00101 6200          FSTA    BPAMOD
00102 0050          STARTE
00103 0600          FLDA%   BPAMOD          /GET Y
00104 1000          JEQ     AMODER          /Y=0 IS ERROR
00105 0055  
00106 0600          FLDA%   BPAMOD
00107 1060          JGT     .+3             /GET ABS VALUE
00110 0112  
00111 0003          FNEG
00112 6200          FSTA    BPAMOD
00113 0605          FLDA%   AMODX           /GET X
00114 1060          JGT     .+5
00115 0121  
00116 0003          FNEG                    /GET ABS VALUE OF X
00117 0101          LDX     0,1             /NOTE THE SIGN
00120 0000  
00121 6205          FSTA    AMODX           /SAV IN A TEMPORARY
00122 3200          FDIV    BPAMOD          /DIVIDE BY Y
00123 6203          FSTA    XSTOR           /SAVE X/Y
00124 0033          XTA     3               /GET EXPONENT
00125 2400          FSUB    STHREE          /CHECK SIZE
00126 0011  
00127 1010          JGE     AMODER          /TOO BIG
00130 0055  
00131 0203          FLDA    XSTOR           /ABS VALUE X/Y
00132 0012          ALN     2               /FIX IT UP NOW.
00133 0004          FNORM
00134 4200          FMUL    BPAMOD          /MULITPLY IT.
00135 0003          FNEG                    /NEGATE IT.
00136 1205          FADD    AMODX           /AND ADD IN X.
00137 2010          JXN     AMR,1
00140 0142  
00141 0003          FNEG                    /RESTORE SIGN
00142 1030  AMR,    JA      AMDRTN
00143 0053  
RALF V50A    8-APR-92    PAGE 2

            
RALF V50A    8-APR-92    PAGE 2-1

NO ERRORS 
12 SYMBOLS, NO ABS REFS 

 #      C 00000   #ARGER X 00000   #DMOD    00062   #MAIN  S 00000  
 AMDRTN   00053   AMODER   00055   AMODX    00036   AMODXR   00005  
 AMR      00142   BPAMOD   00017   DMOD   S 00144   STHREE   00011  
 XRAMOD   00025   XSTOR    00030