;References:
;swi - vector_handler_forward

;R12, R14 are on the stack

;vector_handler_40146
;--------------------
;Ensures our Channel Handler knows the requested sound period

.vector_handler_40146
 TEQ     R0, #3				;sample rate change?
 BNE     vector_handler_forward		;NO, pass to OS

 ADR     R12, _SPSR
 BL      pre_SWI_veneer			;call SWI that follows
 SWI     XSound_SampleRate		;PRM5a-609
 BL      post_SWI_veneer

 STMDB   R12, {R0-R5}
 ADR     R5, hypervised_sound_configure

 MOV     R0, #0				;no. channels
 MOV     R1, #0				;samples per channel
 MOV     R2, #0				;sample period
 MOV     R3, #0				;channel handler
 MOV     R4, #0				;scheduler
 STR     R3, dont_trap_sound_configure	;pass Sound_Configure to OS
 SWI     XSound_Configure		;PRM4-18
 STR     R2, [R5, #sound_config_struct.period]

 STR     R12, dont_trap_sound_configure	;handle Sound_Configure
 LDMDB   R12, {R0-R5}

B       exit_SWI_veneer


		DBD 6
 ._SPSR		DBD 4
