Показать сообщение отдельно
Старый 22.06.2023, 18:58   #1
Окоза-Окоза
Пользователь
 
Регистрация: 09.01.2023
Сообщений: 19
По умолчанию ОС на fasm - графическая оболочка

Здравствуйте! Есть ОС на fasm которая загружает "ядро" и запускает программы. Хочу добавить программу, в которой будет меню, пусть и текстовое. Но когда я пробовал вывести подкрашенный текст выводилась пустота. Пожалуйста помогите: Исправить ошибку с отображением текста, Перемещать курсор кнопками, и сделать "кнопки". Моя теория: нужно сравнивать положение курсора с положением текста "кнопки" или ссылки, если совпадет, то jump-иться на программу(ОС будет без ФС). Пожалуйста помогите!
Код программы с "плохим" текстом:
Код:
org 1c00h
include 'LIB\BASE_FUNC.asm'
start:
  clear_scr
         
    mov dx,0h
    call SetCursorPos
        mov bp, msg
        mov cx, 29
        mov bl,0Ah
        xor bh,bh
        mov ax,1301h
        int 10h
         
        add dh,2
        call SetCursorPos
        mov si,0
        jmp Escape



      ; jmp $

Escape:
             mov ah,10h
        int 16h
        cmp al, 1Bh     ;Если нажата клавиша Esc - выход из приложения
        jz Esc
    jmp Escape

Esc:
     jmp 0000:0500h

SetCursorPos:
        mov ah,2h
        xor bh,bh
        int 10h 
        ret

  PrintMes:               
        mov bl,0Ah         
        mov ax,1301h
        int 10h
        ret
msg db 'the paper with a black ink...',0
times 512 - ($ - $$) db 0
Макрос очистки экрана в BASE_FUNC:
Код:
macro clear_scr
{
mov ax, 0002h ;очищаем экран
int 10h
}
Спасибо
Окоза-Окоза вне форума Ответить с цитированием