⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 voipadpcm.asm

📁 Cypress 的VOIP DEMO 研究VOIP终端的朋友可以研究研究
💻 ASM
📖 第 1 页 / 共 2 页
字号:
Table4:
   Table4HB:
    db      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    db      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    db      0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  3,  3
    db      3,  4,  4,  4,  5,  6,  6,  7,  8,  8,  9, 10, 11, 12, 14, 15
    db     17, 18, 20, 22, 25, 27, 30, 33, 36, 40, 44, 49, 54, 59, 65, 71
   Table4LB:
    db      4,  5,  6,  7,  9, 10, 11, 13, 15, 18, 20, 22, 25, 29, 32, 36
    db     40, 45, 49, 55, 60, 67, 74, 82, 91,101,112,123,137,151,167,184
    db    203,225,247, 16, 44, 74,108,145,186,231, 24, 78,138,203, 19, 99
    db    187, 26,132,248,120,  5,160, 74,  5,211,181,173,192,237, 57,166
    db     55,240,214,237, 56,190,133,147,239,161,178, 43, 22,127,114,254

   Table5:
   Table5HB:
    db      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    db      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    db      0,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  3,  3,  3,  4
    db      4,  5,  5,  6,  6,  7,  8,  8,  9, 10, 11, 13, 14, 15, 17, 19
    db     21, 23, 25, 28, 30, 33, 37, 41, 45, 49, 54, 60, 66, 72, 79, 87
   Table5LB:
    db      5,  6,  7,  8, 11, 12, 13, 16, 18, 22, 24, 27, 30, 35, 39, 44
    db     49, 55, 60, 67, 73, 82, 90,100,111,123,137,150,167,184,204,225
    db    248, 19, 46, 76,110,147,189,234, 28, 83,143,209, 26,106,194, 35
    db    143,  3,133, 18,175, 91, 25,232,205,201,221, 12, 92,204, 98, 32
    db     10, 37,119,  5,210,232, 77,  9, 36,168,160, 24, 27,183,253,253

   Table6:
   Table6HB:
    db      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    db      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1
    db      1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  3,  3,  3,  4,  4,  4
    db      5,  5,  6,  7,  7,  8,  9, 10, 11, 12, 14, 15, 16, 18, 20, 22
    db     24, 27, 30, 33, 36, 40, 44, 48, 53, 58, 64, 71, 78, 85, 94,103
   Table6LB:
    db      6,  7,  9, 10, 13, 14, 16, 19, 22, 26, 29, 32, 36, 42, 46, 52
    db     58, 65, 71, 79, 87, 97,107,118,131,146,162,178,198,218,241, 10
    db     37, 69,101,137,177,221, 14, 67,126,191,  6, 84,171,  9,113,228
    db     99,237,134, 45,230,178,146,135,149,191,  5,108,249,172,139,154
    db    222, 91, 25, 29,109, 18, 21,127, 89,176,143,  5, 32,240,136,253

   Table7:
   Table7HB:
    db      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
    db      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1
    db      1,  1,  1,  1,  1,  2,  2,  2,  2,  3,  3,  3,  4,  4,  5,  5
    db      6,  6,  7,  8,  9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 26
    db     28, 31, 34, 38, 42, 46, 50, 55, 61, 67, 74, 81, 90, 99,109,119
   Table7LB:
    db      7,  8, 10, 11, 15, 16, 18, 22, 25, 30, 33, 37, 41, 48, 53, 60
    db     67, 75, 82, 91,100,112,123,136,151,168,187,205,228,251, 22, 51
    db     82,119,156,197,243, 38, 95,156,224, 43,125,215, 59,168, 32,164
    db     55,214,135, 71, 29,  8, 11, 37, 93,181, 45,203,149,139,180, 20
    db    177,144,186, 53,  7, 60,221,245,142,183,125,242, 37, 40, 19,252

.endliteral
.SECTION
;;------------------------------------------------------------------
;;  adpcmDecode:  131 CPU cycles (including lcall)
;;  A is the fCode used with iPredict and iStepSizePtr to do
;;  the following:
;;
;;  Calculates a next iPredict
;;  Calculate a new pStepSizePtr
;;
;;  The Predict value is returned in X,A
;;-----------------------------------------------------------------
adpcmDecode::
;      RAM_PROLOGUE  RAM_USE_CLASS_4
;      RAM_SETPAGE_CUR (>_Space)
      asl   A
      jacc  JumpTable
   JumpTable:
      jmp   ValueP0
      jmp   ValueP1
      jmp   ValueP2
      jmp   ValueP3
      jmp   ValueP4
      jmp   ValueP5
      jmp   ValueP6
      jmp   ValueP7
      jmp   ValueN0
      jmp   ValueN1
      jmp   ValueN2
      jmp   ValueN3
      jmp   ValueN4
      jmp   ValueN5
      jmp   ValueN6
      jmp   ValueN7
   ValueP7:
     UpdateDecodePos  Table7
     IncrementSP _bDecStepSizePtr,8
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueP6:
      UpdateDecodePos  Table6
      IncrementSP _bDecStepSizePtr,6
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueP5:
      UpdateDecodePos  Table5
      IncrementSP _bDecStepSizePtr,4
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueP4:
      UpdateDecodePos  Table4
      IncrementSP _bDecStepSizePtr,2
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueP3:
      UpdateDecodePos  Table3
      DecrementSP _bDecStepSizePtr
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueP2:
      UpdateDecodePos  Table2
      DecrementSP _bDecStepSizePtr
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueP1:
      UpdateDecodePos  Table1
      DecrementSP _bDecStepSizePtr
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueP0:
      UpdateDecodePos  Table0
      DecrementSP _bDecStepSizePtr
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueN7:
      UpdateDecodeNeg  Table7
      IncrementSP _bDecStepSizePtr,8
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueN6:
      UpdateDecodeNeg  Table6
      IncrementSP _bDecStepSizePtr,6
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueN5:
      UpdateDecodeNeg  Table5
      IncrementSP _bDecStepSizePtr,4
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueN4:
      UpdateDecodeNeg  Table4
      IncrementSP _bDecStepSizePtr,2
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueN3:
      UpdateDecodeNeg  Table3
      DecrementSP _bDecStepSizePtr
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueN2:
      UpdateDecodeNeg  Table2
      DecrementSP _bDecStepSizePtr
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueN1:
      UpdateDecodeNeg  Table1
      DecrementSP _bDecStepSizePtr
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
   ValueN0:
      UpdateDecodeNeg  Table0
      DecrementSP _bDecStepSizePtr
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
.ENDSECTION
.SECTION
;----------------------------------
   _iEncodeGetPredict:
;      RAM_PROLOGUE  RAM_USE_CLASS_4
;      RAM_SETPAGE_CUR (>_Space)
      mov   X,[_iEncPredict + MSB]
      mov   A,[_iEncPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
.ENDSECTION
.SECTION
;----------------------------------
   _EncodeLoadPredict:
;      RAM_PROLOGUE  RAM_USE_CLASS_4
;      RAM_SETPAGE_CUR (>_Space)
      mov   [_iEncPredict + LSB],A
      mov   [_iEncPredict + MSB],X
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
.ENDSECTION
.SECTION
;----------------------------------
   _bEncodeGetStepPtr:
;      RAM_PROLOGUE  RAM_USE_CLASS_4
;      RAM_SETPAGE_CUR (>_Space)
      mov   A,[_bEncStepSizePtr]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
.ENDSECTION
.SECTION
;----------------------------------
   _EncodeLoadStepPtr:
;      RAM_PROLOGUE  RAM_USE_CLASS_4
;      RAM_SETPAGE_CUR (>_Space)
      mov   [_bEncStepSizePtr],A
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
.ENDSECTION
.SECTION
;----------------------------------
   _iDecodeGetPredict:
;      RAM_PROLOGUE  RAM_USE_CLASS_4
;      RAM_SETPAGE_CUR (>_Space)
      mov   X,[_iDecPredict + MSB]
      mov   A,[_iDecPredict + LSB]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
.ENDSECTION
.SECTION
;----------------------------------
   _DecodeLoadPredict:
;      RAM_PROLOGUE  RAM_USE_CLASS_4
;      RAM_SETPAGE_CUR (>_Space)
      mov   [_iDecPredict + LSB],A
      mov   [_iDecPredict + MSB],X
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
.ENDSECTION
.SECTION
;----------------------------------
   _bDecodeGetStepPtr:
;      RAM_PROLOGUE  RAM_USE_CLASS_4
;      RAM_SETPAGE_CUR (>_Space)
      mov   A,[_bDecStepSizePtr]
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
.ENDSECTION
.SECTION
;----------------------------------
   _DecodeLoadStepPtr:
;      RAM_PROLOGUE  RAM_USE_CLASS_4
;      RAM_SETPAGE_CUR (>_Space)
      mov   [_bDecStepSizePtr],A
;      RAM_EPILOGUE RAM_USE_CLASS_4
   ret
.ENDSECTION

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -