?? hanshu.asm
字號:
;********************************************
; 61h 60h+63h 62h=65h 64h
add32: ldp #0
lacc 61h,16
adds 60h
adds 62h
add 63h,16
sacl 64h
sach 65h
ret
; 61h 60h-63h 62h=65h 64h
sub32: ldp #0
lacc 61h,16
adds 60h
subs 62h
sub 63h,16
sacl 64h
sach 65h
ret
mpyi: ldp #0
bit 60h,0
lt 60h
mpyu 62h
spl 64h
sph 65h
mpy 63h
ltp 61h
mpy 62h
mpya 63h
adds 65h
sacl 65h
sach 66h
lacc 66h
bcnd mpyi1,ntc
add 63h
mpyi1: bit 62h,0
apac
bcnd mpyi2,ntc
add 61h
mpyi2: sach 67h
sacl 66h
bit 65h,0
bcnd mpyi_end,ntc
add #1
mpyi_end: ret
;@@@@@@@@@@@@@@@222222222222222222222222222222
divi: ldp #0
lacl 61h
xor 63h
sach 71h,1
mar *,ar1
lar ar1,#31
lacl #0
sacl 67h
sacl 66h
lacc 63h,16
adds 62h
abs
sacl 62h
sach 63h
lacc 61h,16
adds 60h
abs
divi1: sfl
sach 65h
sacl 64h
lacl 66h
add 67h,16
rol
sach 67h
sacl 66h
subs 62h
sub 63h,16
bcnd divi3,nc
sach 67h
sacl 66h
lacl 64h
add 65h,16
add #1
divi4: banz divi1,*-
sacl 64h
sach 65h
lacc 71h
bcnd divi2,eq
lacc 65h,16
adds 64h
neg
sacl 64h
sach 65h
divi2: ret
divi3: lacl 64h
add 65h,16
b divi4
sqri: ldp #0
lacc #0b500h
sacl 64h
sacl 62h
lt 62h
mpyu 62h
lacl 60h
add 61h,16
spac
bcnd sqri1,geq
sqri2: lacl 62h
sacl 63h
sfr
sacl 64h
sacl 62h
lt 62h
mpyu 62h
lacl 60h
add 61h,16
spac
bcnd sqri2,lt
sqri7: lacl 64h
sfr
bcnd sqri3,eq
sacl 64h
adds 62h
sacl 62h
sacl 63h,1
sqri6: lt 62h
mpyu 62h
lacl 60h
add 61h,16
spac
bcnd sqri1,eq
bcnd sqri4,gt
lacl 64h
sfr
bcnd sqri5,eq
sacl 64h
lacl 62h
subs 64h
sacl 62h
b sqri6,*
sqri3: lacl 62h
add #1
sacl 62h
b sqri1,*
sqri5: lacl 62h
sub #1
sacl 62h
ret
sqri4: subs 63h
bcnd sqri7,geq
sqri1: lacc 62h
ret
sin1: ldp #0
lacl #1
sacl 69h
pop
sacl 7eh
call sin1_1
.word 006ch
.word 0004h
.word 0fffah
.word 0111h
.word 0eaabh
.word 07fffh
.word 0800h
call sin1_2
lt 60h
mpy 60h
pac
sach 61h,1
lt 61h
lar ar0,#3
lar ar1,#108
call sin1_3
lacc 7eh
push
lt 60h
mpy 61h
pac
sach 61h,1
lacc 61h
ret
cos1: ldp #0
lacl #1
sacl 69h
pop
sacl 7eh
call sin1_1
.word 006ch
.word 0004h
.word 0ffd3h
.word 0555h
.word 0c000h
.word 07fffh
.word 0800h
call sin1_2
lt 60h
mpy 60h
pac
sach 61h,1
lt 61h
lar ar0,#3
lar ar1,#108
call sin1_3
lacc 7eh
push
lacc 61h
ret
sin1_1: pop
tblr 68h
lar ar1,68h
add 69h
tblr 68h
lar ar0,68h
mar *,ar1
add 69h
sin1_1_1: tblr *+,ar0
add 69h
banz sin1_1_1,*-,ar1
push
ret
sin1_2: lacl 60h
sub 69h,15
bcnd sin1_2_end,neq
lacc 69h,15
add 69h
sacl 60h
sin1_2_end: ret
sin1_3: lacl #0
sacl 61h
sin1_3_1: mpy 61h
pac
sach 61h,1
mar *,ar1
lacc *+,ar0
add 61h
sacl 61h
banz sin1_3_1,*-
ret
arcsin: ldp #0
lacl #1
sacl 69h
pop
sacl 7eh
call sin1_2
lacc #4000h
sacl 64h
sacl 71h
lacl #0
sacl 65h
dmov 60h
lacc 60h
bcnd arcsin_1,geq
cmpl
sacl 61h
arcsin_1: lacc #6bb2h
sub 61h
bcnd arcsin_2,gt
mar *,ar0
lar ar0,#14
lacl #0
sacl 6fh
arcsin_6: lacc 6fh
xor 60h
sacl 6fh
lacc 6fh
bcnd arcsin_3,geq
lacc 65h
sub 64h
sacl 65h
b arcsin_4
arcsin_3: lacc 65h
add 64h
sacl 65h
arcsin_4: lacc 60h
abs
sacl 60h
lt 60h
mpy 60h
pac
sub 71h,15
sach 60h,1
lacc 60h,1
sacl 60h
bcnd arcsin_5,eq
lacc 64h,15
sach 64h
banz arcsin_6,*-
arcsin_5: lacc #6487h
sacl 62h
lt 62h
mpy 65h
pac
sach 61h,1
lacc 7eh
push
lacc 61h
ret
arcsin_2: call sin1_1
.word 6ch
.word 0fh
.word 0a8h
.word 0bch
.word 0d3h
.word 0efh
.word 112h
.word 13fh
.word 17ah,1c9h,238h,2dbh,3e3h,5d6h,999h,1555h,00h,800h
lt 60h
mpy 60h
pac
sach 61h,1
lt 61h
lar ar0,#14
lar ar1,#108
call sin1_3
lacc 7eh
push
lt 60h
mpy 61h
pac
add 60h,15
sach 61h
lacc 61h
ret
;input 60h
;output 61h
arccos: ldp #0
pop
sacl 7ch
call arcsin
lacc 7ch
push
lacl #50
sacl 62h
lacl #67
add 62h,8
sacl 62h
lacc 62h,16
sub 61h,15
sach 61h
lacc 61h
ret
;input 60h
;output 61h
sin2: ldp #0
lacc #6487h
sacl 62h
lacc #0ed4dh
sacl 63h
bit 60h,1
bcnd sin2_1,ntc
bit 60h,0
lacl #0
bcnd sin2_2,ntc
b sin2_3
sin2_2: sacl 71h
lacl 61h
add 60h,16
abs
sach 60h
sacl 61h
lacl 63h
add 62h,16
subs 61h
sub 60h,16
sach 60h,1
call cos1
lacc 71h
bcnd sin2_4,eq
lacc 61h
neg
sacl 61h
sin2_4: lacc 61h
ret
sin2_1: bit 60h,0
bcnd sin2_3,ntc
lacl #1
b sin2_2
sin2_3: lacl 61h
add 60h,16
sfl
sach 60h
call sin1
lacc 61h
ret
;********************************************
;input 60h
;output 61h
cos2: ldp #0
lacc #6487h
sacl 62h
lacc #0ed4dh
sacl 63h
bit 60h,1
bcnd cos2_1,ntc
bit 60h,0
bcnd cos2_2,ntc
b cos2_3
cos2_2: lacl 61h
add 60h,16
abs
sach 60h
sacl 61h
lacl 63h
add 62h,16
subs 61h
sub 60h,16
sach 60h,1
call sin1
ret
cos2_1: bit 60h,0
bcnd cos2_3,ntc
b cos2_2
cos2_3: lacl 61h
add 60h,16
sfl
sach 60h
call cos1
ret
;********************************************
;input 60h/61h
;output 63h
div_b: ldp #0
splk #15,64h
bit 60h,0
bcnd div_b2,tc
bit 61h,0
bcnd div_b2,tc
div_b1: splk #0,62h
b div_b3
div_b2: bit 61h,0
bcnd div_b1,tc
splk #1,62h
div_b3: lacc 61h ;denom
abs
sacl 61h ;denom
lack 15
add 64h
sacl 64h
lacc 60h ;number
abs
rpt 64h
subc 61h ;denom
sacl 63h ;out
bit 62h,15
bcnd div_end,ntc
zac
sub 63h ;out
sacl 63h ;out
div_end: ret
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -