CODE
Check_AD1885_ADC_Left:
CC = BITTST (R5, M_Left_ADC); /* Check Left ADC valid bit */
IF !CC JUMP Check_AD1885_ADC_Right; /* If valid data then save ADC sample */
p0.l = rx_buf;
p0.h = rx_buf;
p0 += LEFT; /* Get AD1885 Left channel input sample */
nop;
nop;
nop;
R1 = W[P0];
P1.l = Left_Channel; /* Save to data holder for processing */
p1.h = Left_Channel;
nop;
nop;
nop;
W[P1] = R1;
Check_AD1885_ADC_Right:
CC = BITTST (R5, M_Right_ADC); /* Check Right ADC valid bit */
IF !CC JUMP Valid_Frame; /* If valid data then save ADC sample */
p0.l = rx_buf;
p0.h = rx_buf;
p0 += RIGHT; /* Get AD1885 Right channel input sample */
nop;
nop;
nop;
R1 = W[P0];
P0.l = Right_Channel; /* Save to data holder for processing */
p0.h = Right_Channel;
nop;
nop;
nop;
W[P0] = R1;
user_dsp_applic:
/***** DSP processing is finished, now playback results to AD1885 *****/
Playback_Audio_Data:
R6 = W[P1]; /* Fetch Left Channel */
R7 = W[P0]; /* Fetch Right Channel */
/********************************************************************************
*********************
* Insert DSP Algorithms Here *
********************************************************************************
*********************/
p2.l = tx_buf;
p2.h = tx_buf;
p2 += LEFT;
W[P2] = R6; /* ...output Left data to Slot 3 */
p2 += -LEFT;
p2 += RIGHT; /* ...output Right data to Slot 4 */
W[P2] = R7;
/* ...house keeping prior to RTI */
Valid_Frame:
RTS;
Одна часть моего мозга из этого текста видит, что данные хранятся в двухбайтовых переменных Left_Channel и Right_Channel. А другая утверждает, что их должно быть явно больше. Помогите пожалуйста разобраться, что к чему. Пойму - отсюда уже буду крутиться. Я ни в асме, ни в си не силен. Может и зря взялся за это дело. Да, и кстати, что означают все эти 256 bit frame size, 16-bit words и 16 channels? Заранее спасибо. На всякий случай прикрепил весь текст программы.