📄 atan_div.inc
字号:
;--------------------------------------------------------------------
; Macros
;--------------------------------------------------------------------
;--------------------------------------------------------------------
; ATAN:
;--------------------------------------------------------------------
ATAN .macro
;local #1 = ACC
;--------------------
sacl * ;local #1 = parameter
;calculte atan for POSITIV fractional numbers
;--------------------------------------------
clrc sxm
lacc *+,tablen_lg2+1 ;lookup table length = 2^tablen_lg2
sach * ;local #2 = first table address
lacc #table
add *
tblr *+ ;local #2 = first value
add #1
tblr * ;local #3 = second value
lacc *-
sub *+ ;ACC = difference = local #3 - #2
sacl * ;local #3 = difference
lt * ;T = difference
sbrk #2 ;AR2 points to local #1
lacc *,tablen_lg2 ;ACC = local #1 << tablen_lg2
and #7FFFh ;make distance positiv value
setc sxm
sacl * ;local #1 = distance
mpy *+ ;differnce * distance
spm 1
lacc *-,16 ;ACCH = local #2 = first value
apac ;ACC += distance * difference
sach * ;local #1 = 'positiv' result
lacc *
spm 0 ;default 'C' setting
.endm
;---------------------------
; atan(x), with 0 <= x <= 1
;---------------------------
; output scalingfactor = PI
;---------------------------
tablen_lg2 .set 7
.text
;-------------------
; atan lookup table
;-------------------
table:
.word 0
.word 81
.word 163
.word 244
.word 326
.word 407
.word 489
.word 570
.word 651
.word 732
.word 813
.word 894
.word 975
.word 1056
.word 1136
.word 1217
.word 1297
.word 1377
.word 1457
.word 1537
.word 1617
.word 1696
.word 1775
.word 1854
.word 1933
.word 2012
.word 2090
.word 2168
.word 2246
.word 2324
.word 2401
.word 2478
.word 2555
.word 2632
.word 2708
.word 2784
.word 2860
.word 2935
.word 3010
.word 3085
.word 3159
.word 3233
.word 3307
.word 3380
.word 3453
.word 3526
.word 3599
.word 3670
.word 3742
.word 3813
.word 3884
.word 3955
.word 4025
.word 4095
.word 4164
.word 4233
.word 4302
.word 4370
.word 4438
.word 4505
.word 4572
.word 4639
.word 4705
.word 4771
.word 4836
.word 4901
.word 4966
.word 5030
.word 5094
.word 5157
.word 5220
.word 5282
.word 5344
.word 5406
.word 5467
.word 5528
.word 5589
.word 5649
.word 5708
.word 5768
.word 5826
.word 5885
.word 5943
.word 6000
.word 6058
.word 6114
.word 6171
.word 6227
.word 6282
.word 6337
.word 6392
.word 6446
.word 6500
.word 6554
.word 6607
.word 6660
.word 6712
.word 6764
.word 6815
.word 6867
.word 6917
.word 6968
.word 7018
.word 7068
.word 7117
.word 7166
.word 7214
.word 7262
.word 7310
.word 7358
.word 7405
.word 7451
.word 7498
.word 7544
.word 7589
.word 7635
.word 7679
.word 7724
.word 7768
.word 7812
.word 7856
.word 7899
.word 7942
.word 7984
.word 8026
.word 8068
.word 8110
.word 8151
.word 8192
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -