📄 wpart1.asm
字号:
.GLOBAL STATUS,ACCBUF,SINCOR,SIGNFLAG,HP10,LSPFLAG,LSP,FL,FR,FM,PXR
;.DEF CWSR
.BSS CODE_I,1
.bss FRAME_LOOP,1
.BSS ADDR_SIG,1
.BSS TJ,2
.BSS KBUF,1
.BSS ALPHA,2
.BSS BETA,2
.BSS LPC0,1
.BSS LPC,10
.BSS TEMP,1
.BSS CORFLAG,1
.BSS STACK,2
.BSS DIVISOR,1
.BSS SIGNFLAG,1
.bss LSPFLAG,1
.bss ACCBUF,2
.BSS ACCBBUF,2
.BSS STATUS,2
.BSS IBUF,1
.BSS MINPQ,2
;---------
.BSS XF,1 ;lsppc
.BSS XX,1
.BSS ADDR_LSP,1
;-----------
.BSS FL,1
.BSS FR,1
.BSS FM,1
.BSS TFR,1
;-----------
.BSS PXR,1
.BSS PXM,1
.BSS PXL,1
.BSS TPXR,1
;------------
.BSS QXL,1
.BSS QXR,1
.BSS QXM,1
.BSS TQXR,1
;------------
.BSS TLSP_0,1 ;LSP34
.BSS TLSP_1,1
.BSS TLSP_2,1
.BSS TLSP_0_M,1
.BSS TLSP_1_M,1
;.BSS IBUF,1
.BSS LOW,1
.BSS LEVELS,1
.BSS ERRORDN,1
.BSS ERRORUP,1
;--------
SIGNAL .USECT "WARRAY",240
;LPC0 .USECT "WARRAY",1
;LPC .USECT "WARRAY",10
LSP .USECT "WARRAY",11
COR .USECT "WARRAY",11*2
RC .USECT "WARRAY",10
RCEXP .USECT "WARRAY",10
TMP .USECT "WARRAY",10
TEMPLPC .USECT "WARRAY",10
LSPPQ .USECT "WARRAY",5
TEMPLSP .USECT "WARRAY",10
FINDEX .USECT "WARRAY",10
SUBLSP .USECT "WARRAY",40
OLDLSP .USECT "WARRAY",10
;-----------------lsppc
LSPPC_A .USECT "WARRAY",6*2
LSPPC_A1 .USECT "WARRAY",6*2
LSPPC_A2 .USECT "WARRAY",6*2
LSPPC_B .USECT "WARRAY",6*2
LSPPC_B1 .USECT "WARRAY",6*2
LSPPC_B2 .USECT "WARRAY",6*2
LSPPC_P .USECT "WARRAY",5
LSPPC_Q .USECT "WARRAY",5
;--------
.GLOBAL MAXNCSIZE,MAXL,MAXCODE,MAXLL,MAXLP,MMIN,MMAX,MAXPA,MAXPD
.GLOBAL MAXM2
MAXNCSIZE .set 512
MAXL .set 60
MAXCODE .set 2*(MAXNCSIZE)+MAXL
MAXLL .set 240
MAXNO .set 10
MAXLP .set 60 ;/* bug, fixed - See MAXPA */
MAXNP .set 3
MMIN .set 20
MMAX .set 147
MAXPD .set 256
MAXM2 .set 20
MAXPA .set MAXLP+MMAX+2+MAXM2
N128 .SET 128
NBP .SET 10
NBQ .SET 10
LSPEPS .SET 1
FLEN .SET 240
FLEN_1 .SET 239
HFLEN .SET 120 ;FLEN/2
HFLEN_1 .SET 120-1
P10 .SET 10
P10_1 .SET 9
P10_2 .SET P10-2
P10P .SET P10+1
HP10 .SET P10/2
HP10_1 .SET HP10-1
DEBUG_FRAME .SET 9
;-----------
.data
LSPTAB .COPY "LSPTAB.DAT"
BITS_1 .INT 7,15,15,15,15,7,7,7,7,7 ;//{3, 4, 4, 4, 4, 3, 3, 3, 3, 3};
TCOR .COPY "C_10.DAT"
S0 .copy "sIG9.dat" ;240 signal values
HAMS .COPY "HAMS.DAT"
POW .int 7f40h,7e80h,7dc2h,7d05h,7c49h,7b8eh,7ad4h,7a1ch,7964h,78aeh
COSCOR .INT 0e216H,2078H,0fd54H,1eH,0ffffH
LSPCOS .COPY "LSPCOS.DAT" ;cos(i* pi * 0.5*(11.0-2*j)/N) *0x8000u
LASTLSP .INT 05d1h, 0ba3h, 01174h, 01745h, 01d17h
.int 022e8h, 028b9h, 02e8ah, 0345ch, 03a2dh
INTANW .INT 7000H, 5000H, 3000H, 1000H, 1000H, 3000H, 5000H, 7000H
LSPOLD .INT 3d7H,666H,0b85H,10a4H,1852H,1d71H, 251fH,2a3dH,31ecH,3852H
;//.int 571h,8f6h,0d9ah,1785h,01c00h,02000h,02b33h,02f33h,036e1h,03b5ch
;----------
.text
CALL C50_INIT
LDP #FRAME_LOOP
LACC #S0
SACL ADDR_SIG
LACC #DEBUG_FRAME
SACL FRAME_LOOP
GET_SIGNAL
CALL GETS
CALL HAMSIG
call GETCOR
LDP #LPC0
LACC #2000H
SACL LPC0
call DURBIN
CALL BWEXP
CALL PCTORC
call PCLSP
CALL LSP34
CALL INTAN
LACC #4
SACL CODE_I
LACC #SUBLSP
SACL ADDR_LSP
SUBCODE
CALL LSPPC
LACC ADDR_LSP
ADD #10
SACL ADDR_LSP
LACC CODE_I
SUB #1
SACL CODE_I
BCND SUBCODE,NEQ
;------
LACC ADDR_SIG
ADD #FLEN
SACL ADDR_SIG
LACC FRAME_LOOP
SUB #1
SACL FRAME_LOOP
BCND GET_SIGNAL,NEQ
;=================================
;=================================
; .include "c50_init.asm"
; .include "getcor.asm"
; .include "longdiv.asm"
; .INCLUDE "INTDIV.ASM"
; .INCLUDE "AJUST.ASM"
; .INCLUDE "DURBIN.ASM"
; .INCLUDE "GETS.ASM"
; .INCLUDE "HAMSIG.ASM"
; .INCLUDE "BWEXP.ASM"
; .INCLUDE "PCTORC.ASM"
;---------------
; .include "wcos1.asm"
; .include "wcos.asm"
; .include "wsin.asm"
; .INCLUDE "INTACC.ASM"
; .INCLUDE "PCLSP.ASM"
; .INCLUDE "LSP34.ASM"
; .INCLUDE "INTAN.ASM"
; .include "lsppc.asm"
;-------------------
;.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -