# HG changeset patch # User Paul Boddie # Date 1511213096 -3600 # Node ID c9ec1da2c3ca0c897958ae60eb30f189193fba46 # Parent 11840489990bf3ec63aff01351a7fec57be3b6d0 Enable and disable the DMA channel rather than changing IRQ settings. diff -r 11840489990b -r c9ec1da2c3ca vga.S --- a/vga.S Mon Nov 20 22:14:55 2017 +0100 +++ b/vga.S Mon Nov 20 22:24:56 2017 +0100 @@ -530,12 +530,10 @@ occurs: DCHxECON<15:8> = CHSIRQ<7:0> = timer 2 interrupt DCHxECON<4> = SIRQEN = 1 - - For now, however, prevent initiation by not setting SIRQEN. */ la $v0, DCH0ECON - li $v1, (9 << 8) + li $v1, (9 << 8) | (1 << 4) sw $v1, 0($v0) /* @@ -643,11 +641,7 @@ li $v1, (1 << 28) /* IEC1<28> = DMA0IE = 1 */ sw $v1, SET($v0) - /* Enable line channel. */ - - la $v0, DCH0CON - li $v1, 0b10000000 - sw $v1, SET($v0) + /* Enable line channel later. */ jr $ra nop @@ -858,8 +852,8 @@ /* Enable the line channel for timer event transfer initiation. */ - la $v0, DCH0ECON - li $v1, (1 << 4) /* DCH0ECON<4> = SIRQEN = 1 */ + la $v0, DCH0CON + li $v1, (1 << 7) sw $v1, SET($v0) _vbp_active_ret: @@ -883,8 +877,8 @@ /* Disable the line channel. */ - la $v0, DCH0ECON - li $v1, (1 << 4) /* DCH0ECON<4> = SIRQEN = 0 */ + la $v0, DCH0CON + li $v1, (1 << 7) sw $v1, CLR($v0) _visible_active_ret: