mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-11-28 11:43:09 +03:00
delete old notify
git-svn-id: svn://kolibrios.org@4871 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
244ba684f5
commit
e3300b7a95
@ -1,144 +0,0 @@
|
|||||||
|
|
||||||
;
|
|
||||||
; @notify, pop-up windows
|
|
||||||
; by Sourcerer, 20.01.2011
|
|
||||||
;
|
|
||||||
;---------------------------------------------------------------------
|
|
||||||
|
|
||||||
use32 ; включить 32-битный режим ассемблера
|
|
||||||
org 0x0 ; адресация с нуля
|
|
||||||
|
|
||||||
db 'MENUET01' ; 8-байтный идентификатор MenuetOS
|
|
||||||
dd 0x01 ; версия заголовка (всегда 1)
|
|
||||||
dd START ; адрес первой команды
|
|
||||||
dd I_END ; размер программы
|
|
||||||
dd 0x1000 ; количество памяти
|
|
||||||
dd 0x1000 ; адрес вершины стэка
|
|
||||||
dd I_PARAM ; адрес буфера для параметров
|
|
||||||
dd 0x0 ; зарезервировано
|
|
||||||
|
|
||||||
|
|
||||||
include "..\..\..\macros.inc"
|
|
||||||
|
|
||||||
;---------------------------------------------------------------------
|
|
||||||
;--- НАЧАЛО ПРОГРАММЫ ----------------------------------------------
|
|
||||||
;---------------------------------------------------------------------
|
|
||||||
|
|
||||||
START:
|
|
||||||
|
|
||||||
red: ; перерисовать окно
|
|
||||||
|
|
||||||
call draw_window ; вызываем процедуру отрисовки окна
|
|
||||||
|
|
||||||
;---------------------------------------------------------------------
|
|
||||||
;--- ЦИКЛ ОБРАБОТКИ СОБЫТИЙ ----------------------------------------
|
|
||||||
;---------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
still: ; main cycle
|
|
||||||
mcall 23, 500
|
|
||||||
|
|
||||||
cmp eax, 0
|
|
||||||
je exit
|
|
||||||
cmp eax, 1
|
|
||||||
je red
|
|
||||||
cmp eax, 2
|
|
||||||
je key
|
|
||||||
cmp eax, 3
|
|
||||||
je button
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
button: ; button event handler
|
|
||||||
mov al, 17 ; get button identifier
|
|
||||||
mcall
|
|
||||||
|
|
||||||
cmp ah, 1
|
|
||||||
jne still ; return if button id != 1
|
|
||||||
|
|
||||||
call exit
|
|
||||||
|
|
||||||
key: ; key event handler
|
|
||||||
mov al, 2 ; get key code
|
|
||||||
mcall
|
|
||||||
|
|
||||||
jmp still
|
|
||||||
|
|
||||||
exit:
|
|
||||||
mcall -1
|
|
||||||
|
|
||||||
;---------------------------------------------------------------------
|
|
||||||
;--- ОПРЕДЕЛЕНИЕ И ОТРИСОВКА ОКНА ----------------------------------
|
|
||||||
;---------------------------------------------------------------------
|
|
||||||
|
|
||||||
draw_window:
|
|
||||||
|
|
||||||
mcall 12, 1 ; функция 12: сообщить ОС об отрисовке окна
|
|
||||||
|
|
||||||
mcall 14, 4 ;получим ширину экрана
|
|
||||||
shr eax, 16
|
|
||||||
and eax,0x0000FFFF
|
|
||||||
sub eax,300 ;отнимем от нее 300
|
|
||||||
shl eax, 16 ;и превратим в координаты окна по оси X
|
|
||||||
add eax,300
|
|
||||||
mov ebx, eax
|
|
||||||
|
|
||||||
mov eax, 0 ;и выведем это окно
|
|
||||||
mov ecx, 30 ;высотой 25 пикс
|
|
||||||
mov edx, 0x41000000 ;черного цвета и без заголовка
|
|
||||||
mov esi, 0x01000000
|
|
||||||
mcall
|
|
||||||
|
|
||||||
;вывод сеточки
|
|
||||||
mov eax, 1 ;функция вывода точки
|
|
||||||
mov edx, 0 ;черного цвета
|
|
||||||
mov ecx, 30 ;высота окна - 30 пкс
|
|
||||||
mov esi, 0 ;счетчик сдвига сетки
|
|
||||||
|
|
||||||
drawx: ;рисование линии
|
|
||||||
sub ecx, 1 ;уменьшаем счетчик линий
|
|
||||||
cmp ecx, 0 ;закончились линии?
|
|
||||||
je fin ;значит, хватит рисовать
|
|
||||||
mov ebx, 300 ;иначе - у нас ширина сетки 300 пкс
|
|
||||||
cmp esi,1 ;имелся ли сдвиг сетки в прошлой линии?
|
|
||||||
je sw;если да, то перейдем к sw
|
|
||||||
mov esi,1 ;иначе - сдвиг был выключен, включим сдвиг
|
|
||||||
jmp drawy ;перейдем к рисованию
|
|
||||||
|
|
||||||
sw:
|
|
||||||
mov esi,0 ;выключаем сдвиг сетки
|
|
||||||
|
|
||||||
drawy: ;рисование
|
|
||||||
sub ebx, 2 ;ставить точки будем через одну
|
|
||||||
cmp ebx, 0 ;дорисовали ли мы линию?
|
|
||||||
je drawx ;если да, то переходим к новой
|
|
||||||
sub ebx, esi ;применяем сдвиг
|
|
||||||
mcall ;рисуем
|
|
||||||
add ebx, esi ;возвращаем счетчик на место
|
|
||||||
jmp drawy ;рисуем новую точку
|
|
||||||
|
|
||||||
fin: ;дорисовали
|
|
||||||
|
|
||||||
mcall 4, <3, 12>, 0x80000000, I_PARAM, 0 ;тень за текстом
|
|
||||||
mcall , <5, 12>
|
|
||||||
mcall , <4, 11>
|
|
||||||
mcall , <4, 13>
|
|
||||||
mcall , <4, 12>, 0x80EFEFEF ;текст
|
|
||||||
|
|
||||||
|
|
||||||
mcall 12, 2 ; конец рисования
|
|
||||||
|
|
||||||
|
|
||||||
ret ; выходим из процедуры
|
|
||||||
|
|
||||||
|
|
||||||
;---------------------------------------------------------------------
|
|
||||||
;--- ДАННЫЕ ПРОГРАММЫ ----------------------------------------------
|
|
||||||
;---------------------------------------------------------------------
|
|
||||||
|
|
||||||
I_PARAM rb 256
|
|
||||||
|
|
||||||
I_END: ; метка конца программы
|
|
@ -1,3 +0,0 @@
|
|||||||
@fasm @notify.asm @notify
|
|
||||||
@kpack @notify
|
|
||||||
@pause
|
|
@ -1,14 +0,0 @@
|
|||||||
#!gmake
|
|
||||||
|
|
||||||
# Macro
|
|
||||||
FASM=/opt/bin/fasm
|
|
||||||
KPACK=/opt/bin/kpack
|
|
||||||
FILE=@notify
|
|
||||||
SOURCE=${FILE}.asm
|
|
||||||
OUT=${FILE}.bin
|
|
||||||
|
|
||||||
en:
|
|
||||||
${FASM} ${SOURCE} ${OUT}
|
|
||||||
clean:
|
|
||||||
rm -f ${OUT}
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user