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