EP: text print fixes

This commit is contained in:
sShemet
2025-11-07 10:51:48 +05:00
parent 894afef9ab
commit 4d739ba8fb
6 changed files with 788 additions and 780 deletions

View File

@@ -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 // Восстанавливаем стек