EP: text print fixes
This commit is contained in:
@@ -43,6 +43,8 @@ MyPrintLineRoutine:
|
||||
sw s6, 0x40(sp)
|
||||
sw s7, 0x44(sp)
|
||||
|
||||
sw s8, 0x24(sp)
|
||||
|
||||
move s6, a0 // Адрес чтения текста -> s6
|
||||
move s1, a1
|
||||
move s2, a2
|
||||
@@ -75,7 +77,7 @@ MyPrintLineRoutine:
|
||||
and v1, v1, t0 // v1 & 00ffffff
|
||||
or s4, v1, v0 // s5 - основной адрес свободной цепочки
|
||||
lw v0, 0x4(t1) // Загружаем счетчик DMA
|
||||
lw v1, 0x0(s5) // v1 = следующая свободная цепочка
|
||||
lw v1, 0x0(s4) // v1 = следующий свободный адрес в цепочке
|
||||
addiu v0, v0, -0x1 // Уменьшаем счетчик DMA
|
||||
and v1, v1, t0 // v1 & 00ffffff
|
||||
or a2, a2, v1 // a2 | v1 = следующая свободная цепочка
|
||||
@@ -83,7 +85,7 @@ MyPrintLineRoutine:
|
||||
jal storeColor //Сохраняем цвет
|
||||
sw a2, 0x0(t1) // Сохраняем следующую свободную цепочку
|
||||
|
||||
move a0, s4 // Текущий адрес цепочки
|
||||
move a0, s4 // Текущий адрес цепочки как параметр инициализации (a0)
|
||||
sll a1, s1, 0x10 // a1 = X << 16
|
||||
sra a1, a1, 0x10 // a1 = X координата
|
||||
sll a2, s2, 0x10 // a2 = Y << 16
|
||||
@@ -115,7 +117,7 @@ _1bppTo4bpp_table_template:
|
||||
lui t8, 0x1f80
|
||||
ori t8, t8, 0x390
|
||||
lui t7, 0x8001
|
||||
ori t7, t7, 0x3e8
|
||||
ori t7, t7, 0x5fc
|
||||
lw t5, 0x0(t7)
|
||||
lw t6, 0x4(t7)
|
||||
sw t5, 0x0(t8)
|
||||
@@ -144,7 +146,7 @@ rect_scratchpad_template:
|
||||
sw v0, 0x4(s3)
|
||||
li v0, 0xf0c0
|
||||
sh v0, 0xc(s3) // Сохраняем координаты VU (всегда f0c0)
|
||||
lhu v1, 0x9a(gp) // Загружаем CLUT из GP (всегда 7FD3)
|
||||
lhu v1, 0xa0(gp) // Загружаем CLUT из GP (всегда 7FD3)
|
||||
|
||||
li v0, 0
|
||||
sw v0, 0x8(s3) //Чистим экранные координаты
|
||||
@@ -459,10 +461,12 @@ PageTLoop:
|
||||
bne v0, zero, PageTLoop // Если да, продолжаем цикл
|
||||
clear a1 // a1 = 0
|
||||
|
||||
move v0, s5 // Возвращаем основные параметры DMA
|
||||
move v0, s4 // Возвращаем основные параметры DMA
|
||||
|
||||
// Восстанавливаем регистры из стека
|
||||
lw ra, 0x48(sp)
|
||||
|
||||
|
||||
lw s7, 0x44(sp)
|
||||
lw s6, 0x40(sp)
|
||||
lw s5, 0x3c(sp)
|
||||
@@ -472,6 +476,8 @@ PageTLoop:
|
||||
lw s1, 0x2c(sp)
|
||||
lw s0, 0x28(sp)
|
||||
|
||||
lw s8, 0x24(sp) //need to be saved!
|
||||
|
||||
jr ra // Возврат
|
||||
addiu sp, sp, 0x50 // Восстанавливаем стек
|
||||
|
||||
|
||||
Reference in New Issue
Block a user