*
* $Id$
*
* $Log$
* Revision 1.1  1996/02/15 17:48:05  mclareni
* Initial revision
*
*
*
* umpy.inc
*
*CALL     BASIC
*CALL     MPY
 UMNA     SET       1
 UMNS     SET       2
 UMPA     SET       3
 UMPS     SET       4
 UMPY     SET       5
 MAIN     MACRO     TYPE,FCN,M,IX,JX,JY,IZ,J
          SETYPE    TYPE
          IFEQ      FCN,UMNA,3
 SIGNX    MICRO     1,,*-*
 SIGNZ    MICRO     1,,*+*
 VERB     MICRO     1,,*UMNA*
          IFEQ      FCN,UMNS,3
 SIGNX    MICRO     1,,*-*
 SIGNZ    MICRO     1,,*-*
 VERB     MICRO     1,,*UMNS*
          IFEQ      FCN,UMPA,3
 SIGNX    MICRO     1,,*+*
 SIGNZ    MICRO     1,,*+*
 VERB     MICRO     1,,*UMPA*
          IFEQ      FCN,UMPS,3
 SIGNX    MICRO     1,,*+*
 SIGNZ    MICRO     1,,*-*
 VERB     MICRO     1,,*UMPS*
          IFEQ      FCN,UMPY,3
 SIGNX    MICRO     1,,*+*
 SIGNZ    MICRO     1,,*0*
 VERB     MICRO     1,,*UMPY*
 NAME     MICRO     1,,*"P"_"VERB"*
          HEADER    "NAME",SAVEA0
 TEMP2    BSS       2                   WORKING STORE
          EXIT      "NAME"              (M,X,X12,X21,Y,Y2,Z,Z2)
          PROLOG    M,IX,JX,JY,IZ,J
*                                       X1=(X), X2=(Y), A0=(Z)
          "P"UMPY   "SIGNX",M,IX,JX,JY,"SIGNZ",A0,IZ,TEMP2,J
          EPILOG
          ENDM
 PROLOG   MACRO     MM,IX,JX,JY,IZ,ONE  X1=(X),X2=(Y),A0=(Z)
          BSS       0                   X1=(M)    A1=((M))
 +        SA5       A1+6      0         X5=(Z)    A5=((Z))
          S_ONE     1         1                             ONE=1
 +        SA2       X1        2         X2=M      A2=(M)
          SA3       A5+ONE    3         X3=(Z2)   A3=((Z2))
          SA4       A5-ONE    4         X4=(Y2)   A4=((Y2))
          SX7       A0        5         X7=OLD A0
*                             6 X7
*                             7 X5
 +        SA1       A1+ONE    8         X1=(X)    A1=((X))
          SA7       SAVEA0    9 X2      SAVEA0 = OLD A0
          S_MM      X2       10 X3                          MM=M
 +        SA2       A4-ONE   11 X4      X2=(Y)    A2=((Y))
          IX6       X3-X5    12         X6=(Z2)-(Z)=IZ
          SA3       A1+ONE   13 X6      X3=(X12)  A3=((X12))
          SA0       X5       14                   A0=(Z)
 +        SA5       A2-ONE   15 X1      X5=(X22)  A5=((X22))
*                            16
          LE        MM,B0,EPILOG        IF M.LE.0 GOTO EPILOG
          S_IZ      X6       18 X2                          IZ=(Z2)-(Z)
 +        NO                 19
          IX7       X4-X2    20 X3      X7=(Y2)-(Y)=JY
*                            21 X7
          IX6       X3-X1    22 X5      X6=(X12)-(X)=JX
          IX0       X5-X3    23 X6      X0=(X22)-(X12)=IX
 +        S_JY      X7       24 X0                          JY=(Y2)-(Y)
          S_JX      X6       25                             JX=(X12)-(X)
          S_IX      X0       26                             IX=(X22)-(X12)
 PROLOG   ENDM
