?? decl2lib.s
字號:
eld a ,#32
eld rpd0.index_Gbound ,a
ldw r1 ,@[a13+Index_FrameBitRate] //2002
ecld a ,r1 //2002
efz8 a //2002
eld rpd0.index_Gbitrate ,a //2002
jmp condi_done
next_condi1
cmp eq ,r0 ,#1
brf next_condi2
eld a ,#2
eld rpd0.index_Gnch ,a
eld a ,rpd0.index_GmodeExt
eadd a ,#1
esla a
esla a
eld rpd0.index_Gbound ,a
ldw r1 ,@[a13+Index_FrameBitRate]
ecld a ,r1
efz8 a
esra a
eld rpd0.index_Gbitrate ,a
jmp condi_done
next_condi2
eld a ,#2
eld rpd0.index_Gnch ,a
eld a ,#32
eld rpd0.index_Gbound ,a
ldw r1 ,@[a13+Index_FrameBitRate]
ecld a ,r1
efz8 a
esra a
eld rpd0.index_Gbitrate ,a
condi_done
eld a ,rpd1.index_Glsf
ecld r0 ,a
cmp eq ,r0 ,#1
brt MPG2_table
eld a ,rpd0.index_Gbitrate
ecld r1 ,a
eld a ,rpd1.index_GOrgSampFreq
ecld r0 ,a
cmp eq ,r0 ,#0
brf none44k
cmp ge ,r1 ,#56
brt over56_44k
eld a ,#tbl_alloc2
eld c ,#tbl_nbal2
eld d ,#8
jmp table_selected
over56_44k
cmp ge ,r1 ,#96
brt over96_44k
eld a ,#tbl_alloc0
eld c ,#tbl_nbal0
eld d ,#27
jmp table_selected
over96_44k
eld a ,#tbl_alloc1
eld c ,#tbl_nbal1
eld d ,#30
jmp table_selected
none44k
cmp eq ,r0 ,#1
brf none48k
cmp ge ,r1 ,#56
brt over56_48k
eld a ,#tbl_alloc2
eld c ,#tbl_nbal2
eld d ,#8
jmp table_selected
over56_48k
eld a ,#tbl_alloc0
eld c ,#tbl_nbal0
eld d ,#27
jmp table_selected
none48k
cmp ge ,r1 ,#56
brt over56_32k
eld a ,#tbl_alloc3
eld c ,#tbl_nbal3
eld d ,#12
jmp table_selected
over56_32k
cmp ge ,r1 ,#96
brt over96_32k
eld a ,#tbl_alloc0
eld c ,#tbl_nbal0
eld d ,#27
jmp table_selected
over96_32k
eld a ,#tbl_alloc1
eld c ,#tbl_nbal1
eld d ,#30
jmp table_selected
MPG2_table
eld a ,#tbl_allocMPG2
eld c ,#tbl_nbalMPG2
eld d ,#30
table_selected
eld rpd0.index_GBitAllocIndex ,a
eld rpd0.index_Gnbal ,c
eld rpd0.index_Gsblimit ,d
nop
ret
//////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////
BitAllocationL2::
eld a ,rpd0.index_Gbound
ecld r0 ,a
cmp eq ,r0 ,#32
brf intensity_stereo
eld a ,rpd0.index_Gsblimit
eld rpd0.index_Gbound,a
intensity_stereo
eld rp0 ,#Area_bitalloc
eld a ,rpd0.index_Gnbal
eld rp3 ,a
eld a ,rpd0.index_Gbound // normal
ecld r6 ,a
dec r6
BitAllocLoopInit
eld c ,@rp3+s0
eld sa ,c
eld a ,rpd0.index_Gnch
ecld r7 ,a
ld r5 ,r7 // nch backup
dec r7
BitAllocLoop
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld @rp0+d0 ,sg // LRLRLR.....
bnzd r7 ,BitAllocLoop
nop
bnzd r6 ,BitAllocLoopInit
nop
eld a ,rpd0.index_Gbound // intensity
eld c ,rpd0.index_Gsblimit
ecld r0 ,a
ecld r1 ,c
AllocBound_chk
cmp eq ,r0 ,r1
brt none_intensityAlloc
BitAllocIntensityLoop
eld a ,@rp3+s0
eld sa ,a
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld @rp0+d0 ,sg // Left Channel
cmp eq ,r5 ,#2
brf mono_alloc
eld @rp0+d0 ,sg // Right Channel
mono_alloc
inc r0
bra AllocBound_chk
none_intensityAlloc
ret
//////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////
ScfsiL2::
eld rp0 ,#Area_scfsi
eld rp2 ,#Area_bitalloc
eld a ,rpd0.index_Gsblimit
ecld r6 ,a
dec r6
eld sa ,#2
ScfsiLoopInit
eld a ,rpd0.index_Gnch
ecld r7 ,a
dec r7
ScfsiLoop
eld a ,@rp2+s0
ecp a ,#0
enop
bra ec0 ,alloc_zero
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld @rp0+d0 ,sg // LRLRLR....
bra alloc_zeroEnd
alloc_zero
eld a ,#0
eld @rp0+d0 ,a // LRLRLR....
alloc_zeroEnd
bnzd r7 ,ScfsiLoop
nop
bnzd r6 ,ScfsiLoopInit
nop
ret
//////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////
ScalefactorsL2::
eld rp0 ,#Area_bitalloc
eld rp2 ,#Area_scalefactor0
eld rp3 ,#Area_scfsi
eld a ,rpd0.index_Gnch
ecld r7 ,a
dec r7
eld sa ,#6
ScalefactorLoopInit
eld a ,rpd0.index_Gsblimit
ecld r6 ,a
dec r6
ScalefactorLoop
eld a ,@rp0+s0
ecld r1 ,a
cmp eq ,r1 ,#0
brt Scalefactor_zero
eld rpd1.index_Grpi ,rp0
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld a ,#tbl_scalefactor
efz8 a
eadd a ,sg
eld rp0 ,a
eld a ,@rp0
eld @rp2+d0 ,a
eld a ,@rp3+s0
ecld r1 ,a
cmp eq ,r1 ,#0
brf Scfsi0
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld a ,#tbl_scalefactor
efz8 a
eadd a ,sg
eld rp0 ,a
eld a ,@rp0
erpn rp2 ,#63
eld @rp2+d0 ,a
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld a ,#tbl_scalefactor
efz8 a
eadd a ,sg
eld rp0 ,a
eld a ,@rp0
erpn rp2 ,#63
eld @rp2+d0 ,a
erpn rp2 ,#-64*2
jmp Scalefactor_zeroEnd
Scfsi0
cmp eq ,r1 ,#1
brf Scfsi1
erpn rp2 ,#-1
eld a ,@rp2+s0
erpn rp2 ,#63
eld @rp2+d0 ,a
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld a ,#tbl_scalefactor
efz8 a
eadd a ,sg
eld rp0 ,a
eld a ,@rp0
erpn rp2 ,#63
eld @rp2+d0 ,a
erpn rp2 ,#-64*2
jmp Scalefactor_zeroEnd
Scfsi1
cmp eq ,r1 ,#2
brf Scfsi2
erpn rp2 ,#-1
eld a ,@rp2+s0
erpn rp2 ,#63
eld @rp2+d0 ,a
erpn rp2 ,#63
eld @rp2+d0 ,a
erpn rp2 ,#-64*2
jmp Scalefactor_zeroEnd
Scfsi2
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld a ,#tbl_scalefactor
efz8 a
eadd a ,sg
eld rp0 ,a
eld a ,@rp0
erpn rp2 ,#63
eld @rp2+d0 ,a
erpn rp2 ,#63
eld @rp2+d0 ,a
erpn rp2 ,#-64*2
jmp Scalefactor_zeroEnd
Scalefactor_zero
eld rpd1.index_Grpi ,rp0
erpn rp3 ,#1
eld a ,#0
eld @rp2+d0 ,a
erpn rp2 ,#63
eld @rp2+d0 ,a
erpn rp2 ,#63
eld @rp2+d0 ,a
erpn rp2 ,#-64*2
Scalefactor_zeroEnd
eld rp0 ,rpd1.index_Grpi
cmp eq ,r6 ,#0
brfd ScalefactorLoop
dec r6
cmp eq ,r7 ,#0
brfd ScalefactorLoopInit
dec r7
ret
//////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////
DequantizerL2::
er me1
eld rp0 ,#Area_bitalloc
eld a ,rpd0.index_Ggr
esra a
esra a
eld x0 ,a
eld y0 ,#64
emul x0y0
eld a ,pl
esra a
eadd a ,#Area_scalefactor0
eld rp2 ,a
eld a ,rpd0.index_Ggr
eld d ,rpd1.index_GranuleLoop
ecld r0 ,d
cmp eq ,r0 ,#1
brt first_gr
eadd a ,#-6 //
first_gr
eld x0 ,a
eld y0 ,#192
emul x0y0
eld a ,pl
esra a
eadd a ,#Area_fraction
eld rp3 ,a
ld r3 ,#16
ld r4 ,#0 // sb
ld r5 ,#0 // ch Flag
eld d ,#0 // 16bit data temp
eld a ,rpd0.index_Gnch
ecld r2 ,a
dec r2
DequantizerLoopInit
eld a ,rpd0.index_Gbound // normal
ecld r6 ,a
dec r6
DequantizerLoop
eld a ,@rp0+s0
ecld r0 ,a
cmp eq ,r0 ,#0
brt Dequantizer_zero
ld r0 ,r4
mul uu ,r0 ,r3
ecld d ,r0
efz8 d
eadd a ,d
eld rpd1.index_Grpi ,rp1
eld d ,rpd0.index_GBitAllocIndex
eld rp1 ,d
erpn rp1 ,a
eld c ,@rp1+s0 // c -> mpi
eld a ,rpd0.index_Gnch //2002
ecld r0 ,a //2002
cmp eq ,r0 ,#2 //2002
brt stereo_sb_skip //2002
inc r4 //2002
jmp sb_skipEnd //2002
stereo_sb_skip //2002
cmp eq ,r5 ,#0
brt sb_skip
ld r5 ,#0
inc r4
jmp sb_skipEnd
sb_skip
ld r5 ,#1
sb_skipEnd
eld rp1 ,#tbl_bpc
erpn rp1 ,c
eld a ,@rp1+s0
eld rpd0.index_Gno_ofbits ,a
eld rp1 ,#tbl_c
erpn rp1 ,c
eld a ,@rp1+s0
eld rpd0.index_Gc ,a
eld rp1 ,#tbl_d
erpn rp1 ,c
eld a ,@rp1+s0
eld rpd0.index_Gd ,a
eld rp1 ,#tbl_dd
erpn rp1 ,c
eld a ,@rp1+s0
eld rpd0.index_Gdd ,a
eld rp1 ,#tbl_nli
erpn rp1 ,c
eld a ,@rp1+s0
eld rpd0.index_Gnlevels ,a
eld rp1 ,#tbl_grouping
erpn rp1 ,c
eld a ,@rp1+s0
eld rpd0.index_Ggrouping ,a
eld rp1 ,rpd1.index_Grpi
ecp a ,#0
enop
bra ec0 ,grouping_zero
// eld d ,a
eld ma1 ,a
eld a ,rpd0.index_Gno_ofbits
eld sa ,a
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld a ,sg
eld p ,ma1
push a14
jsr Div24
pop a14
eld Area_samplebuf ,d
eld p ,ma1
push a14
jsr Div24
pop a14
eld Area_samplebuf+1,d
eld p ,ma1
push a14
jsr Div24
pop a14
eld Area_samplebuf+2,d
eld rpd1.index_Grpi ,rp0
eld rp0 ,#Area_samplebuf
eld a ,@rp2+s0
eld rpd0.index_GdequanScale ,a
ld r7 ,#3-1
grp_quantizer
push a14
jsr DequantizerL2_Sub1
pop a14
eld @rp3+d0 ,a
erpn rp3 ,#63
bnzd r7 ,grp_quantizer
nop
erpn rp3 ,#-191
eld rp0 ,rpd1.index_Grpi
jmp Dequantizer_zeroEnd
grouping_zero
eld a ,rpd0.index_Gno_ofbits
eld sa ,a
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld a ,sg
eld Area_samplebuf ,a
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld a ,sg
eld Area_samplebuf+1,a
push a14
jsr GetNBitFromBitstreamOnlyMP3
pop a14
eld a ,sg
eld Area_samplebuf+2,a
eld rpd1.index_Grpi ,rp0
eld rp0 ,#Area_samplebuf
eld a ,@rp2+s0
eld rpd0.index_GdequanScale ,a
ld r7 ,#3-1
Notgrp_quantizer
push a14
jsr DequantizerL2_Sub2
pop a14
eld @rp3+d0 ,a
erpn rp3 ,#63
bnzd r7 ,Notgrp_quantizer
nop
erpn rp3 ,#-191
eld rp0 ,rpd1.index_Grpi
jmp Dequantizer_zeroEnd
Dequantizer_zero
eld a ,#0
eld @rp3+d0 ,a
erpn rp3 ,#63
eld @rp3+d0 ,a
erpn rp3 ,#63
eld @rp3+d0 ,a
erpn rp3 ,#-128
//
erps rp2+s0 // scalefactor address increase
//
eld a ,rpd0.index_Gnch //2002
ecld r0 ,a //2002
cmp eq ,r0 ,#2 //2002
brt stereo_sb_skip2 //2002
inc r4 //2002
jmp sb_skipEnd2 //2002
stereo_sb_skip2 //2002
cmp eq ,r5 ,#0
brt sb_skip2
ld r5 ,#0
inc r4
jmp sb_skipEnd2
sb_skip2
ld r5 ,#1
sb_skipEnd2
Dequantizer_zeroEnd
cmp eq ,r6 ,#0
brfd DequantizerLoop
dec r6
cmp eq ,r2 ,#0
brfd DequantizerLoopInit
dec r2
/////////////////////////////////////////////////////////////////
eld a ,rpd0.index_Gbound // intensity
eld c ,rpd0.index_Gsblimit
ecld r2 ,a
ecld r1 ,c
DequanBound_chk
cmp eq ,r2 ,r1
brt none_intensityDequan
DequanIntensityLoop
eld a ,@rp0+s1 // only Left
ecld r0 ,a
cmp eq ,r0 ,#0
brt DequanIntensity_zero
ld r0 ,r4
mul uu ,r0 ,r3
ecld d ,r0
efz8 d
eadd a ,d
eld rpd1.index_Grpi ,rp1
eld d ,rpd0.index_GBitAllocIndex
eld rp1 ,d
erpn rp1 ,a
eld c ,@rp1+s0 // c -> mpi
inc r4
eld rp1 ,#tbl_bpc
erpn rp1 ,c
eld a ,@rp1+s0
eld rpd0.index_Gno_ofbits ,a
eld rp1 ,#tbl_c
erpn rp1 ,c
eld a ,@rp1+s0
eld rpd0.index_Gc ,a
eld rp1 ,#tbl_d
erpn rp1 ,c
eld a ,@rp1+s0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -