📄 direct.asm
字号:
.version 50
.mmregs
.MLIB "MAC.LIB"
.GLOBAL EMAX
.BSS SUBCODE_I,1
.bss FRAME_LOOP,1
.BSS TJ,2 ;//by durbin LSP34
.BSS TEMP,1 ;//by pctorc, durbin
.BSS CORFLAG,1 ;//by pctorc, durbin
.BSS DIVISOR,1 ;//by durbin
.BSS SIGNFLAG,1 ;//by pctorc,durbin
.bss LSPFLAG,1
.bss ACCBUF,2
.BSS ACCBBUF,2
.BSS IBUF,1
.BSS MINPQ,2
.BSS BB,5 ;//PTENCODE
.BSS PINDEX,1 ;//BY PTENCODE
.BSS SSUB_ADDR,1
.BSS FIRST_SUB,1
.BSS ADDR_SYN_S,1
.BSS ACC_PUSH,2
.BSS SP_STACK,1
;--------
.COPY "WARRAY.ASM"
.copy "set_con.asm"
;-----------
.data
.COPY "DATA_SEG.ASM"
;----------
.text
B C50_START ;0 RS
.SPACE 16*2 ;2 INT1
.SPACE 16*2 ;4 INT2
.SPACE 16*2 ;6 INT3
.SPACE 16*2 ;8 TINT
B SP0_RE_TRAP ;10 RINT
.SPACE 16*2 ;12 XINT
;B SP0_TX ;12 XINT
.SPACE 16*2 ;14 TRNT
.SPACE 16*2 ;16 TXNT
.SPACE 16*2 ;18 INT4
;------------------------
C50_START
CALL C50_INIT
LDP #ACCBUF
;B FORE_HERE
;------
SPLK #SP_IN_DATA, ADDR_SP_IN_DATA
LACC #SP_OUT_DATA+240-240
SLAC ADDR_SP_OUT_DATA
;SPLK #S0, ADDR_SP_IN_DATA
;LACC #S0
;SLAC ADDR_SP_OUT_DATA
;------
LACC #10H
SAMM IMR ;OPEN RINT
;CLRC INTM
;NOP
CODE_AGAIN
;=============================
LDP #ACCBUF
CLR0 D1A,229
CLR0 D1B,229
CLR0 D2A,22
CLR0 D2B,22
CLR0 D3A,22
CLR0 D3B,22
CLR0 D4A,22
CLR0 D4B,22
CLR0 SOLD,240 ;SOLD[I]=0
LACC #TRUE
SACL FIRST_SUB
LDP #FRAME_LOOP
LACC #1
SACL OLDPTR ;//PSEARCH
LACC #DEBUG_FRAME
LACL #1
SACL FRAME_LOOP
SPLK #SP_OUT_DATA,ADDR_SYN_S
;----
CLRC INTM
NOP
GET_SIGNAL
;--------
;SPLK #SP_OUT_DATA,ADDR_SYN_S
;LACC ADDR_SP_IN_DATA
;SACL ADDR_SYN_S
;--------
CALL GETS
CALL HAMSIG
call GETCOR
call DURBIN
CALL BWEXP
CALL PCTORC
call PCLSP
MOVEFR 10,LSP,TMP
CALL TESTLSP;!!!!!!!!
CALL LSP34
CALL TESTLSP;!!!!!!!!
CALL INTAN
LACL #0
SACL SUBCODE_I
LACC #SUBLSP
SACL ADDR_LSP
LACC #SOLD+120
SACL SSUB_ADDR
SUBCODE
;----------
CALL LSPPC
;----------
;SETC INTM
CALL CSUB
;--------
LACC ADDR_SYN_S
SAMM BMAR
ADD #60
SACB
LACC #SP_OUT_DATA+480-1
CRLT ;C==1 IF .+480-1<ADDR
NOP
XC 2,C
LACC #SP_OUT_DATA
SACL ADDR_SYN_S
LAR AR0,#SYN_S
MAR *,AR0
RPT #59
BLDD *+,BMAR
CLRC INTM;!!!!!!!!!!!!!!!!!!
;---------
lacc SSUB_ADDR
ADD #60
SACL SSUB_ADDR
;-----
LACC #FALSE
SACL FIRST_SUB
;----------
LACC ADDR_LSP
ADD #10
SACL ADDR_LSP
LACC SUBCODE_I
ADD #1
SACL SUBCODE_I
SUB #4
BCND SUBCODE,NEQ
;-------for (i = 0; i < ll; i++) sold[i] = snew[i];
MOVEFR 240,SNEW,SOLD
;------
LACC FRAME_LOOP
ADD #1
SACL FRAME_LOOP
sub #DEBUG_FRAME
;BCND GET_SIGNAL,LEQ
B GET_SIGNAL
FORE_HERE
;LACC #10H
;SAMM IMR ;OPEN RINT
CLRC INTM
NOP
HERE: B $
.BSS ADDR_SP_OUT_DATA,2
.BSS ADDR_SP_IN_DATA,1
SP0_RE_TRAP
LAMM AR0
SACL SP_STACK
;----IN=====
LAMM DRR
SAMM DXR
SACL PCM
CALL PCMTOLINEAR ;PCM->SLK
;----
LACC ADDR_SP_IN_DATA
SUB #SP_IN_DATA+240
BCND $,GT;!!!!!!!!!!
ADD #SP_IN_DATA+240
SAMM AR0
ADD #1
SACL ADDR_SP_IN_DATA
MAR *,AR0
LACC SLK
SACL *,2
;--=========OUT======--------------
SP0_T1
LLAC ADDR_SP_OUT_DATA
SAMM AR0
MAR *,AR0
LACC *
BSAR 2
SACL SRK
CALL LINEARTOPCM ;SRK->PCM
LACC PCM
;SAMM DXR
;------
LLAC ADDR_SP_OUT_DATA
ADD #1
SACB
;-----
LACC #SP_OUT_DATA+480-1
;------
CRLT ;C==1 IF .+480<ADDR .i.e JUMP IF AR0=+480
NOP
XC 2,C
LACC #SP_OUT_DATA
SLAC ADDR_SP_OUT_DATA
;----
LACC SP_STACK
SAMM AR0
RETE
;=================================
;=================================
.INCLUDE "SUB_INCL.ASM"
.INCLUDE "PCM.ASM"
.INCLUDE "TESTLSP.ASM"
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -