???????||LD ? *AR4,B
???????MASR ? *AR2+,*AR3+,B,A
???????MPYA ? A
???????STH ?????A,*AR2
???????MASR ? *AR2-,*AR3+,B,A
???????MPYA ? *AR2+
???????ST ??? B,*AR2
???????||LD ? *AR4,B
???????MASR ? *AR2-,*AR3+,B,A
???????MPYA ? *AR2+
???????ST ??? B,*AR2
???????||LD ? *AR4,B
???????MASR ? *AR2-,*AR3+,B,A
???????MPYA ? d_xs
???????STH ?????B,d_sinx
???????RET
?
?
cosx:
??????? .def ?d_xc,d_cosx
??????? .data
table_c ?? .word 0249h ?????? ??;c1=1/(8*7)
??????? .word 0444h ??????????;c2=1/(6*5)
??????? .word 0aabh ??????????;c3=1/(4*3)
??????? .word 4000h ??????????;c4=1/(2*1) ??????
coef_c .usect ??"coef_c",4
d_xc ?? .usect ??"cos_vars",1
squr_xc ?? .usect ??"cos_vars",1
temp_c .usect ??"cos_vars",1
d_cosx .usect ??"cos_vars",1
l_c ??? .usect ??"cos_vars",1
???????.text
???????SSBX ? FRCT
???????STM ?????#coef_c,AR5
???????RPT ?????#3
???????MVPD ? #table_c,*AR5+
???????STM ?????#coef_c,ar3
???????STM ?????#d_xc,AR2
???????STM ?????#l_c,AR4
???????ST ??? #7FFFH,l_c
???????SQUR ? *AR2+,A
???????ST ??? A,*AR2
???????||LD ? *AR4,B
???????MASR ? *AR2+,*AR3+,B,A
???????MPYA ? A
???????STH ?????A,*AR2
???????MASR ? *AR2-,*AR3+,B,A
???????MPYA ? *AR2+
???????ST ??? B,*AR2
???????||LD ? *AR4,B
???????MASR ? *AR2-,*AR3+,B,A
???????SFTA ? A,-1,A
???????NEG ?????A
???????MPYA ? *AR2+
???????MAR ?????*AR2+
???????RETD
???????ADD ?????*AR4,16,B
???????
???????STH ?????B,*AR2
???????RET
?
????????.sect ".vectors"
?
????????.align ?0x80 ??????????; must be aligned on page boundary
?
RESET: ?????????????????????????; reset vector
????????BD main ????????????????; branch to C entry point
評論