Appendix 1 TDA7590
38/42
bset #12,x:SCR_ADR ; start SCI transmit
mac x0,y0,a x:(r3)+,x0 y:(r4)+,y0 ; generates variations on mean value of DAC
move #$AAAAAA,x0
move x0,x:$CAAAAA ; send data to expansion port
move x0,x:GPIODAT ; move PORTB pins
bset #12,x:SCR_ADR ; start SCI transmit
mac x0,y0,a x:(r3)+,x0 y:(r4)+,y0 ; generates variations on mean value of DAC
move #$555555,x0
move x0,x:$C55555 ; send data to expansion port
move x0,x:GPIODAT ; move PORTB pins
jmp LOOP
ENDIF
;------------------------------------------------------------------------
; Interrupt Service Routines
;------------------------------------------------------------------------
;SAI
;------------------------------------------------------------------------
INT_TDE ; The transmitter data empty flag is cleared as soon
; as the last move is performed
Movep a,y:<<SAI_TX0 ; Load LEFT transmit data register for channel 0
nop
nop
movep b,y:<<SAI_TX0 ; Load RIGHT transmit data register for channel 0
rti
INT_RDR ; The receiver data ready flag is cleared as soon
; as the last move is performed
movep y:<<SAI_RX0,a ; Move Channel 0 received LEFT data to x-memory.
move a,x:(r0)
nop
nop
movep y:<<SAI_RX0,b ; Move channel 0 received RIGHT data to y-memory.
move b,y:(r0)+
rti
INT_ROF
bset #16,y:SAI_RCS
bclr #16,y:SAI_RCS
rti
INT_TUF
bset #16,y:SAI_TCS
bclr #16,y:SAI_RCS
rti
;TIMER