|
Packit |
427e91 |
;some hardware constants C_[n]<DecimalValue>, 'n' indicates negative value
|
|
Packit |
427e91 |
;
|
|
Packit |
427e91 |
;these are in 2's complement representation
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
C_0 equ $040 ;;00000000
|
|
Packit |
427e91 |
C_1 equ $041 ;;00000001
|
|
Packit |
427e91 |
C_2 equ $042 ;;00000002
|
|
Packit |
427e91 |
C_3 equ $043 ;;00000003
|
|
Packit |
427e91 |
C_4 equ $044 ;;00000004
|
|
Packit |
427e91 |
C_8 equ $045 ;;00000008
|
|
Packit |
427e91 |
C_16 equ $046 ;;00000010
|
|
Packit |
427e91 |
C_32 equ $047 ;;00000020
|
|
Packit |
427e91 |
C_256 equ $048 ;;00000100
|
|
Packit |
427e91 |
C_65536 equ $049 ;;00010000
|
|
Packit |
427e91 |
C_2^23 equ $04A ;;00080000
|
|
Packit |
427e91 |
C_2^28 equ $04b ;;10000000
|
|
Packit |
427e91 |
C_2^29 equ $04c ;;20000000 (C_max /4) +1
|
|
Packit |
427e91 |
C_2^30 equ $04d ;;40000000 ( C_max / 2 ) + 1 (almost half)
|
|
Packit |
427e91 |
C_nmax equ $04e ;;80000000 most negative number
|
|
Packit |
427e91 |
C_max equ $04f ;;7fffffff most positive number
|
|
Packit |
427e91 |
C_n1 equ $050 ;;ffffffff -1
|
|
Packit |
427e91 |
C_n2 equ $051 ;;fffffffe -2
|
|
Packit |
427e91 |
C_n2^30 equ $052 ;;c0000000 C_nmax /2
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
C_LSshift equ $55 ;;to left shift an address by using macsints
|
|
Packit |
427e91 |
;;for fractional addresses
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
ZERO equ C_0;
|
|
Packit |
427e91 |
ONE equ C_1;
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
;;; Hardware Registers:
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
ACCUM equ $56
|
|
Packit |
427e91 |
CCR equ $57
|
|
Packit |
427e91 |
NOISE1 equ $58
|
|
Packit |
427e91 |
NOISE2 equ $59
|
|
Packit |
427e91 |
IRQ equ $5A
|
|
Packit |
427e91 |
DBAC equ $5B
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
and macro dest,srcA,srcB
|
|
Packit |
427e91 |
andxor dest,srcA,srcB,C_0
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
xor macro dest,srcA,srcB
|
|
Packit |
427e91 |
andxor dest,C_n1,srcA,srcB
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
not macro dest,src
|
|
Packit |
427e91 |
andxor dest,src,C_n1,C_n1
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
nand macro dest,srcA,srcB
|
|
Packit |
427e91 |
andxor dest,srcA,srcB,C_n1
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
or macro dest,srcA,srcB
|
|
Packit |
427e91 |
not C_0,srcA
|
|
Packit |
427e91 |
andxor dest,ACCUM,srcA,srcB
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
nor macro dest,srcA,scrB
|
|
Packit |
427e91 |
not dest,srcA
|
|
Packit |
427e91 |
andxor dest,srcB,dest,srcA
|
|
Packit |
427e91 |
not dest,dest
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
neg macro dest,src
|
|
Packit |
427e91 |
macs1 dest,C_0,C_1,C_nmax
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
;;; branch on:
|
|
Packit |
427e91 |
;;; ==0
|
|
Packit |
427e91 |
beq macro count
|
|
Packit |
427e91 |
skip CCR,CCR,C_8,count
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
;;; !=0
|
|
Packit |
427e91 |
bne macro count
|
|
Packit |
427e91 |
skip CCR,CCR,C_256,count
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
;;; <0
|
|
Packit |
427e91 |
blt macro count
|
|
Packit |
427e91 |
skip CCR,CCR,C_4,count
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
;;; always branch
|
|
Packit |
427e91 |
bra macro count
|
|
Packit |
427e91 |
skip C_0,C_max,C_max,count
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
;;; on saturation
|
|
Packit |
427e91 |
bsa macro count
|
|
Packit |
427e91 |
skip CCR,CCR,C_16,count
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
bge macro count
|
|
Packit |
427e91 |
C___80 con $80
|
|
Packit |
427e91 |
skip CCR,CCR,C___80,count
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
bgt macro count
|
|
Packit |
427e91 |
C___180 con $180
|
|
Packit |
427e91 |
skip CCR,CCR,C___180,count
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
move macro dest,src
|
|
Packit |
427e91 |
macs dest,src,C_0,C_0
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
end
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
;;; usefull for testing values before a skip
|
|
Packit |
427e91 |
test macro test
|
|
Packit |
427e91 |
macs C_0,test,C_0,C_0
|
|
Packit |
427e91 |
endm
|
|
Packit |
427e91 |
|
|
Packit |
427e91 |
cmp macro src1.scr2
|
|
Packit |
427e91 |
macints C_0,src1,C_n1,src2
|
|
Packit |
427e91 |
endm
|