home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Interactive Guide
/
c-cplusplus-interactive-guide.iso
/
c_ref
/
csource3
/
162_01
/
deq.mac
< prev
next >
Wrap
Text File
|
1985-08-21
|
3KB
|
145 lines
; file DEQ.MAC
; I/O ports for AM9511 arithmetic processor chip
; IMPORTANT. It is up to every user to set the
; I/O port values for his hardware.
PORT.D EQU 0BCH ; Data Port
PORT.C EQU 0BDH ; Command Port
; AM9511 chip command bytes
; _________________________
; 16-BIT INT ARITHMETIC
.IADD EQU 0ECH ;Add X to Y.
.ISUB EQU 0EDH ;Subtract X from Y.
.IMUL EQU 0EEH ;Multiply Y by X. Standard 16 bit result
.IMUO EQU 0F6H ;Multiply Y by X. Upper 16 bits, if needed
.IDIV EQU 0EFH ;Divide Y by X.
; 32-BIT LONG ARITHMETIC
.LADD EQU 0ACH ;Add X to Y.
.LSUB EQU 0ADH ;Subtract X from Y.
.LMUL EQU 0AEH ;Multiply Y by X. Standard 32 bit result
.LMUO EQU 0B6H ;Multiply Y by X. Upper 32 bits, if needed
.LDIV EQU 0AFH ;Divide Y by X.
; 32-BIT FLOAT OPERATIONS
.FADD EQU 90H ;Add X to Y.
.FSUB EQU 91H ;Subtract X from Y.
.FMUL EQU 92H ;Multiply Y by X.
.FDIV EQU 93H ;Divide Y by X.
.SQRT EQU 01H ;Square Root of X.
.SIN EQU 02H ;Sine of X.
.COS EQU 03H ;Cosine of X.
.TAN EQU 04H ;Tangent of X.
.ASIN EQU 05H ;Inverse Sine of X.
.ACOS EQU 06H ;Inverse Cosine of X.
.ATAN EQU 07H ;Inverse Tangent of X.
.LOG EQU 08H ;Common Logarithm of X.
.LN EQU 09H ;Natural Logarithm of X.
.EXP EQU 0AH ;e raised to power in X.
.PWR EQU 8BH ;Y raised to power in X.
; MISC. OPERATIONS
;No Operation, clear
.NOP EQU 00H ;status byte to NULL
FTOI EQU 1FH ;Convert X from float format
FTOL EQU 1EH ; to either int or long format.
ITOF EQU 1DH ;Convert X from int or long format
LTOF EQU 1CH ; to float format
NXI EQU 74H ;Negate X, int format (change sign)
NXL EQU 34H ;Negate X, long format
NXF EQU 15H ;Negate X, float format
PXI EQU 77H ;PUSH Stack (int, long, float).
PXL EQU 37H ; X is copied into Y.
PXF EQU 17H ; Last on stack is lost.
RDI EQU 78H ;Rotate Down (pop stack).
RDL EQU 38H ; Old Y becomes new X.
RDF EQU 18H ; Old X rotates to last.
XY.I EQU 79H ;Exchange X and Y, int
XY.L EQU 39H ;Exchange X and Y, long
XY.F EQU 19H ;Exchange X and Y, float
PXF.PI EQU 1AH ;Push (float to X), the pi constant.
; SMALL INTEGERS AS FLOATS
; Negative, one through ten
; (last two bytes are nulls for small integers)
NFE10 EQU 084A0H
NFE9 EQU 08490H
NFE8 EQU 08480H
NFE7 EQU 083E0H
NFE6 EQU 083C0H
NFE5 EQU 083A0H
NFE4 EQU 08380H
NFE3 EQU 082C0H
NFE2 EQU 08280H
NFE1 EQU 08180H
; Positive, zero through ten
; (again, the two low order bytes are nulls)
FE0 EQU 0
FE1 EQU 0180H
FE2 EQU 0280H
FE3 EQU 02C0H
FE4 EQU 0380H
FE5 EQU 03A0H
FE6 EQU 03C0H
FE7 EQU 03E0H
FE8 EQU 0480H
FE9 EQU 0490H
FE10 EQU 04A0H
.Z80 ; Zilog Code
LDR.FV MACRO FVAL ; load float val of int to registers
IFB <FVAL>
EXITM
ENDIF
LD BC,FVAL
LD DE,0
ENDM
EQUJPS MACRO DEVC,J1,J2,J3,J4,J5,J6
LOCAL JMPIN,DBJ
IFB <J1>
EXITM
ENDIF
IFNB <DEVC>
LD A,DEVC
LD (CMDBYT),A
ENDIF
IFB <J3>
IFB <J2>
JP J1
ELSE
LD IX,J2
JP J1
ENDIF
ELSE
LD IX,JMPIN
LD A,-3
JMPIN: ADD A,3
LD (DBJ),A
DB 018H ; JR (jump relative)
DBJ: DB 0 ; displacement byte
IRP J,<<J1>,<J2>,<J3>,<J4>,<J5>,<J6>>
IFB <J>
EXITM
ENDIF
JP J
ENDM
ENDIF
ENDM
.8080