home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_100 / 162_01 / deq.mac < prev    next >
Text File  |  1985-08-21  |  3KB  |  145 lines

  1. ;    file DEQ.MAC
  2. ; I/O ports for AM9511 arithmetic processor chip
  3. ; IMPORTANT. It is up to every user to set the
  4. ; I/O port values for his hardware.
  5. PORT.D    EQU    0BCH    ; Data Port
  6. PORT.C    EQU    0BDH    ; Command Port
  7.  
  8. ;       AM9511 chip command bytes
  9. ;       _________________________
  10.  
  11. ;    16-BIT INT ARITHMETIC
  12.  
  13. .IADD    EQU    0ECH    ;Add X to Y. 
  14. .ISUB    EQU    0EDH    ;Subtract X from Y.
  15. .IMUL    EQU    0EEH    ;Multiply Y by X. Standard 16 bit result
  16. .IMUO    EQU    0F6H    ;Multiply Y by X. Upper 16 bits, if needed
  17. .IDIV    EQU    0EFH    ;Divide Y by X.
  18.  
  19. ;    32-BIT LONG ARITHMETIC
  20.  
  21. .LADD    EQU    0ACH    ;Add X to Y.
  22. .LSUB    EQU    0ADH    ;Subtract X from Y.
  23. .LMUL    EQU    0AEH    ;Multiply Y by X. Standard 32 bit result
  24. .LMUO    EQU    0B6H    ;Multiply Y by X. Upper 32 bits, if needed
  25. .LDIV    EQU    0AFH    ;Divide Y by X.
  26.  
  27. ;    32-BIT FLOAT OPERATIONS
  28.  
  29. .FADD    EQU    90H    ;Add X to Y.
  30. .FSUB    EQU    91H    ;Subtract X from Y.
  31. .FMUL    EQU    92H    ;Multiply Y by X.
  32. .FDIV    EQU    93H    ;Divide Y by X.
  33.  
  34. .SQRT    EQU    01H    ;Square Root of X.
  35. .SIN    EQU    02H    ;Sine of X.
  36. .COS    EQU    03H    ;Cosine of X.
  37. .TAN    EQU    04H    ;Tangent of X.
  38. .ASIN    EQU    05H    ;Inverse Sine of X.
  39. .ACOS    EQU    06H    ;Inverse Cosine of X.
  40. .ATAN    EQU    07H    ;Inverse Tangent of X.
  41. .LOG    EQU    08H    ;Common Logarithm of X.
  42. .LN    EQU    09H    ;Natural Logarithm of X.
  43. .EXP    EQU    0AH    ;e raised to power in X.
  44. .PWR    EQU    8BH    ;Y raised to power in X.
  45.  
  46. ;    MISC. OPERATIONS
  47.  
  48.             ;No Operation, clear
  49. .NOP    EQU    00H    ;status byte to NULL
  50.  
  51. FTOI    EQU    1FH    ;Convert X from float format
  52. FTOL    EQU    1EH    ; to either int or long format.
  53.  
  54. ITOF    EQU    1DH    ;Convert X from int or long format
  55. LTOF    EQU    1CH    ; to float format
  56.  
  57. NXI    EQU    74H    ;Negate X, int format (change sign)
  58. NXL    EQU    34H    ;Negate X, long format
  59. NXF    EQU    15H    ;Negate X, float format
  60.  
  61. PXI    EQU    77H    ;PUSH Stack (int, long, float).
  62. PXL    EQU    37H    ; X is copied into Y.
  63. PXF    EQU    17H    ; Last on stack is lost.
  64.  
  65. RDI    EQU    78H    ;Rotate Down (pop stack).
  66. RDL    EQU    38H    ; Old Y becomes new X.
  67. RDF    EQU    18H    ; Old X rotates to last.
  68.  
  69. XY.I    EQU    79H    ;Exchange X and Y, int
  70. XY.L    EQU    39H    ;Exchange X and Y, long
  71. XY.F    EQU    19H    ;Exchange X and Y, float
  72.  
  73. PXF.PI    EQU    1AH    ;Push (float to X), the pi constant.
  74.  
  75. ;    SMALL INTEGERS AS FLOATS
  76. ; Negative, one through ten
  77. ; (last two bytes are nulls for small integers)
  78. NFE10    EQU    084A0H
  79. NFE9    EQU    08490H
  80. NFE8    EQU    08480H
  81. NFE7    EQU    083E0H
  82. NFE6    EQU    083C0H
  83. NFE5    EQU    083A0H
  84. NFE4    EQU    08380H
  85. NFE3    EQU    082C0H
  86. NFE2    EQU    08280H
  87. NFE1    EQU    08180H
  88. ; Positive, zero through ten
  89. ; (again, the two low order bytes are nulls)
  90. FE0    EQU    0
  91. FE1    EQU    0180H
  92. FE2    EQU    0280H
  93. FE3    EQU    02C0H
  94. FE4    EQU    0380H
  95. FE5    EQU    03A0H
  96. FE6    EQU    03C0H
  97. FE7    EQU    03E0H
  98. FE8    EQU    0480H
  99. FE9    EQU    0490H
  100. FE10    EQU    04A0H
  101.  
  102.     .Z80    ; Zilog Code
  103.  
  104. LDR.FV    MACRO    FVAL    ; load float val of int to registers
  105.     IFB    <FVAL>
  106.     EXITM
  107.     ENDIF
  108.     LD    BC,FVAL
  109.     LD    DE,0
  110.     ENDM
  111.  
  112. EQUJPS    MACRO    DEVC,J1,J2,J3,J4,J5,J6
  113.     LOCAL    JMPIN,DBJ
  114.     IFB    <J1>
  115.     EXITM
  116.     ENDIF
  117.     IFNB    <DEVC>
  118.     LD    A,DEVC
  119.     LD    (CMDBYT),A
  120.     ENDIF
  121.     IFB    <J3>
  122.     IFB    <J2>
  123.     JP    J1
  124.     ELSE
  125.     LD    IX,J2
  126.     JP    J1
  127.     ENDIF
  128.     ELSE
  129.     LD    IX,JMPIN
  130.     LD    A,-3
  131. JMPIN:    ADD    A,3
  132.     LD    (DBJ),A
  133.     DB    018H    ; JR (jump relative)
  134. DBJ:    DB    0    ; displacement byte
  135.     IRP    J,<<J1>,<J2>,<J3>,<J4>,<J5>,<J6>>
  136.     IFB    <J>
  137.     EXITM
  138.     ENDIF
  139.     JP    J
  140.     ENDM
  141.     ENDIF
  142.     ENDM
  143.  
  144.     .8080
  145.