# HG changeset patch # User Paul Boddie # Date 1509975448 -3600 # Node ID 85305c16937047fb9217e8c9508ed71c7aab0575 # Parent 096262322f96a04e840049fef6fec68089620c63 Test usage of Timer3 to initiate the reset channel cell transfer. diff -r 096262322f96 -r 85305c169370 vga.S --- a/vga.S Fri Nov 03 23:25:06 2017 +0100 +++ b/vga.S Mon Nov 06 14:37:28 2017 +0100 @@ -133,7 +133,7 @@ /* Initialise timer. */ - jal init_timer2 + jal init_timers nop /* Initialise DMA. */ @@ -260,7 +260,7 @@ /* Initialisation routines. */ -init_timer2: +init_timers: /* Initialise Timer2 for sync pulses. */ @@ -299,6 +299,25 @@ li $v1, (1 << 15) sw $v1, SET($v0) /* ON = 1 */ + /* Initialise Timer3 for reset DMA cell transfer. */ + + la $v0, T3CON + sw $zero, 0($v0) /* T3CON = 0 */ + nop + + la $v0, TMR3 + sw $zero, 0($v0) /* TMR3 = 0 */ + + la $v0, PR3 + li $v1, 1 + sw $v1, 0($v0) /* PR3 = 1 */ + + /* Start timer. */ + + la $v0, T3CON + li $v1, (1 << 15) + sw $v1, SET($v0) /* ON = 1 */ + jr $ra nop @@ -492,12 +511,12 @@ /* Initiate reset channel transfer when channel 1 is finished: - DCHxECON<15:8> = CHSIRQ<7:0> = channel 1 interrupt + DCHxECON<15:8> = CHSIRQ<7:0> = timer 3 interrupt DCHxECON<4> = SIRQEN = 1 */ la $v0, DCH2ECON - li $v1, (61 << 8) | (1 << 4) + li $v1, (14 << 8) | (1 << 4) sw $v1, 0($v0) /*