Table: All editor code files have been added from the flash drive.
The start date of development is September 12, 2024.
This commit is contained in:
83
modules/display_d.asm
Normal file
83
modules/display_d.asm
Normal file
@@ -0,0 +1,83 @@
|
||||
use32 ; включить 32-битный режим ассемблера
|
||||
org 0 ; адресация с нуля
|
||||
db 'MENUET01' ; 8-байтный идентификатор MenuetOS
|
||||
dd 1 ; версия заголовка (1 либо 2, см. док-ю)
|
||||
dd START ; адрес первой команды
|
||||
dd I_END ; размер программы
|
||||
dd MEM ; количество памяти
|
||||
dd STACKTOP ; адрес вершины стэка
|
||||
dd DEF_CMDLINE ; адрес буфера для параметров
|
||||
dd 0 ; под адрес на путь к файлу
|
||||
include "macros.inc"
|
||||
; display_d -emul
|
||||
; display_d
|
||||
START:
|
||||
mcall 68, 11
|
||||
; parse cmdline
|
||||
cmp dword[DEF_CMDLINE], '-emu'
|
||||
je start_emul
|
||||
; start demon for input in serial port
|
||||
jmp exit
|
||||
start_emul:
|
||||
; init shared buffer
|
||||
mcall 68, 22, SHARED_NAME, 16*2, 8+1
|
||||
test edx, edx
|
||||
jnz exit
|
||||
test eax, eax
|
||||
jz exit
|
||||
mov [buff_ptr], eax
|
||||
|
||||
|
||||
mcall 40, 101b ; btn + readraw
|
||||
.win_draw:
|
||||
mcall 12, 1
|
||||
mcall 48, 4
|
||||
mov ecx, eax
|
||||
add ecx, 16*2+20
|
||||
mcall 0, 16*8+2*15, , 0x330f0f0f, 0, title;
|
||||
mcall 12, 2
|
||||
|
||||
.loop:
|
||||
call draw_info
|
||||
mcall 23, 100 ; 1s
|
||||
test eax, eax
|
||||
jz .loop
|
||||
|
||||
dec eax ; rdrw
|
||||
jz .win_draw
|
||||
|
||||
cmp eax, 3-1 ; btn
|
||||
jne .loop
|
||||
|
||||
mcall 17
|
||||
cmp eax, 1
|
||||
je .loop
|
||||
exit:
|
||||
mcall -1
|
||||
|
||||
|
||||
|
||||
draw_info:
|
||||
mov edx, [buff_ptr]
|
||||
mov ebx, (10 shl 16) + 10
|
||||
mcall 4, , 0x5000FFFF, , 16, 0x000000FF
|
||||
|
||||
add edx, 16
|
||||
add ebx, 16
|
||||
mcall 4, , ;0x5000FFFF, , 16, 0x000000FF
|
||||
ret
|
||||
|
||||
title: db 3, 'Эмулятор '
|
||||
SHARED_NAME: db 'DISPLAY_16_2_D',0
|
||||
buff_ptr: dd ?
|
||||
|
||||
align 16
|
||||
I_END:
|
||||
|
||||
DEF_CMDLINE:
|
||||
rb 256
|
||||
align 16
|
||||
rb 1024; one page
|
||||
STACKTOP:
|
||||
align 16
|
||||
MEM:
|
Reference in New Issue
Block a user