📄 sacmv32.lst
字号:
0000916A E1 92 r1 = D:[r1] // Get data
0000916B 90 9A retf
//////////////////////////////////////////////////////////////////
// Function: Delay
// void SP_Delay()
//////////////////////////////////////////////////////////////////
_SP_Delay: .PROC
F_SP_Delay:
// User define
0000916C 90 9A retf
.ENDP
//////////////////////////////////////////////////////
// SACM initial functions
//////////////////////////////////////////////////////
.public F_SP_SACM_A1600_Init_
.PUBLIC F_SP_SACM_A2000_Init_
.PUBLIC F_SP_SACM_S530_Init_
.PUBLIC F_SP_SACM_S480_Init_
.PUBLIC F_SP_SACM_S240_Init_
.public F_SP_SACM_S200_Init_
.PUBLIC F_SP_SACM_MS01_Init_
.PUBLIC F_SP_PlayMode0_
.PUBLIC F_SP_PlayMode1_
.PUBLIC F_SP_PlayMode2_
.PUBLIC F_SP_PlayMode3_
.PUBLIC F_SP_SACM_DVR_Init_
.PUBLIC F_SP_SACM_DVR_Rec_Init_
.PUBLIC F_SP_SACM_DVR_Play_Init_
//----------------------------------------------------
// A1600
//----------------------------------------------------
///////////////////////////////////////////////////////////////////////////////
// Function: The partial code of hardware setting of SACM_A1600_Initial()
// or F_SACM_A1600_Initial:
// Note: The following functions are the partial code of original
// initial subroutine. (H/W setting part)
//
// Ex: F_SACM_A1600_Initial:
// ...
// call F_SP_SACM_A1600_Init_ : S480/S240/MS01 is same
// ...
// retf
////////////////////////////////////////////////////////////////////////////////
F_SP_SACM_A1600_Init_:
0000916D 09 93 80 00 R1 = C_SystemClock; // 24MHz, Fcpu=Fosc
0000916F 19 D3 13 70 [P_SystemClock]=R1 // Frequency 20MHz
00009171 70 92 R1 = 0x0030 // TimerA CKA=Fosc/2 CKB=1 Tout:off
00009172 19 D3 0B 70 [P_TimerA_Ctrl] = R1 // Initial Timer A
00009174 09 93 FF F9 R1 = C_A1600_Timer_Setting // 16K
00009176 19 D3 0A 70 [P_TimerA_Data] = R1
00009178 09 93 A8 00 R1 = 0x00A8 // Set the DAC Ctrl
0000917A 19 D3 2A 70 [P_DAC_Ctrl] = R1
0000917C 09 93 FF FF R1 = 0xffff
0000917E 19 D3 11 70 [P_INT_Clear] = R1 // Clear interrupt occuiped events
00009180 40 92 R1 =0x0000 //
.if BODY_TYPE == SPCE061A
00009181 11 93 2D 70 R1 = [P_INT_Mask] //
.endif
.if BODY_TYPE == SPCE500A
R1 = [R_InterruptStatus] //
.endif
00009183 09 A3 00 20 R1 |= C_FIQ_TMA // Enable Timer A FIQ
//R1 |= C_IRQ4_1KHz
00009185 19 D3 C2 00 [R_InterruptStatus] = R1 //
00009187 19 D3 10 70 [P_INT_Ctrl] = R1 //
00009189 90 9A RETF
//----------------------------------------------------
// A2000
//----------------------------------------------------
///////////////////////////////////////////////////////////////////////////////
// Function: The partial code of hardware setting of SACM_A2000_Initial()
// or F_SACM_A2000_Initial:
// Note: The following functions are the partial code of original
// initial subroutine. (H/W setting part)
//
// Ex: F_SACM_A2000_Initial:
// ...
// call F_SP_SACM_A2000_Init_ : S480/S240/MS01 is same
// ...
// retf
////////////////////////////////////////////////////////////////////////////////
F_SP_SACM_A2000_Init_:
0000918A 09 93 80 00 R1=C_SystemClock; // 24MHz, Fcpu=Fosc
0000918C 19 D3 13 70 [P_SystemClock]=R1 // Frequency 20MHz
0000918E 70 92 R1 = 0x0030 // TimerA CKA=Fosc/2 CKB=1 Tout:off
0000918F 19 D3 0B 70 [P_TimerA_Ctrl] = R1 // Initial Timer A
00009191 09 93 FF F9 R1 = C_A2000_Timer_Setting // 16K
00009193 19 D3 0A 70 [P_TimerA_Data] = R1
00009195 09 93 A8 00 R1 = 0x00A8 // Set the DAC Ctrl
00009197 19 D3 2A 70 [P_DAC_Ctrl] = R1
00009199 09 93 FF FF R1 = 0xffff
0000919B 19 D3 11 70 [P_INT_Clear] = R1 // Clear interrupt occuiped events
.if BODY_TYPE == SPCE061A
0000919D 11 93 2D 70 R1 = [P_INT_Mask] //
.endif
.if BODY_TYPE == SPCE500A
R1 = [R_InterruptStatus] //
.endif
0000919F 09 A3 00 20 R1 |= C_FIQ_TMA // Enable Timer A FIQ
000091A1 19 D3 C2 00 [R_InterruptStatus] = R1 //
000091A3 19 D3 10 70 [P_INT_Ctrl] = R1 //
000091A5 90 9A RETF
//----------------------------------------------------
// A3200 1ch
//----------------------------------------------------
.public F_SP_SACM_A3200_Init_
.public F_SACM_A3200_SetTimerSrc
.public F_SACM_A3200_SetIntSrc
.public F_SACM_A3200_SendDecodedData
//////////////////////////////////////////////////////////////////
// Function: The partial code of hardware setting of
// SACM_A3200_Initial() or F_SACM_A3200_Initial:
// Single Channel A3200
//////////////////////////////////////////////////////////////////
F_SP_SACM_A3200_Init_: .proc
// R1 = 0x0020; // 20MHz
// R1 = 0x0000; // 24MHz
// R1 = 0x0040; // 32MHz
// R1 = 0x0060; // 40MHz
// R1 = 0x0080; // 49MHz
000091A6 09 93 80 00 R1 = C_SystemClock
000091A8 19 D3 13 70 [P_SystemClock] = R1;
000091AA 09 93 A4 00 R1 = 0x00A4; // Latch DAR1 data to DAC1 by TimerA
000091AC 19 D3 2A 70 [P_DAC_Ctrl] = R1; // Latch DAR2 data to DAC2 by TimerA
000091AE 90 9A RETF;
.endp
//--------------------------------------------------------------------
//-- Function: F_SACM_A3200_SetTimerSrc
//-- Parameter: R1 : TimerData
//-- Return: NONE
//-- Description: This function called by A3200 library to set timer A
//--------------------------------------------------------------------
F_SACM_A3200_SetTimerSrc: .proc
000091AF 88 D4 push R2 to [sp];
000091B0 70 94 R2 = 0x0030;
000091B1 1A D5 0B 70 [P_TimerA_Ctrl] = R2; // select Fosc/2 as Timer A clock source
000091B3 19 D3 0A 70 [P_TimerA_Data] = R1;
000091B5 88 92 pop R2 from [sp];
000091B6 90 9A retf;
.endp
//--------------------------------------------------------------------
//-- Function: F_SACM_A3200_SetIntSrc
//-- Parameter: NONE
//-- Return: NONE
//-- Description: This function called by A3200 library to set
// interrupt
//--------------------------------------------------------------------
F_SACM_A3200_SetIntSrc: .proc
000091B7 88 D2 push R1 to [SP];
.if BODY_TYPE == SPCE061A
000091B8 11 93 2D 70 R1 = [P_INT_Mask] //
.endif
.if BODY_TYPE == SPCE500A
R1 = [R_InterruptStatus] //
.endif
000091BA 09 A3 00 10 R1 |= C_IRQ1_TMA;
000091BC 19 D3 C2 00 [R_InterruptStatus] = R1;
000091BE 19 D3 10 70 [P_INT_Ctrl] = R1;
000091C0 88 90 pop R1 from [SP];
000091C1 90 9A RETF;
.endp
//--------------------------------------------------------------------
//-- Function: F_SACM_A3200_SendDecodedData
//-- Parameter: R1 : decoded sample
//-- Return: NONE
//-- Description: This function called by A3200 library to send
// decoded data to DACs
//--------------------------------------------------------------------
F_SACM_A3200_SendDecodedData: .proc
000091C2 19 D3 17 70 [P_DAC1] = R1;
000091C4 19 D3 16 70 [P_DAC2] = R1;
000091C6 90 9A RETF;
.endp
//----------------------------------------------------
// A3200 2ch
//----------------------------------------------------
.public F_SP_SACM_2Ch_A3200_Init_
.public F_SACM_A3200_Ch1_SetTimerSrc
.public F_SACM_A3200_Ch1_SetIntSrc
.public F_SACM_A3200_Ch1_SendDecodedData
.public F_SACM_A3200_Ch2_SetTimerSrc
.public
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -