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


RALF V50A    8-APR-92    PAGE 1

            /R=AMOD(R1,R2) SINGLE PREC. R1 MODULO R2
            /
            /
            / VERSION 50A 23-MAY-80 WVDM
            /
            /
            /R:=REMAINDER OF R1/ABS(R2)
            
                    SECT    AMOD
                    ENTRY   MOD
00000 1030          JA      #AMOD
00001 0054  
00002 0115          TEXT    +AMOD  +
00003 1704  
00004 4040  
00005 1100  AMODXR, SETX    XRAMOD
00006 0014  
00007 1110          SETB    BPAMOD
00010 0011  
00011 0000  BPAMOD, F 0.0
00012 0000  
00013 0000  
00014 0000  XRAMOD, F 0.0
00015 0000  
00016 0000  
00017 0000  AMODX,  F 0.0
00020 0000  
00021 0000  
00022 0027  AMODLM, F 8388607.0             /LARGEST ALLOWED NUMBER
00023 3777  
00024 7777  
                    ORG     10*3+BPAMOD
00041 0040          FNOP
00042 1030          JA      AMODXR
00043 0005  
00044 0000          0
00045 1030  AMDRTN, JA      .
00046 0045  
                    EXTERN  #ARGER
00047 4000  AMODER, TRAP4   #ARGER
00050 0000  
00051 0002          FCLA
00052 1030          JA      AMDRTN
00053 0045  
                    BASE    0
            MOD,
00054 0006  #AMOD,  STARTD
00055 0210          FLDA    10*3
00056 6400          FSTA    AMDRTN
00057 0045  
00060 0200          FLDA    0
00061 1100          SETX    XRAMOD
00062 0014  
00063 1110          SETB    BPAMOD
00064 0011  
                    BASE    BPAMOD
RALF V50A    8-APR-92    PAGE 1-1

00065 0101          LDX     1,1     
00066 0001  
00067 6200          FSTA    BPAMOD
00070 0610          FLDA%   BPAMOD,1        /ADDR OF X
00071 6202          FSTA    AMODX
00072 0710          FLDA%   BPAMOD,1+       /ADDR OF Y
00073 6200          FSTA    BPAMOD
00074 0005          STARTF
00075 0600          FLDA%   BPAMOD          /GET Y
00076 1000          JEQ     AMODER          /Y=0 IS ERROR
00077 0047  
00100 1060          JGT     .+3
00101 0103  
00102 0003          FNEG                    /ABS VALUE
00103 6200          FSTA    BPAMOD
00104 0602          FLDA%   AMODX           /GET X
00105 1060          JGT     .+5
00106 0112  
00107 0003          FNEG                    /ABS VALUE
00110 0101          LDX     0,1             /NOTE SIGN
00111 0000  
00112 6202          FSTA    AMODX           /SAVE IN A TEMPORARY
00113 1070          JAL     AMODER          /TOO LARGE FOR REMULTIPLY ?
00114 0047  
00115 3200          FDIV    BPAMOD          /QUOTIENT
00116 1070          JAL     AMODER          /TOO BIG FOR FIX ?
00117 0047  
00120 0010          ALN     0               /FIX IT UP NOW.
00121 0004          FNORM
00122 4200          FMUL    BPAMOD          /MULTIPLY IT.
00123 0003          FNEG                    /NEGATE IT.
00124 1202          FADD    AMODX           /AND ADD IN X.
00125 2010          JXN     AM,1            /CHECK SIGN
00126 0130  
00127 0003          FNEG
00130 1030  AM,     JA      AMDRTN
00131 0045  
RALF V50A    8-APR-92    PAGE 1-2

NO ERRORS 
12 SYMBOLS, NO ABS REFS 

 #      C 00000   #AMOD    00054   #ARGER X 00000   #MAIN  S 00000  
 AM       00130   AMDRTN   00045   AMOD   S 00132   AMODER   00047  
 AMODLM   00022   AMODX    00017   AMODXR   00005   BPAMOD   00011  
 MOD      00054   XRAMOD   00014