A large commit.
[pdp8.git] / sw / os8 / v3d / sources / fortran / all / amod.ra
diff --git a/sw/os8/v3d/sources/fortran/all/amod.ra b/sw/os8/v3d/sources/fortran/all/amod.ra
new file mode 100644 (file)
index 0000000..47f3352
--- /dev/null
@@ -0,0 +1,65 @@
+/
+/
+/
+/      A  M  O  D
+/      -  -  -  -
+/
+/SUBROUTINE    AMOD(X,Y)
+/
+/ VERSION 5A 4-27-77  PT
+/
+       SECT    AMOD
+       ENTRY   MOD
+       JA      #AMOD
+       TEXT    +AMOD  +
+AMODXR,        SETX    XRAMOD
+       SETB    BPAMOD
+BPAMOD,        F 0.0
+XRAMOD,        F 0.0
+AMODX, F 0.0
+       ORG     10*3+BPAMOD
+       FNOP
+       JA      AMODXR
+       0
+       AMDRTN, JA      .
+       EXTERN  #ARGER
+AMODER,        TRAP4   #ARGER
+       FCLA
+       JA      AMDRTN
+       BASE    0
+MOD,
+#AMOD, STARTD
+       FLDA    10*3
+       FSTA    AMDRTN
+       FLDA    0
+       SETX    XRAMOD
+       SETB    BPAMOD
+       BASE    BPAMOD
+       LDX     1,1     
+       FSTA    BPAMOD
+       FLDA%   BPAMOD,1   /ADDR OF X
+       FSTA    AMODX
+       FLDA%   BPAMOD,1+  /ADDR OF Y
+       FSTA    BPAMOD
+       STARTF
+       FLDA%   BPAMOD          /GET Y
+       JEQ     AMODER          /Y=0 IS ERROR
+       JGT     .+3
+       FNEG            /ABS VALUE
+       FSTA    BPAMOD
+       FLDA%   AMODX   /GET X
+       JGT     .+5
+       FNEG            /ABS VALUE
+       LDX     0,1             /NOTE SIGN
+       FSTA    AMODX   /SAV IN A TEMPORARY
+       FDIV    BPAMOD  /DIVIDE BY Y
+       JAL     AMODER          /TOO BIG.
+       ALN     0               /FIX IT UP NOW.
+       FNORM
+       FMUL    BPAMOD          /MULITPLY IT.
+       FNEG                    /NEGATE IT.
+       FADD    AMODX           /AND ADD IN X.
+       JXN     AM,1            /CHECK SIGN
+       FNEG
+AM,    JA      AMDRTN
+\f