📄 dv336.asm
字号:
rets
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;subN: jinit
jinit: ldi @FIRH46,ar0 ;H(I) addreer INIT FIR40 FILTER
ldi @H46,ar1
ldf *ar0++,r0
ldi N46,r1
subi 2,r1
rpts r1
ldf *ar0++,r0
|| stf r0,*ar1++
stf r0,*ar1
ldi @X46,ar0 ;X(I) BUFFER init
ldf 0,r0
rpts 07fh
stf r0,*ar0++
ldi @X46,ar0
ldi @SAR46,ar1
sti ar0,*ar1 ;FIR40 FILTER INIT END
rets
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;subO: jljsdc
jljsdc:
ldf 0,r6
ldi @JINADDR,ar1
ldi JDLENTH,rc
subi 1,rc
rptb jljsdc0
jljsdc0:addf *ar1++,r6
mpyf @XNUM,r6
ldi @JINADDR,ar1
ldi JDLENTH,rc
subi 1,rc
ldf 0,r1
subf3 r6,r1,r4 ;r4=-m(i)
rptb jljsdc3
ldf *ar1,r2
addf r4,r2 ;r2=r2+m(i)
jljsdc3:stf r2,*ar1++
ldf 0,r5
ldf 0,r0
ldi @JINADDR,ar1
ldf *ar1++,r2
ldi JDLENTH,rc
subi 1,rc
rptb jljsdc1
cmpf 0,r2
ble jljsdc1
addf r2,r5
addf 1,r0
jljsdc1:ldf *ar1++,r2
call invf
mpyf r0,r5
ldf r5,r3
ldf 0,r5
ldf 0,r0
ldi @JINADDR,ar1
ldf *ar1++,r2
ldi JDLENTH,rc
subi 1,rc
rptb jljsdc2
cmpf r3,r2
blt jljsdc2
addf r2,r5
addf 1,r0
jljsdc2:ldf *ar1++,r2
call invf
mpyf r0,r5
ldi @JSUM,ar1
mpyf @STXS,r5
stf r5,*ar1
rets
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;subP: mlampj
mlampj: ldi @RAX,ar0
ldi *ar0,r0
cmpi 0a0h,r0
beq jhcode
ldi @JNWAIT,ar0 ;no signal: 0A3h NWAIT=(0,1)
ldi *ar0,r0 ;check wait states
cmpi 1,r0 ;if NWAIT=1 then goto state1
beq jnsta0 ;if NWAIT=0 the next
ldi 0,r0
ldi @JNUM,ar2
sti r0,*ar2
ldi @JNWAIT,ar0
ldi 1,r0
sti r0,*ar0 ;write wait flag
br lamp4j
jnsta0:
ldi @JNUM,ar2
ldi *ar2,r0
cmpi @JLJSB1,r0
blt lamp4j
ldi 0h,r2
br tlampj
jhcode:
ldi 0,r0
ldi @JNUM,ar0
sti r0,*ar0
ldi @JNWAIT,ar0
sti r0,*ar0
ldi @JSORT,ar2
ldi *ar2,r2
ldi @PRLAMP,ar2
ldi *ar2,r5 ;get above lamp code
cmpi r2,r5 ;if old lamp=new lamp
bne jhcode0
br lamp4j ;now is OK,now is 0a0h
jhcode0:
ldi @JSORT,ar2
ldi *ar2,r2
ldi @SMODE,ar0
ldi *ar0,r1
ldi @GMODE,ar0
sti r1,*ar0
tlampj: ldi @PRLAMP,ar2
sti r2,*ar2
ldi 0,r0
ldi @ZNUM,ar2 ;clear
sti r0,*ar2
ldi @HNUM,ar2
sti r0,*ar2
ldi @JNWAIT,ar2
sti r0,*ar2
lamp4j: rets
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;comm subK: fft
fft: ldi @LOGFFT,ar0 ;ar0 save 09--512,0b--2048
ldi 1,ar1
lsh3 *ar0,ar1,r7
ldi r7,ir0
ldi r7,ar7
lsh -1,ar7
ldi 2048,ir1
ldi 13,ar4
subi *ar0,ar4
lsh3 ar4,ar1,ar5
ldi 1,ar6
fft1: ldi @INADDRD,ar0
ldi *ar0,ar0
addi3 ar7,ar0,ar1
addi3 r7,ar0,ar2
addi3 ar7,ar2,ar3
ldi ar6,rc
subi 1,rc
rptb fft2
addf3 *ar1,*ar0,r0
subf3 *ar1,*ar0,r1
addf3 *ar3,*ar2,r2
subf3 *ar3,*ar2,r3
stf r1,*ar1++(ir0)
|| stf r0,*ar0++(ir0)
fft2: stf r3,*ar3++(ir0)
|| stf r2,*ar2++(ir0)
cmpi 1,ar7
bzd fft5
ldi 1,r6
ldi @SINTAB,ar4
fft3: addi ar5,ar4
ldf *ar4,r5
ldi r6,ar0
ldi @INADDRD,ar1
ldi *ar1,ar1
addi ar1,ar0
addi3 ar7,ar0,ar1
addi3 r7,ar0,ar2
addi3 ar7,ar2,ar3
addi 1,r6
ldi ar6,rc
subi 1,rc
rptb fft4
subf3 *ar1,*ar0,r2
subf3 *ar3,*ar2,r1
mpyf3 r2,r5,r0
|| addf3 *ar3,*ar2,r3
mpyf3 *+ar4(ir1),r1,r3
|| stf r3,*ar2++(ir0)
subf3 r0,r3,r4
mpyf3 r1,r5,r0
|| addf3 *ar1,*ar0,r3
mpyf3 *+ar4(ir1),r2,r3
|| stf r3,*ar0++(ir0)
addf r0,r3
fft4: stf r4,*ar3++(ir0)
|| stf r3,*ar1++(ir0)
cmpi ar7,r6
bnz fft3
lsh 1,ar5
brd fft1
lsh 1,ar6
ldi ar7,ir0
lsh -1,ar7
fft5: ldi r7,rc
subi 3,rc
ldi r7,ir0
lsh -1,ir0
ldi @INADDRD,ar0
ldi *ar0,ar0
addi3 r7,ar0,ar1
ldi ar0,ar2
nop *ar0++(1)
nop *ar2++(ir0)B
ldi ar1,ar3
rptb fft6
cmpi ar2,ar0
bged fft6
nop *ar1++(1)
nop *ar3++(ir0)B
ldf *ar2,r2
|| ldf *ar0++(1),r0
ldf *ar3,r3
|| ldf *ar1,r1
stf r2,*-ar0(1)
|| stf r0,*ar2
stf r3,*ar1
|| stf r1,*ar3
fft6: nop *ar2++(ir0)B
rets
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;comm subL: ifft
ifft: ldi @LOGFFT,ar0 ;ar0 save 09--512,0b--2048
ldi 1,ar1
lsh3 *ar0,ar1,r7
ldi r7,ir0
ldi r7,ar7
lsh -1,ar7
ldi 2048,ir1
ldi 13,ar4
subi *ar0,ar4
lsh3 ar4,ar1,ar5
ldi 1,ar6
ldi @INADDRD,ar0
ldi *ar0,ar0
ldi r7,r0
addi3 r0,ar0,ar0
ldi r0,rc
subi 1,rc
rptb ifft1
ldf *ar0,r0
negf r0,r0
ifft1: stf r0,*ar0++(1)
ifft2: ldi @INADDRD,ar1
ldi *ar1,ar0
addi3 ar7,ar0,ar1
addi3 r7,ar0,ar2
addi3 ar7,ar2,ar3
ldi ar6,rc
subi 1,rc
rptb ifft3
addf3 *ar1,*ar0,r0
subf3 *ar1,*ar0,r1
addf3 *ar3,*ar2,r2
subf3 *ar3,*ar2,r3
stf r1,*ar1++(ir0)
|| stf r0,*ar0++(ir0)
ifft3: stf r3,*ar3++(ir0)
|| stf r2,*ar2++(ir0)
cmpi 1,ar7
bzd ifft6
ldi 1,r6
ldi @SINTAB,ar4
ifft4: addi ar5,ar4
ldf *ar4,r5
ldi r6,ar0
ldi @INADDRD,ar1
ldi *ar1,ar1
addi ar1,ar0
addi3 ar7,ar0,ar1
addi3 r7,ar0,ar2
addi3 ar7,ar2,ar3
addi 1,r6
ldi ar6,rc
subi 1,rc
rptb ifft5
subf3 *ar1,*ar0,r2
subf3 *ar3,*ar2,r1
mpyf3 r2,r5,r0
|| addf3 *ar3,*ar2,r3
mpyf3 *+ar4(ir1),r1,r3
|| stf r3,*ar2++(ir0)
subf3 r0,r3,r4
mpyf3 r1,r5,r0
|| addf3 *ar1,*ar0,r3
mpyf3 *+ar4(ir1),r2,r3
|| stf r3,*ar0++(ir0)
addf r0,r3
ifft5: stf r4,*ar3++(ir0)
|| stf r3,*ar1++(ir0)
cmpi ar7,r6
bnz ifft4
lsh 1,ar5
brd ifft2
lsh 1,ar6
ldi ar7,ir0
lsh -1,ar7
ifft6: ldi r7,rc
subi 3,rc
ldi r7,ir0
lsh -1,ir0
ldi @INADDRD,ar1
ldi *ar1,ar0
addi3 r7,ar0,ar1
ldi ar0,ar2
nop *ar0++(1)
nop *ar2++(ir0)B
ldi ar1,ar3
rptb ifft7
cmpi ar2,ar0
bged ifft7
nop *ar1++(1)
nop *ar3++(ir0)B
ldf *ar2,r2
|| ldf *ar0++(1),r0
ldf *ar3,r3
|| ldf *ar1,r1
stf r2,*-ar0(1)
|| stf r0,*ar2
stf r3,*ar1
|| stf r1,*ar3
ifft7: nop *ar2++(ir0)B
ldi @INADDRD,ar0
ldi *ar0,ar0
ldi r7,r0
addi3 r0,ar0,ar0
ldi r0,rc
subi 1,rc
rptb ifft8
ldf *ar0,r0
negf r0,r0
ifft8: stf r0,*ar0++(1)
rets
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;comm_sub end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sfs_sub start!
;------------------------------------------------------------sfs_sub list!
; 1: sfs1 2: snbs 3: snbu 4: sfsf 5: sfs2
; 6: sf1code 7: sifft0 8: snf1 A: verall
; B: sfsout C: srcout
;------------------------------------------------------------sfs_sub list!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sfs sub1: sfs1
sfs1: ldf 0,r1
ldi @RF0,ar0
stf r1,*ar0
ldi @RF1,ar0
stf r1,*ar0
ldi @S_AMP,ar0
stf r1,*ar0
ldi 0,r1
ldi @RF0C,ar0
sti r1,*ar0
ldi @RF1CO,ar0
sti r1,*ar0
ldi 0,r6
ldi @SRESUL,ar0
ldi ar0,ar6
addi 14,ar6
addi 1,ar0
ldf *ar0++(2),r0
sfs10: ldf *ar0++(2),r1
cmpi ar6,ar0
bge sf0a3
ldi ar0,ar1
subi 5,ar1 ;7 2000.5.29
subf3 r0,r1,r4
cmpf 40,r4
blt sfs12
ldf 0,r4
stf r4,*ar1++
stf r4,*ar1
ldf r1,r0
addi 1,r6
br sfs10
sfs12: ldi @SRESUL,ar0
ldi ar0,ar6
addi 13,ar0
ldf *ar0--(2),r0
sfs14: ldf *ar0--(2),r1
cmpi ar6,ar0
ble sf0a3
ldi ar0,ar1
addi 4,ar1 ;7 2000.5.29
subf3 r1,r0,r4
cmpf 40,r4
blt sfs16
ldf 0,r4
stf r4,*ar1--
stf r4,*ar1
ldf r1,r0
addi 1,r6
br sfs14
sfs16: ldi @SRESUL,ar0
ldi @SRESUL0,ar6
ldi 7,r7
call rsort
subi 7,r6
absi r6
cmpi 4,r6
blt sf0a3
ldi 0,ar5
ldf 88,r2
ldi @SRESUL0,ar0
addi 1,ar0
ldi 2,r7 ;3
sfs18: ldf *ar0++(2),r1 ;r1 is f
ldi 4,r5 ;5
ldi ar0,ar2 ;save ar0 ***
sfs19: ldf *ar0++(2),r3 ;r3 is second f
subf3 r3,r1,r4
absf r4,r4
cmpf SFSBLIMT,r4 ;biao 2 80
ble sfs21
call sfsf
sfs21: subi 1,r5
cmpi 0,r5
bz sfs20
br sfs19
sfs20: subi 1,r7
cmpi 0,r7
ble sfs1g
ldi ar2,ar0
br sfs18
sfs1g: cmpf SF0ERR0,r2
bgt sf0a3
ldf 0,r6
float 550,r1
float 650,r2
float 750,r3
float 850,r4
cmpi 1,ar5
ldfeq r1,r6
cmpi 2,ar5
ldfeq r2,r6
cmpi 3,ar5
ldfeq r3,r6
cmpi 4,ar5
ldfeq r4,r6
ldi @RF0,ar0
stf r6,*ar0
ldi @ZF0,ar0 ;find f0
stf r6,*ar0
ldi @RF0C,ar0
sti ar5,*ar0
call snbs
ldi 1,r6
call suamp
cmpi 55h,r7
bne sf0a3
call sifft0
call sfs2
br squit
sf0a3: ldi 0aah,r7
squit: rets
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sub2: suamp
suamp: ldi @SLIMITD,ar1
cmpi 2,r6
ldieq @ULIMITD,ar1
ldf *ar1,r5
cmpi 2,r6
beq juampcom
ldi 0,r7
cmpf SLIMI0,r5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -