# HG changeset patch # User Paul Boddie # Date 1511028770 -3600 # Node ID 2e0a0e8478984bc368c46d27ed629976e60370d5 # Parent 389d1792af4ace54f2bdafd6f91f0c3e95ab9e20 Moved exception handler to the end. diff -r 389d1792af4a -r 2e0a0e847898 vga.S --- a/vga.S Sat Nov 18 17:54:35 2017 +0100 +++ b/vga.S Sat Nov 18 19:12:50 2017 +0100 @@ -851,42 +851,6 @@ -/* Exception handler. */ - -exc_handler: - mfc0 $t7, CP0_ERROREPC - nop - -exc_write_word: - li $t8, 32 - la $v0, U1TXREG -exc_loop: - addiu $t8, $t8, -4 - srlv $v1, $t7, $t8 /* $v1 = $t7 >> $t8 */ - andi $v1, $v1, 0xF - addiu $t9, $v1, -10 /* $t9 >= 10? */ - bgez $t9, exc_alpha - nop -exc_digit: - addiu $v1, $v1, 48 /* convert to digit: '0' */ - j exc_write - nop -exc_alpha: - addiu $v1, $v1, 55 /* convert to alpha: 'A' - 10 */ -exc_write: - sw $v1, 0($v0) - bnez $t8, exc_loop - nop -exc_loop_end: - li $v1, '\n' - sw $v1, 0($v0) - -exc_handler_end: - j exc_handler_end - nop - - - /* Event routines. */ /* The vertical back porch. */ @@ -1058,3 +1022,39 @@ _vsync_active_ret: jr $ra nop + + + +/* Exception handler. */ + +exc_handler: + mfc0 $t7, CP0_ERROREPC + nop + +exc_write_word: + li $t8, 32 + la $v0, U1TXREG +exc_loop: + addiu $t8, $t8, -4 + srlv $v1, $t7, $t8 /* $v1 = $t7 >> $t8 */ + andi $v1, $v1, 0xF + addiu $t9, $v1, -10 /* $t9 >= 10? */ + bgez $t9, exc_alpha + nop +exc_digit: + addiu $v1, $v1, 48 /* convert to digit: '0' */ + j exc_write + nop +exc_alpha: + addiu $v1, $v1, 55 /* convert to alpha: 'A' - 10 */ +exc_write: + sw $v1, 0($v0) + bnez $t8, exc_loop + nop +exc_loop_end: + li $v1, '\n' + sw $v1, 0($v0) + +exc_handler_end: + j exc_handler_end + nop