A large commit.
[pdp8.git] / sw / os8 / v3d / sources / fortran / dectapes / dectape2 / amax.ra
diff --git a/sw/os8/v3d/sources/fortran/dectapes/dectape2/amax.ra b/sw/os8/v3d/sources/fortran/dectapes/dectape2/amax.ra
new file mode 100644 (file)
index 0000000..1004595
--- /dev/null
@@ -0,0 +1,57 @@
+/
+/ VERSION 5A 4/27/77 MH
+/
+       SECT    AMAX0
+       ENTRY   AMAX1
+       ENTRY   MAX0
+       ENTRY   MAX1
+       BASE    0
+AMAX1, SETX    XR
+       LDX     1,3             /DON'T INTEGERIZE RESULT
+MAXCOM,        STARTD
+       FLDA    0               /ADDRESS OF JA .+2+2*N
+       FSTA    3
+       FLDA    30              /RETURN ADDRESS
+       FSTA    RETN
+       FLDA%   3               / JA .+2+2*N
+       FSUB    0               /-JA .
+       FSUB    TWO             /-   2
+       LDX     1,1
+       ALN     1               /DIVIDE BY TWO
+       FNEG                    /-N
+       ATX     1
+       LDX     0,2             /FOR ARG PICKUP
+       FLDA%   0,2+            /ADDRESS OF FIRST ARG
+       FSTA    3
+       STARTF
+NEW,   FLDA%   3               /SAVE NEW MAX
+       FSTA    MAX
+SAME,  JXN     MORMAX,1+       /ANY MORE ARGS ?
+       FLDA    MAX             /GET RESULT
+       JXN     RETN,3          /DON'T FIX
+       JLT     NEGFIX          /NEGATIVE FIX
+       ALN     0
+       FNORM
+       JA      RETN
+NEGFIX,        FNEG
+       ALN     0
+       FNORM
+       FNEG
+RETN,  JA      .
+MORMAX,        STARTD                  /NEXT ARG ADDRESS
+       FLDA%   0,2+
+       FSTA    3
+       STARTF
+       FLDA    MAX             /COMPARE
+       FSUB%   3
+       JGE     SAME            /SAME MAX
+       JA      NEW             /NEW MAX
+TWO,   0;2
+MAX,   0;0;0
+MAX0,
+MAX1,  SETX    XR
+       LDX     0,3             /INTEGERIZE RESULT
+       JA      MAXCOM          /GO DO IT
+XR,    0;0;0;0;0;0;0;0
+       END
+\f