📄 a1600.lst
字号:
//// And user must fill the HascDEC_FIFO according to HascDEC_FIFO_PTR
//// To make encode data is compatible with SPDC, the ending code is 0xFF,0xFF,0xFF
//// ------------------------------------------------------------------------------------------------------------//
//F_FillRingBuf:
//
//.public _FillRamBuf
// _FillRamBuf: .proc
// push R1,R5 to [sp];
// FillRamBuf1:
// R1 = [HascDEC_FIFO_PTR]; // Fill Ring-Buf
// R2 = [W_InterRAM_Ptr];
// CMP R1,R2;
// JZ EndFillRingBuf;
// R3 = [DataFlag];
// CMP R3,0xFFFF;
// JZ EndFillRingBuf; // Data is over , don't fill memory.
// R3 = [SegDataRomAddr]
// R5 = [DataRomAddr];
// Sr &= 0x3FF
// SR |= R3
// R4 =DS: [R5];
// R5 +=1
// JNZ ?L_Nover
// R3 +=0x400
// [SegDataRomAddr] = R3 //以上程序应该是获取音频的基地址
//?L_Nover:
// [DataRomAddr] = R5;
// CALL F_ChangeHighLowByte;
// R3 = R2 + HASC_FIFO;
// R2 += 1;
// R2 &= 0x001F;
// [W_InterRAM_Ptr] = R2;
// CMP R4,0xFFFF;
// JNZ NotCheckEndingCode;
// R5 = [DataRomAddr];
// R5 = DS:[R5];
// CMP R5,0x00FF;
// JNZ NotCheckEndingCode;
// R4 = 0xFFFF;
// [DataFlag] = R4; // Ending Code,don't store in the HASC_FIFO
//EndFillRingBuf:
// pop R1,R5 from [sp];
// retf
// .endp
//
//NotCheckEndingCode:
// [R3] = R4; // Not Ending Code
// JMP FillRamBuf1;
//
//
////-----------------------------------
////将R4的高、低字节进行交换(16字节的)
////-----------------------------------
//// ------------------------------------------------------------------------------------------------------------//
//// Purpose: To make encode data is compatible with SPDC. We must change High-Low Byte
//// Input: R4
//// Output: R4
//// Change: R4,R5;
//// ------------------------------------------------------------------------------------------------------------//
//F_ChangeHighLowByte:
// R5 = R4 And 0x00FF;
// R5 = R5 LSL 4;
// R5 = R5 LSL 4;
// R4 = R4 LSR 4;
// R4 = R4 LSR 4;
// R4 |= R5;
// RETF;
//
//
////--------------------------
////发送DAC信号的
////--------------------------
//////////////////////////////////////////////////////////
//// Function: F_SACM_DVR1600_SendDAC
//// Description: send data to DAC from library
//// Syntax : F_SACM_DVR1600_SendDAC
//// Destory: R4
//// Input : R4: 16-bit sign PCM
//// Return :None
//////////////////////////////////////////////////////////
//.PUBLIC F_SACM_DVR1600_SendDAC
//F_SACM_DVR1600_SendDAC: .PROC
//// push R4 to [sp];
// R4 &=0xFFC0
// CMP R4,0x8700;
// JG ?NotUnderFlow;
// R4 = 0x8700;
//?NotUnderFlow:
// R4 += 0x7900;
//
// [0x7029] = r4
// retf;
//
//.ENDP
//
//.public _T_SACM_DVR1600_ServiceLoop
// _T_SACM_DVR1600_ServiceLoop:.proc
// push R1,R5 to [sp];
// CALL F_SACM_DVR1600_ServiceLoop;
// pop R1,R5 from [sp];
// retf
// .endp
//
//.public _T_SACM_DVR1600_Status
// _T_SACM_DVR1600_Status:.proc
// push R1,R5 to [sp];
// CAll F_SACM_DVR1600_Status;
// [_StatusData]=R1;
// pop R1,R5 from [sp];
// retf
// .endp
//
//.public _T_SACM_DVR1600_Volume
// _T_SACM_DVR1600_Volume: .proc //设定DVR1600的播放音量
// push bp to [sp];
// BP=sp+1;
// R1=[BP+3];
// CALL F_SACM_DVR1600_Volume;
// pop bp from [sp];
// retf
// .endp
//
//.public _T_SACM_DVR1600_Pause
// _T_SACM_DVR1600_Pause: .proc
// push R1,R5 to [sp];
// CALL F_SACM_DVR1600_Pause;
// pop R1,R5 from [sp];
// retf
// .endp
//
//.public _T_SACM_DVR1600_Resume
// _T_SACM_DVR1600_Resume: .proc
// push R1,R5 to [sp];
// CALL F_SACM_DVR1600_Resume;
// pop R1,R5 from [sp];
// retf
// .endp
//
////*************************************************************************************
////ISR : TimerA INT //定时器中断
////*************************************************************************************
//.TEXT
//_IRQ2:
// push R1, R5 to [sp];
// R1 = 0x0004;
// [P_IntClr] = R1;
// CALL F_SACM_DVR1600_IRQ_ServiceLoop; //怎么没有看到啊?
// pop R1, R5 from [sp];
// RETI;
//
//
////---语音信息表
//T_SACM_A1600_Table:
////.DW _RES_A13_ENC_SA;
////.DW _RES_A39_ENC_SA;
//
//.DW _RES_A02_ENC_SA;
//.DW _RES_A03_ENC_SA;
//.DW _RES_A04_ENC_SA;
//.DW _RES_A05_ENC_SA;
//.DW _RES_A06_ENC_SA;
//.DW _RES_A07_ENC_SA;
//.DW _RES_A08_ENC_SA;
//.DW _RES_A09_ENC_SA;
////.DW _RES_A10_ENC_SA;
////
////.DW _RES_A11_ENC_SA;
////.DW _RES_A12_ENC_SA;
////.DW _RES_A13_ENC_SA;
////.DW _RES_A14_ENC_SA;
////.DW _RES_A15_ENC_SA;
////.DW _RES_A16_ENC_SA;
////.DW _RES_A17_ENC_SA;
////.DW _RES_A18_ENC_SA;
////.DW _RES_A19_ENC_SA;
////.DW _RES_A20_ENC_SA;
//
////.DW _RES_A21_ENC_SA;
////.DW _RES_A22_ENC_SA;
////.DW _RES_A23_ENC_SA;
////.DW _RES_A24_ENC_SA;
////.DW _RES_A25_ENC_SA;
////.DW _RES_A26_ENC_SA;
////.DW _RES_A27_ENC_SA;
////.DW _RES_A28_ENC_SA;
////.DW _RES_A29_ENC_SA;
////.DW _RES_A30_ENC_SA;
////
////.DW _RES_A31_ENC_SA;
////.DW _RES_A32_ENC_SA;
////.DW _RES_A33_ENC_SA;
////.DW _RES_A34_ENC_SA;
////.DW _RES_A35_ENC_SA;
////.DW _RES_A36_ENC_SA;
////.DW _RES_A37_ENC_SA;
////.DW _RES_A38_ENC_SA;
////.DW _RES_A39_ENC_SA;
////.DW _RES_A40_ENC_SA;
//
////.DW _RES_A41_ENC_SA;
////.DW _RES_A42_ENC_SA;
////.DW _RES_A43_ENC_SA;
////.DW _RES_A44_ENC_SA;
////.DW _RES_A45_ENC_SA;
////.DW _RES_A46_ENC_SA;
////.DW _RES_A47_ENC_SA;
////.DW _RES_A48_ENC_SA;
////.DW _RES_A49_ENC_SA;
////.DW _RES_A50_ENC_SA;
////
////.DW _RES_A51_ENC_SA;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -