From 2437b1e644616fa25e71d7c2466a6f1c0a705e13 Mon Sep 17 00:00:00 2001 From: Aleksey Mandrykin Date: Mon, 18 Mar 2024 02:58:52 +0300 Subject: [PATCH] change font API --- demo.asm | 10 +++++----- demos/visual.asm | 1 + lib/asm/vga/draw_char.asm | 11 +++++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/demo.asm b/demo.asm index c557534..45412d6 100644 --- a/demo.asm +++ b/demo.asm @@ -232,13 +232,13 @@ include lib/asm/tty/tty.asm include lib/asm/emulate/div.asm include demos/visual.asm -$dosfont1 import lib/asm/vga/fonts/CYRTHIN-Nesterenko-8x16.utf8.fnt +;$dosfont1 import lib/asm/vga/fonts/CYRTHIN-Nesterenko-8x16.utf8.fnt ;$dosfont2 import lib/asm/vga/fonts/DK-Feoktistov-8x16.utf8.fnt -$dosfont3 import lib/asm/vga/fonts/beta-Chi-Sovt-8x16.utf8.fnt -$dosfont4 import lib/asm/vga/fonts/EDFN-Anry-VGA3-8x16.utf8.FNT +;$dosfont3 import lib/asm/vga/fonts/beta-Chi-Sovt-8x16.utf8.fnt +;$dosfont4 import lib/asm/vga/fonts/EDFN-Anry-VGA3-8x16.utf8.FNT ;$dosfont5 import lib/asm/vga/fonts/MYFONT-8x16.utf8.FNT -$dosfont6 import lib/asm/vga/fonts/Goryachev-UNI_8X16.utf8.fnt -$dosfont7 import lib/asm/vga/fonts/MYFONT-8x16.utf8.fnt +;$dosfont6 import lib/asm/vga/fonts/Goryachev-UNI_8X16.utf8.fnt +;$dosfont7 import lib/asm/vga/fonts/MYFONT-8x16.utf8.fnt function _test_chars push r15 diff --git a/demos/visual.asm b/demos/visual.asm index b719157..05bccc3 100644 --- a/demos/visual.asm +++ b/demos/visual.asm @@ -1,6 +1,7 @@ function visual_test load r14, 0x8000 ; установка вершины стека call _vertical_scroll_demo + xor r0, r0 send end diff --git a/lib/asm/vga/draw_char.asm b/lib/asm/vga/draw_char.asm index 73ff8cc..b5af347 100644 --- a/lib/asm/vga/draw_char.asm +++ b/lib/asm/vga/draw_char.asm @@ -1,6 +1,6 @@ ; --- Точка входа при отладке. Она должна быть первой в файле ; Не должна вызываться программой и служит как тестовый заголовок -function _test_char +function test_char load r14, 0x2000 ; set stack load r0, 32 load r1, 0x80000000 @@ -10,6 +10,7 @@ function _test_char send end +$font_selector equ 0xfffeffd0 ; --- Функция вывода символа на VGA экран по координатам и нужным цветом ; Вход: R0 - код символа @@ -28,7 +29,7 @@ function _draw_char push r1 load r10, 2528 ; Размер следующая строка (640 - 8) * 4 - lea r7, $font_selector + load r7, $font_selector ; Читает из регистра адрес текушего шрифта в памяти mov r7, (r7) shl r0, 4 clc @@ -65,14 +66,16 @@ next: return end -$font_selector dq 0 +;$font_selector dq 0 + ; Устанавливает указатель на начало шрифта 8x16 ; Вход: ; R7 - адрес памяти шрифта function _select_font - lea r6, $font_selector +; lea r6, $font_selector + load r6, $font_selector mov (r6), r7 return end