From 0cd3b0c5b157f9cd46be31b3db6ded72a8944701 Mon Sep 17 00:00:00 2001 From: Andrew Date: Sat, 11 Apr 2026 10:25:59 +0000 Subject: [PATCH] programs/develop: Post-SVN tidy (part 1) (#419) - Move source code from `trunk` into root directory for each program. - Update build files and ASM include paths. Add SPDX license header where appropriate. - Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden. (Work towards #75, point 3) Reviewed-on: https://git.kolibrios.org/KolibriOS/kolibrios/pulls/419 Co-authored-by: Andrew Co-committed-by: Andrew --- data/Tupfile.lua | 14 +- .../examples/checkbox/{trunk => }/Tupfile.lua | 0 .../checkbox/{trunk => }/build_ru.bat | 0 .../examples/checkbox/{trunk => }/check.inc | 0 .../checkbox/{trunk => }/checkbox.asm | 256 +++--- .../examples/circle/{trunk => }/Tupfile.lua | 0 .../examples/circle/{trunk => }/build.bat | 0 .../examples/circle/{trunk => }/circle.asm | 6 +- .../examples/cpuspeed/{trunk => }/Tupfile.lua | 2 +- .../cpuspeed/{trunk => }/build_en.bat | 0 .../cpuspeed/{trunk => }/build_ru.bat | 0 .../cpuspeed/{trunk => }/cpuspeed.asm | 254 +++--- .../examples/editbox/{trunk => }/FAQ.txt | 0 .../examples/editbox/{trunk => }/History | 0 .../examples/editbox/{trunk => }/Tupfile.lua | 0 .../examples/editbox/{trunk => }/build_ru.bat | 0 .../examples/editbox/{trunk => }/editbox.asm | 142 +-- .../examples/editbox/{trunk => }/editbox.inc | 0 .../examples/editbox/{trunk => }/editbox.mac | 0 .../examples/example/{trunk => }/build_en.bat | 0 .../examples/example/{trunk => }/example.asm | 0 .../example/{trunk => }/rus/build_ru.bat | 0 .../example/{trunk => }/rus/example.asm | 0 .../examples/example2/{trunk => }/Tupfile.lua | 2 +- .../example2/{trunk => }/build_en.bat | 0 .../example2/{trunk => }/build_ru.bat | 0 .../example2/{trunk => }/dialogs1.inc | 0 .../example2/{trunk => }/example2.asm | 6 +- .../examples/example3/{trunk => }/Tupfile.lua | 2 +- .../example3/{trunk => }/build_en.bat | 0 .../example3/{trunk => }/build_ru.bat | 0 .../example3/{trunk => }/example3.asm | 19 +- .../examples/hello/{trunk => }/Tupfile.lua | 2 +- .../examples/hello/{trunk => }/build_en.bat | 0 .../examples/hello/{trunk => }/build_ru.bat | 0 .../examples/hello/{trunk => }/cmdipc.inc | 6 +- .../examples/hello/{trunk => }/hello.asm | 6 + .../examples/ipc/{trunk => }/Tupfile.lua | 2 +- .../examples/ipc/{trunk => }/build_en.bat | 0 .../examples/ipc/{trunk => }/build_ru.bat | 0 .../develop/examples/ipc/{trunk => }/ipc.asm | 827 +++++++++--------- .../examples/ir/{trunk => }/Tupfile.lua | 2 +- .../examples/ir/{trunk => }/build_en.bat | 0 .../examples/ir/{trunk => }/build_ru.bat | 0 .../develop/examples/ir/{trunk => }/ir.asm | 539 ++++++------ .../examples/numcalc/{trunk => }/@numcalc.asm | 106 +-- .../examples/numcalc/{trunk => }/Tupfile.lua | 0 .../examples/numcalc/{trunk => }/build.bat | 0 .../radiobutton/{trunk => }/Tupfile.lua | 0 .../radiobutton/{trunk => }/optionbox.asm | 265 +++--- .../radiobutton/{trunk => }/optionbox.bat | 0 .../radiobutton/{trunk => }/optionbox.inc | 0 .../examples/rtdata/{trunk => }/Tupfile.lua | 2 +- .../examples/rtdata/{trunk => }/build_en.bat | 0 .../examples/rtdata/{trunk => }/build_ru.bat | 0 .../examples/rtdata/{trunk => }/rtdata.asm | 470 +++++----- .../examples/template/{trunk => }/Tupfile.lua | 2 +- .../template/{trunk => }/build_en.bat | 0 .../template/{trunk => }/build_fr.bat | 0 .../template/{trunk => }/build_ru.bat | 0 .../template/{trunk => }/template.asm | 8 +- .../examples/thread/{trunk => }/Tupfile.lua | 2 +- .../examples/thread/{trunk => }/build_en.bat | 0 .../examples/thread/{trunk => }/build_ru.bat | 0 .../examples/thread/{trunk => }/thread.asm | 7 +- .../ktcc/trunk/libc.obj/samples/thread_work.c | 2 +- programs/other/outdated/mv/trunk/mv.asm | 8 +- 67 files changed, 1517 insertions(+), 1442 deletions(-) rename programs/develop/examples/checkbox/{trunk => }/Tupfile.lua (100%) rename programs/develop/examples/checkbox/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/checkbox/{trunk => }/check.inc (100%) rename programs/develop/examples/checkbox/{trunk => }/checkbox.asm (93%) rename programs/develop/examples/circle/{trunk => }/Tupfile.lua (100%) rename programs/develop/examples/circle/{trunk => }/build.bat (100%) rename programs/develop/examples/circle/{trunk => }/circle.asm (98%) rename programs/develop/examples/cpuspeed/{trunk => }/Tupfile.lua (79%) rename programs/develop/examples/cpuspeed/{trunk => }/build_en.bat (100%) rename programs/develop/examples/cpuspeed/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/cpuspeed/{trunk => }/cpuspeed.asm (94%) rename programs/develop/examples/editbox/{trunk => }/FAQ.txt (100%) rename programs/develop/examples/editbox/{trunk => }/History (100%) rename programs/develop/examples/editbox/{trunk => }/Tupfile.lua (100%) rename programs/develop/examples/editbox/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/editbox/{trunk => }/editbox.asm (88%) rename programs/develop/examples/editbox/{trunk => }/editbox.inc (100%) rename programs/develop/examples/editbox/{trunk => }/editbox.mac (100%) rename programs/develop/examples/example/{trunk => }/build_en.bat (100%) rename programs/develop/examples/example/{trunk => }/example.asm (100%) rename programs/develop/examples/example/{trunk => }/rus/build_ru.bat (100%) rename programs/develop/examples/example/{trunk => }/rus/example.asm (100%) rename programs/develop/examples/example2/{trunk => }/Tupfile.lua (79%) rename programs/develop/examples/example2/{trunk => }/build_en.bat (100%) rename programs/develop/examples/example2/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/example2/{trunk => }/dialogs1.inc (100%) rename programs/develop/examples/example2/{trunk => }/example2.asm (98%) rename programs/develop/examples/example3/{trunk => }/Tupfile.lua (79%) rename programs/develop/examples/example3/{trunk => }/build_en.bat (100%) rename programs/develop/examples/example3/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/example3/{trunk => }/example3.asm (96%) rename programs/develop/examples/hello/{trunk => }/Tupfile.lua (79%) rename programs/develop/examples/hello/{trunk => }/build_en.bat (100%) rename programs/develop/examples/hello/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/hello/{trunk => }/cmdipc.inc (96%) rename programs/develop/examples/hello/{trunk => }/hello.asm (94%) rename programs/develop/examples/ipc/{trunk => }/Tupfile.lua (78%) rename programs/develop/examples/ipc/{trunk => }/build_en.bat (100%) rename programs/develop/examples/ipc/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/ipc/{trunk => }/ipc.asm (94%) rename programs/develop/examples/ir/{trunk => }/Tupfile.lua (78%) rename programs/develop/examples/ir/{trunk => }/build_en.bat (100%) rename programs/develop/examples/ir/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/ir/{trunk => }/ir.asm (94%) rename programs/develop/examples/numcalc/{trunk => }/@numcalc.asm (88%) rename programs/develop/examples/numcalc/{trunk => }/Tupfile.lua (100%) rename programs/develop/examples/numcalc/{trunk => }/build.bat (100%) rename programs/develop/examples/radiobutton/{trunk => }/Tupfile.lua (100%) rename programs/develop/examples/radiobutton/{trunk => }/optionbox.asm (93%) rename programs/develop/examples/radiobutton/{trunk => }/optionbox.bat (100%) rename programs/develop/examples/radiobutton/{trunk => }/optionbox.inc (100%) rename programs/develop/examples/rtdata/{trunk => }/Tupfile.lua (79%) rename programs/develop/examples/rtdata/{trunk => }/build_en.bat (100%) rename programs/develop/examples/rtdata/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/rtdata/{trunk => }/rtdata.asm (94%) rename programs/develop/examples/template/{trunk => }/Tupfile.lua (79%) rename programs/develop/examples/template/{trunk => }/build_en.bat (100%) rename programs/develop/examples/template/{trunk => }/build_fr.bat (100%) rename programs/develop/examples/template/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/template/{trunk => }/template.asm (95%) rename programs/develop/examples/thread/{trunk => }/Tupfile.lua (79%) rename programs/develop/examples/thread/{trunk => }/build_en.bat (100%) rename programs/develop/examples/thread/{trunk => }/build_ru.bat (100%) rename programs/develop/examples/thread/{trunk => }/thread.asm (96%) diff --git a/data/Tupfile.lua b/data/Tupfile.lua index 375e836aa..2a2122b97 100644 --- a/data/Tupfile.lua +++ b/data/Tupfile.lua @@ -72,7 +72,7 @@ img_files = { -- For russian build, add russian-only files. if build_type == "ru_RU" then tup.append_table(img_files, { - {"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/trunk/rus/example.asm"}, + {"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/rus/example.asm"}, {"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy_ru"}, {"GAMES/BASEKURS.KLA", build_type .. "/games/basekurs.kla"}, {"File Managers/KFAR.INI", build_type .. "/File Managers/kfar.ini"}, @@ -83,7 +83,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, { {"SETTINGS/SYSPANEL.INI", "ru_RU/settings/syspanel.ini"}, }) elseif build_type == "en_US" then tup.append_table(img_files, { {"WELCOME.HTM", VAR_DATA .. "/" .. build_type .. "/welcome.htm.kpack"}, - {"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/trunk/example.asm"}, + {"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/example.asm"}, {"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"GAMES/DESCENT", "common/games/descent"}, @@ -92,7 +92,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, { {"SETTINGS/MYKEY.INI", SRC_PROGS .. "/system/MyKey/mykey.ini"}, {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"}, }) elseif build_type == "es_ES" then tup.append_table(img_files, { - {"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/trunk/example.asm"}, + {"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/example.asm"}, {"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"GAMES/DESCENT", "common/games/descent"}, @@ -101,7 +101,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, { {"SETTINGS/MYKEY.INI", SRC_PROGS .. "/system/MyKey/mykey.ini"}, {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"}, }) elseif build_type == "it_IT" then tup.append_table(img_files, { - {"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/trunk/example.asm"}, + {"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/example.asm"}, {"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"GAMES/DESCENT", "common/games/descent"}, @@ -110,7 +110,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, { {"SETTINGS/GAMES.INI", "common/settings/games.ini"}, {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"}, }) else tup.append_table(img_files, { - {"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/trunk/example.asm"}, + {"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/example.asm"}, {"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"GAMES/DESCENT", "common/games/descent"}, @@ -483,11 +483,11 @@ tup.append_table(img_files, { {"DEVELOP/MTDBG", VAR_PROGS .. "/develop/mtdbg/mtdbg"}, {"DEVELOP/MSTATE", VAR_PROGS .. "/develop/mstate/mstate"}, {"DEVELOP/SCANCODE", VAR_PROGS .. "/develop/scancode/trunk/scancode"}, - {"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/trunk/circle"}, + {"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/circle"}, {"DEVELOP/EXAMPLES/COLORREF", VAR_PROGS .. "/demos/colorref/colorref"}, {"DEVELOP/EXAMPLES/CONGET", VAR_PROGS .. "/develop/libraries/console_coff/examples/test_gets"}, {"DEVELOP/EXAMPLES/CSLIDE", VAR_PROGS .. "/demos/cslide/cslide"}, - {"DEVELOP/EXAMPLES/THREAD", VAR_PROGS .. "/develop/examples/thread/trunk/thread"}, + {"DEVELOP/EXAMPLES/THREAD", VAR_PROGS .. "/develop/examples/thread/thread"}, {"File Managers/KFAR", VAR_PROGS .. "/fs/kfar/trunk/kfar"}, {"File Managers/OPENDIAL", VAR_PROGS .. "/fs/opendial/opendial"}, {"LOD", VAR_PROGS .. "/fs/lod/lod"}, diff --git a/programs/develop/examples/checkbox/trunk/Tupfile.lua b/programs/develop/examples/checkbox/Tupfile.lua similarity index 100% rename from programs/develop/examples/checkbox/trunk/Tupfile.lua rename to programs/develop/examples/checkbox/Tupfile.lua diff --git a/programs/develop/examples/checkbox/trunk/build_ru.bat b/programs/develop/examples/checkbox/build_ru.bat similarity index 100% rename from programs/develop/examples/checkbox/trunk/build_ru.bat rename to programs/develop/examples/checkbox/build_ru.bat diff --git a/programs/develop/examples/checkbox/trunk/check.inc b/programs/develop/examples/checkbox/check.inc similarity index 100% rename from programs/develop/examples/checkbox/trunk/check.inc rename to programs/develop/examples/checkbox/check.inc diff --git a/programs/develop/examples/checkbox/trunk/checkbox.asm b/programs/develop/examples/checkbox/checkbox.asm similarity index 93% rename from programs/develop/examples/checkbox/trunk/checkbox.asm rename to programs/develop/examples/checkbox/checkbox.asm index 9a6950345..732aa7b28 100644 --- a/programs/develop/examples/checkbox/trunk/checkbox.asm +++ b/programs/develop/examples/checkbox/checkbox.asm @@ -1,125 +1,131 @@ -;Оптимизированный компонент CheckBox (Исходный вариант от Maxxxx32) -;Оптимизирован вывод строки, надписи для CheckBox'a + теперь при проверке не ;происходит подсчет кол-ва символов в строке -;Оптимизация команд. -;21.02.2007 модернизация и поддержка двух разных вариантов с использованием сис цветов и старой схемой -;19.02.2007 общее улучшение кода, уменьшение размера и использование системных цветов для отображения checkbox -;22.08.2006 произведена оптимизация команд, приняты во внимание замечания DIAMOND'а. -; - Теплов Алексей www.lrz.land.ru - -;заголовок приложения -use32 ; транслятор, использующий 32 разрядных команды - org 0x0 ; базовый адрес кода, всегда 0x0 - db 'MENUET01' ; идентификатор исполняемого файла (8 байт) - dd 0x1 ; версия формата заголовка исполняемого файла - dd start ; адрес, на который система передаёт управление - ; после загрузки приложения в память - dd i_end ; размер приложения - dd i_end ; Объем используемой памяти, для стека отведем 0х100 байт и выровним на грницу 4 байта - dd i_end ; расположим позицию стека в области памяти, сразу за телом программы. Вершина стека в диапазоне памяти, указанном выше - dd 0x0,0x0 ; указатель на строку с параметрами. - ; если после запуска неравно нулю, приложение было - ; запущено с параметрами из командной строки - - ; указатель на строку, в которую записан путь, - ; откуда запущено приложение -;------------------ - include '..\..\..\..\macros.inc' - include 'check.inc' ;включить файл check.inc -; version_ch ;необходимый макрос для включения "старой" версии check_box - version_ch1 ;необходимый макрос для включения new версии check_box1 -;Недопустимо включение двух макросво version_ch1 и version_ch - они взамоисключают друг- дргуга. - use_check_box ;используя макросы внести процедуры для рисования чек бокса -;Область кода -align 4 -start: ;Точка входа в программу - mov eax,48 ;получить системные цвета - mov ebx,3 - mov ecx,sc - mov edx,sizeof.system_colors - mcall - - mov eax,40 ;установить маску для ожидаемых событий - mov ebx,0x25 ;система будет реагировать только на сообщение о перерисовке,нажата кнопка, определённая ранее, событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) - mcall -red_win: - call draw_window ;первоначально необходимо нарисовать окно -still: ;основной обработчик - mov eax,10 ;Ожидать события - mcall ;ожидать событие в течение 2 миллисекунд - - cmp al,0x1 ;если изменилось положение окна - jz red_win - cmp al,0x3 ;если нажата кнопка то перейти - jz button - mouse_check_boxes check_boxes,check_boxes_end ;проверка чек бокса - jmp still ;если ничего из перечисленного то снова в цикл -button: - or eax,-1 ;в eax,-1 - 5 ,байтов у нас же только 3 выйти - mcall ;далее выполняется выход из программы - -;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -draw_window: ;рисование окна приложения - mov eax,12 ;в регистр внести значение = 12 - mov ebx,1 ;присвоить 1 - mcall - - xor eax,eax ;обнулить eax - mov ebx,50*65536+180 ;[координата по оси x]*65536 + [размер по оси x] - mov ecx,30*65536+100 ;[координата по оси y]*65536 + [размер по оси y] - mov edx,[sc.work] ; color of work area RRGGBB,8->color gl - or edx,0xb3000000 - mov edi,hed - mcall ;нарисовать окно приложения - - draw_check_boxes check_boxes,check_boxes_end ;рисование чекбоксов - - mov eax,12 ;Функция 12 - начать/закончить перерисовку окна. - mov ebx,2 ;Подфункция 2 - закончить перерисовку окна. - mcall - ret -;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -;DATA данные -;Формат данных чек бокса: -;10 - координата чек бокса по х -;30 - координата чек бокса по у -;0 - цвет заливки внутри чек бокса -;0xfffffff - цвет рамки чек бокса если нужно так используются ситемные цвета -;0 - цвет текста надписи если нужно так используются ситемные цвета -;ch_text.1 - указатель на начало строки -;ch_text.e1-ch_text.1 - длина строки -; -align 4 -check_boxes: -;ch1 check_box 10,15,0xffffff,0,0,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en -;ch2 check_box 10,30,0xffffff,0,0,ch_text.2,ch_text.e2-ch_text.2 -;ch3 check_box 10,45,0xffffff,0,0,ch_text.3,ch_text.e3-ch_text.3 - -;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -;DATA данные для check_box1 - использует системные цвета -;Формат данных чек бокса: -;10 - координата чек бокса по х -;30 - координата чек бокса по у -;ch_text.1 - указатель на начало строки -;ch_text.e1-ch_text.1 - длина строки - -; -ch1 check_box1 10,15,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en -ch2 check_box1 10,30,ch_text.2,ch_text.e2-ch_text.2 -ch3 check_box1 10,45,ch_text.3,ch_text.e3-ch_text.3 -check_boxes_end: - -ch_text: ;сопровождающий текст для чек боксов -.1 db 'Check_Box #1' -.e1: -.2 db 'Check_Box #2' -.e2: -.3 db 'Check_Box #3' -.e3: - -hed db 'Checkbox [21.02.2007]',0 ;заголовок приложения -align 16 -sc system_colors -rb 0x100 -i_end: ;конец кода \ No newline at end of file +; SPDX-License-Identifier: NOASSERTION +; + +; Text encoded with Code Page 866 - Cyrillic + + +;Оптимизированный компонент CheckBox (Исходный вариант от Maxxxx32) +;Оптимизирован вывод строки, надписи для CheckBox'a + теперь при проверке не ;происходит подсчет кол-ва символов в строке +;Оптимизация команд. +;21.02.2007 модернизация и поддержка двух разных вариантов с использованием сис цветов и старой схемой +;19.02.2007 общее улучшение кода, уменьшение размера и использование системных цветов для отображения checkbox +;22.08.2006 произведена оптимизация команд, приняты во внимание замечания DIAMOND'а. +; - Теплов Алексей www.lrz.land.ru + +;заголовок приложения +use32 ; транслятор, использующий 32 разрядных команды + org 0x0 ; базовый адрес кода, всегда 0x0 + db 'MENUET01' ; идентификатор исполняемого файла (8 байт) + dd 0x1 ; версия формата заголовка исполняемого файла + dd start ; адрес, на который система передаёт управление + ; после загрузки приложения в память + dd i_end ; размер приложения + dd i_end ; Объем используемой памяти, для стека отведем 0х100 байт и выровним на грницу 4 байта + dd i_end ; расположим позицию стека в области памяти, сразу за телом программы. Вершина стека в диапазоне памяти, указанном выше + dd 0x0,0x0 ; указатель на строку с параметрами. + ; если после запуска неравно нулю, приложение было + ; запущено с параметрами из командной строки + + ; указатель на строку, в которую записан путь, + ; откуда запущено приложение +;------------------ + include '..\..\..\macros.inc' + include 'check.inc' ;включить файл check.inc +; version_ch ;необходимый макрос для включения "старой" версии check_box + version_ch1 ;необходимый макрос для включения new версии check_box1 +;Недопустимо включение двух макросво version_ch1 и version_ch - они взамоисключают друг- дргуга. + use_check_box ;используя макросы внести процедуры для рисования чек бокса +;Область кода +align 4 +start: ;Точка входа в программу + mov eax,48 ;получить системные цвета + mov ebx,3 + mov ecx,sc + mov edx,sizeof.system_colors + mcall + + mov eax,40 ;установить маску для ожидаемых событий + mov ebx,0x25 ;система будет реагировать только на сообщение о перерисовке,нажата кнопка, определённая ранее, событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) + mcall +red_win: + call draw_window ;первоначально необходимо нарисовать окно +still: ;основной обработчик + mov eax,10 ;Ожидать события + mcall ;ожидать событие в течение 2 миллисекунд + + cmp al,0x1 ;если изменилось положение окна + jz red_win + cmp al,0x3 ;если нажата кнопка то перейти + jz button + mouse_check_boxes check_boxes,check_boxes_end ;проверка чек бокса + jmp still ;если ничего из перечисленного то снова в цикл +button: + or eax,-1 ;в eax,-1 - 5 ,байтов у нас же только 3 выйти + mcall ;далее выполняется выход из программы + +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +draw_window: ;рисование окна приложения + mov eax,12 ;в регистр внести значение = 12 + mov ebx,1 ;присвоить 1 + mcall + + xor eax,eax ;обнулить eax + mov ebx,50*65536+180 ;[координата по оси x]*65536 + [размер по оси x] + mov ecx,30*65536+100 ;[координата по оси y]*65536 + [размер по оси y] + mov edx,[sc.work] ; color of work area RRGGBB,8->color gl + or edx,0xb3000000 + mov edi,hed + mcall ;нарисовать окно приложения + + draw_check_boxes check_boxes,check_boxes_end ;рисование чекбоксов + + mov eax,12 ;Функция 12 - начать/закончить перерисовку окна. + mov ebx,2 ;Подфункция 2 - закончить перерисовку окна. + mcall + ret +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +;DATA данные +;Формат данных чек бокса: +;10 - координата чек бокса по х +;30 - координата чек бокса по у +;0 - цвет заливки внутри чек бокса +;0xfffffff - цвет рамки чек бокса если нужно так используются ситемные цвета +;0 - цвет текста надписи если нужно так используются ситемные цвета +;ch_text.1 - указатель на начало строки +;ch_text.e1-ch_text.1 - длина строки +; +align 4 +check_boxes: +;ch1 check_box 10,15,0xffffff,0,0,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en +;ch2 check_box 10,30,0xffffff,0,0,ch_text.2,ch_text.e2-ch_text.2 +;ch3 check_box 10,45,0xffffff,0,0,ch_text.3,ch_text.e3-ch_text.3 + +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +;DATA данные для check_box1 - использует системные цвета +;Формат данных чек бокса: +;10 - координата чек бокса по х +;30 - координата чек бокса по у +;ch_text.1 - указатель на начало строки +;ch_text.e1-ch_text.1 - длина строки + +; +ch1 check_box1 10,15,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en +ch2 check_box1 10,30,ch_text.2,ch_text.e2-ch_text.2 +ch3 check_box1 10,45,ch_text.3,ch_text.e3-ch_text.3 +check_boxes_end: + +ch_text: ;сопровождающий текст для чек боксов +.1 db 'Check_Box #1' +.e1: +.2 db 'Check_Box #2' +.e2: +.3 db 'Check_Box #3' +.e3: + +hed db 'Checkbox [21.02.2007]',0 ;заголовок приложения +align 16 +sc system_colors +rb 0x100 +i_end: ;конец кода diff --git a/programs/develop/examples/circle/trunk/Tupfile.lua b/programs/develop/examples/circle/Tupfile.lua similarity index 100% rename from programs/develop/examples/circle/trunk/Tupfile.lua rename to programs/develop/examples/circle/Tupfile.lua diff --git a/programs/develop/examples/circle/trunk/build.bat b/programs/develop/examples/circle/build.bat similarity index 100% rename from programs/develop/examples/circle/trunk/build.bat rename to programs/develop/examples/circle/build.bat diff --git a/programs/develop/examples/circle/trunk/circle.asm b/programs/develop/examples/circle/circle.asm similarity index 98% rename from programs/develop/examples/circle/trunk/circle.asm rename to programs/develop/examples/circle/circle.asm index d56ae49fb..265808e7a 100644 --- a/programs/develop/examples/circle/trunk/circle.asm +++ b/programs/develop/examples/circle/circle.asm @@ -1,3 +1,7 @@ +; SPDX-License-Identifier: NOASSERTION +; + + ; ; SHAPED WINDOW - BASIC EXAMPLE ; @@ -16,7 +20,7 @@ use32 dd E_END ; esp dd 0, 0 ; no params, no path -include '..\..\..\..\macros.inc' +include '..\..\..\macros.inc' diff --git a/programs/develop/examples/cpuspeed/trunk/Tupfile.lua b/programs/develop/examples/cpuspeed/Tupfile.lua similarity index 79% rename from programs/develop/examples/cpuspeed/trunk/Tupfile.lua rename to programs/develop/examples/cpuspeed/Tupfile.lua index a2ce38990..831b0661a 100644 --- a/programs/develop/examples/cpuspeed/trunk/Tupfile.lua +++ b/programs/develop/examples/cpuspeed/Tupfile.lua @@ -1,5 +1,5 @@ if tup.getconfig("NO_FASM") ~= "" then return end -HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../.." or tup.getconfig("HELPERDIR") +HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") tup.include(HELPERDIR .. "/use_fasm.lua") add_include(tup.getvariantdir()) diff --git a/programs/develop/examples/cpuspeed/trunk/build_en.bat b/programs/develop/examples/cpuspeed/build_en.bat similarity index 100% rename from programs/develop/examples/cpuspeed/trunk/build_en.bat rename to programs/develop/examples/cpuspeed/build_en.bat diff --git a/programs/develop/examples/cpuspeed/trunk/build_ru.bat b/programs/develop/examples/cpuspeed/build_ru.bat similarity index 100% rename from programs/develop/examples/cpuspeed/trunk/build_ru.bat rename to programs/develop/examples/cpuspeed/build_ru.bat diff --git a/programs/develop/examples/cpuspeed/trunk/cpuspeed.asm b/programs/develop/examples/cpuspeed/cpuspeed.asm similarity index 94% rename from programs/develop/examples/cpuspeed/trunk/cpuspeed.asm rename to programs/develop/examples/cpuspeed/cpuspeed.asm index b5393151b..e518f9052 100644 --- a/programs/develop/examples/cpuspeed/trunk/cpuspeed.asm +++ b/programs/develop/examples/cpuspeed/cpuspeed.asm @@ -1,126 +1,128 @@ -; -; CPU SPEED INDICATIOR -; -; Compile with FASM -; - - use32 - org 0x0 - - db 'MENUET01' ; 8 byte id - dd 0x01 ; header version - dd START ; start of code - dd I_END ; size of image - dd 0x1000 ; memory for app - dd 0x1000 ; esp - dd 0x0,0x0 ; I_Param , I_Icon - -include 'lang.inc' -include '..\..\..\..\macros.inc' - -START: ; start of execution - - mov eax,18 - mov ebx,5 - mcall - - xor edx,edx - mov ebx,1000000 - div ebx - mov ebx,10 - mov edi,text+19 - mov ecx,5 - newnum: - xor edx,edx - mov ebx,10 - div ebx - add dl,48 - mov [edi],dl - sub edi,1 - loop newnum - - mov eax,48 - mov ebx,3 - mov ecx,sc - mov edx,sizeof.system_colors - mcall - -red: - call draw_window ; at first, draw the window - -still: - - mov eax,10 ; wait here for event - mcall - - cmp eax,1 ; redraw request ? - jz red - cmp eax,2 ; key in buffer ? - jz key - cmp eax,3 ; button in buffer ? - jz button - - jmp still - - key: ; key - mov eax,2 ; just read it and ignore - mcall - jmp still - - button: ; button - mov eax,17 ; get id - mcall - - cmp ah,1 ; button id=1 ? - jnz still - or eax,-1 ; close this program - mcall - - -; ********************************************* -; ******* WINDOW DEFINITIONS AND DRAW ******** -; ********************************************* - - -draw_window: - - mov eax,12 ; function 12:tell os about windowdraw - mov ebx,1 ; 1, start of draw - mcall - - ; DRAW WINDOW - mov eax,0 ; function 0 : define and draw window - mov ebx,100*65536+200 ; [x start] *65536 + [x size] - mov ecx,100*65536+65 ; [y start] *65536 + [y size] - mov edx,[sc.work] ; color of work area RRGGBB,8->color glide - or edx,0x33000000 ; color of grab bar RRGGBB,8->color - mov edi,title ; WINDOW LABEL - mcall - - - mov ebx,20*65536+14 ; draw info text with function 4 - mov ecx,[sc.work_text] - mov edx,text - mov esi,24 - mov eax,4 - mcall - - mov eax,12 ; function 12:tell os about windowdraw - mov ebx,2 ; 2, end of draw - mcall - - ret - - -; DATA AREA - - -text: - db 'CPU RUNNING AT MHZ' - -title db 'CPU SPEED',0 - -I_END: - -sc system_colors - +; SPDX-License-Identifier: NOASSERTION +; + +; +; CPU SPEED INDICATIOR +; +; Compile with FASM +; + + use32 + org 0x0 + + db 'MENUET01' ; 8 byte id + dd 0x01 ; header version + dd START ; start of code + dd I_END ; size of image + dd 0x1000 ; memory for app + dd 0x1000 ; esp + dd 0x0,0x0 ; I_Param , I_Icon + +include 'lang.inc' +include '..\..\..\macros.inc' + +START: ; start of execution + + mov eax,18 + mov ebx,5 + mcall + + xor edx,edx + mov ebx,1000000 + div ebx + mov ebx,10 + mov edi,text+19 + mov ecx,5 + newnum: + xor edx,edx + mov ebx,10 + div ebx + add dl,48 + mov [edi],dl + sub edi,1 + loop newnum + + mov eax,48 + mov ebx,3 + mov ecx,sc + mov edx,sizeof.system_colors + mcall + +red: + call draw_window ; at first, draw the window + +still: + + mov eax,10 ; wait here for event + mcall + + cmp eax,1 ; redraw request ? + jz red + cmp eax,2 ; key in buffer ? + jz key + cmp eax,3 ; button in buffer ? + jz button + + jmp still + + key: ; key + mov eax,2 ; just read it and ignore + mcall + jmp still + + button: ; button + mov eax,17 ; get id + mcall + + cmp ah,1 ; button id=1 ? + jnz still + or eax,-1 ; close this program + mcall + + +; ********************************************* +; ******* WINDOW DEFINITIONS AND DRAW ******** +; ********************************************* + + +draw_window: + + mov eax,12 ; function 12:tell os about windowdraw + mov ebx,1 ; 1, start of draw + mcall + + ; DRAW WINDOW + mov eax,0 ; function 0 : define and draw window + mov ebx,100*65536+200 ; [x start] *65536 + [x size] + mov ecx,100*65536+65 ; [y start] *65536 + [y size] + mov edx,[sc.work] ; color of work area RRGGBB,8->color glide + or edx,0x33000000 ; color of grab bar RRGGBB,8->color + mov edi,title ; WINDOW LABEL + mcall + + + mov ebx,20*65536+14 ; draw info text with function 4 + mov ecx,[sc.work_text] + mov edx,text + mov esi,24 + mov eax,4 + mcall + + mov eax,12 ; function 12:tell os about windowdraw + mov ebx,2 ; 2, end of draw + mcall + + ret + + +; DATA AREA + + +text: + db 'CPU RUNNING AT MHZ' + +title db 'CPU SPEED',0 + +I_END: + +sc system_colors diff --git a/programs/develop/examples/editbox/trunk/FAQ.txt b/programs/develop/examples/editbox/FAQ.txt similarity index 100% rename from programs/develop/examples/editbox/trunk/FAQ.txt rename to programs/develop/examples/editbox/FAQ.txt diff --git a/programs/develop/examples/editbox/trunk/History b/programs/develop/examples/editbox/History similarity index 100% rename from programs/develop/examples/editbox/trunk/History rename to programs/develop/examples/editbox/History diff --git a/programs/develop/examples/editbox/trunk/Tupfile.lua b/programs/develop/examples/editbox/Tupfile.lua similarity index 100% rename from programs/develop/examples/editbox/trunk/Tupfile.lua rename to programs/develop/examples/editbox/Tupfile.lua diff --git a/programs/develop/examples/editbox/trunk/build_ru.bat b/programs/develop/examples/editbox/build_ru.bat similarity index 100% rename from programs/develop/examples/editbox/trunk/build_ru.bat rename to programs/develop/examples/editbox/build_ru.bat diff --git a/programs/develop/examples/editbox/trunk/editbox.asm b/programs/develop/examples/editbox/editbox.asm similarity index 88% rename from programs/develop/examples/editbox/trunk/editbox.asm rename to programs/develop/examples/editbox/editbox.asm index b098696c9..bade6edc5 100644 --- a/programs/develop/examples/editbox/trunk/editbox.asm +++ b/programs/develop/examples/editbox/editbox.asm @@ -1,68 +1,74 @@ -;Распространяется по лицензии GPL SEE YOU File FAQ.txt and HISTORY. Good Like! -;Оптимизированный компонент EditBox (Исходный вариант от Maxxxx32) -;Оптимизация команд. -; - Теплов Алексей www.lrz.land.ru -;заголовок приложения - include '..\..\..\..\macros.inc' - include 'editbox.inc' -KOS_APP_START -align 4 - use_edit_box -;Область кода -code ;Точка входа в программу - mcall 40,0x27 ;установить маску для ожидаемых событий -;система будет реагировать только на сообщение о перерисовке,нажата кнопка, определённая ранее, событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) и нажатие клавиши -red_win: - call draw_window ;первоначально необходимо нарисовать окно -align 4 -still: ;основной обработчик - mcall 10 ;Ожидать события - dec eax - jz red_win - dec eax - jz key - dec eax - jz button - mouse_edit_boxes editboxes,editboxes_end - jmp still ;если ничего из перечисленного то снова в цикл -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -button: - mcall 17 ;получить идентификатор нажатой клавиши - test ah,ah ;если в ah 0, то перейти на обработчик событий still - jz still - mcall -1 -key: - mcall 2 ;загрузим значение 2 в регистор eax и получим код нажатой клавиши - key_edit_boxes editboxes,editboxes_end - jmp still - -;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -align 4 -draw_window: ;рисование окна приложения - mcall 12,1 - mcall 0,(50*65536+390),(30*65536+200),0xb3AABBCC,0x805080DD,hed - draw_edit_boxes editboxes,editboxes_end ;рисование edit box'ов - mcall 12,2 - ret -;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -;DATA данные -editboxes: -edit1 edit_box 168,5,10,0xffffff,0x6a9480,0,0,0,99,ed_buffer.2,ed_figure_only -edit2 edit_box 250,5,30,0xffffff,0x6a9480,0,0xAABBCC,0,308,hed,ed_focus,53,53 -edit3 edit_box 35,5,50,0xffffff,0x6a9480,0,0,0,9,ed_buffer.3,ed_figure_only -edit4 edit_box 16,5,70,0xffffff,0x6a9480,0,0,0,1,ed_buffer.4,ed_figure_only -editboxes_end: -data_of_code dd 0 -mouse_flag dd 0x0 -hed db 'EDITBOX optimization and retype date 23.07.2008',0 -rb 256 -ed_buffer: -;.1: rb 514;256 -.2: rb 101 -.3: rb 11 -.4: rb 3 -;два запасных байта необходимы для того что бы не пепереписать следующией байты, в конце буфера 0 -buffer_end: -align 16 -KOS_APP_END -udata +; SPDX-License-Identifier: NOASSERTION +; + +; Text encoded with Code Page 866 - Cyrillic + + +;Распространяется по лицензии GPL SEE YOU File FAQ.txt and HISTORY. Good Like! +;Оптимизированный компонент EditBox (Исходный вариант от Maxxxx32) +;Оптимизация команд. +; - Теплов Алексей www.lrz.land.ru +;заголовок приложения + include '..\..\..\macros.inc' + include 'editbox.inc' +KOS_APP_START +align 4 + use_edit_box +;Область кода +code ;Точка входа в программу + mcall 40,0x27 ;установить маску для ожидаемых событий +;система будет реагировать только на сообщение о перерисовке,нажата кнопка, определённая ранее, событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) и нажатие клавиши +red_win: + call draw_window ;первоначально необходимо нарисовать окно +align 4 +still: ;основной обработчик + mcall 10 ;Ожидать события + dec eax + jz red_win + dec eax + jz key + dec eax + jz button + mouse_edit_boxes editboxes,editboxes_end + jmp still ;если ничего из перечисленного то снова в цикл +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +button: + mcall 17 ;получить идентификатор нажатой клавиши + test ah,ah ;если в ah 0, то перейти на обработчик событий still + jz still + mcall -1 +key: + mcall 2 ;загрузим значение 2 в регистор eax и получим код нажатой клавиши + key_edit_boxes editboxes,editboxes_end + jmp still + +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +align 4 +draw_window: ;рисование окна приложения + mcall 12,1 + mcall 0,(50*65536+390),(30*65536+200),0xb3AABBCC,0x805080DD,hed + draw_edit_boxes editboxes,editboxes_end ;рисование edit box'ов + mcall 12,2 + ret +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +;DATA данные +editboxes: +edit1 edit_box 168,5,10,0xffffff,0x6a9480,0,0,0,99,ed_buffer.2,ed_figure_only +edit2 edit_box 250,5,30,0xffffff,0x6a9480,0,0xAABBCC,0,308,hed,ed_focus,53,53 +edit3 edit_box 35,5,50,0xffffff,0x6a9480,0,0,0,9,ed_buffer.3,ed_figure_only +edit4 edit_box 16,5,70,0xffffff,0x6a9480,0,0,0,1,ed_buffer.4,ed_figure_only +editboxes_end: +data_of_code dd 0 +mouse_flag dd 0x0 +hed db 'EDITBOX optimization and retype date 23.07.2008',0 +rb 256 +ed_buffer: +;.1: rb 514;256 +.2: rb 101 +.3: rb 11 +.4: rb 3 +;два запасных байта необходимы для того что бы не пепереписать следующией байты, в конце буфера 0 +buffer_end: +align 16 +KOS_APP_END +udata diff --git a/programs/develop/examples/editbox/trunk/editbox.inc b/programs/develop/examples/editbox/editbox.inc similarity index 100% rename from programs/develop/examples/editbox/trunk/editbox.inc rename to programs/develop/examples/editbox/editbox.inc diff --git a/programs/develop/examples/editbox/trunk/editbox.mac b/programs/develop/examples/editbox/editbox.mac similarity index 100% rename from programs/develop/examples/editbox/trunk/editbox.mac rename to programs/develop/examples/editbox/editbox.mac diff --git a/programs/develop/examples/example/trunk/build_en.bat b/programs/develop/examples/example/build_en.bat similarity index 100% rename from programs/develop/examples/example/trunk/build_en.bat rename to programs/develop/examples/example/build_en.bat diff --git a/programs/develop/examples/example/trunk/example.asm b/programs/develop/examples/example/example.asm similarity index 100% rename from programs/develop/examples/example/trunk/example.asm rename to programs/develop/examples/example/example.asm diff --git a/programs/develop/examples/example/trunk/rus/build_ru.bat b/programs/develop/examples/example/rus/build_ru.bat similarity index 100% rename from programs/develop/examples/example/trunk/rus/build_ru.bat rename to programs/develop/examples/example/rus/build_ru.bat diff --git a/programs/develop/examples/example/trunk/rus/example.asm b/programs/develop/examples/example/rus/example.asm similarity index 100% rename from programs/develop/examples/example/trunk/rus/example.asm rename to programs/develop/examples/example/rus/example.asm diff --git a/programs/develop/examples/example2/trunk/Tupfile.lua b/programs/develop/examples/example2/Tupfile.lua similarity index 79% rename from programs/develop/examples/example2/trunk/Tupfile.lua rename to programs/develop/examples/example2/Tupfile.lua index 15dc7cacd..b5b1bc484 100644 --- a/programs/develop/examples/example2/trunk/Tupfile.lua +++ b/programs/develop/examples/example2/Tupfile.lua @@ -1,5 +1,5 @@ if tup.getconfig("NO_FASM") ~= "" then return end -HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../.." or tup.getconfig("HELPERDIR") +HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") tup.include(HELPERDIR .. "/use_fasm.lua") add_include(tup.getvariantdir()) diff --git a/programs/develop/examples/example2/trunk/build_en.bat b/programs/develop/examples/example2/build_en.bat similarity index 100% rename from programs/develop/examples/example2/trunk/build_en.bat rename to programs/develop/examples/example2/build_en.bat diff --git a/programs/develop/examples/example2/trunk/build_ru.bat b/programs/develop/examples/example2/build_ru.bat similarity index 100% rename from programs/develop/examples/example2/trunk/build_ru.bat rename to programs/develop/examples/example2/build_ru.bat diff --git a/programs/develop/examples/example2/trunk/dialogs1.inc b/programs/develop/examples/example2/dialogs1.inc similarity index 100% rename from programs/develop/examples/example2/trunk/dialogs1.inc rename to programs/develop/examples/example2/dialogs1.inc diff --git a/programs/develop/examples/example2/trunk/example2.asm b/programs/develop/examples/example2/example2.asm similarity index 98% rename from programs/develop/examples/example2/trunk/example2.asm rename to programs/develop/examples/example2/example2.asm index 8d5934d11..6c5426587 100644 --- a/programs/develop/examples/example2/trunk/example2.asm +++ b/programs/develop/examples/example2/example2.asm @@ -1,3 +1,7 @@ + +; SPDX-License-Identifier: NOASSERTION +; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; MENU / DIALOG EXAMPLE @@ -18,7 +22,7 @@ use32 dd 0x0 , 0x0 ; I_Param , I_Icon include 'lang.inc' -include '..\..\..\..\macros.inc' +include '..\..\..\macros.inc' include 'dialogs1.inc' menu_history dd 0x0 diff --git a/programs/develop/examples/example3/trunk/Tupfile.lua b/programs/develop/examples/example3/Tupfile.lua similarity index 79% rename from programs/develop/examples/example3/trunk/Tupfile.lua rename to programs/develop/examples/example3/Tupfile.lua index ef39bd573..777a8a2d1 100644 --- a/programs/develop/examples/example3/trunk/Tupfile.lua +++ b/programs/develop/examples/example3/Tupfile.lua @@ -1,5 +1,5 @@ if tup.getconfig("NO_FASM") ~= "" then return end -HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../.." or tup.getconfig("HELPERDIR") +HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") tup.include(HELPERDIR .. "/use_fasm.lua") add_include(tup.getvariantdir()) diff --git a/programs/develop/examples/example3/trunk/build_en.bat b/programs/develop/examples/example3/build_en.bat similarity index 100% rename from programs/develop/examples/example3/trunk/build_en.bat rename to programs/develop/examples/example3/build_en.bat diff --git a/programs/develop/examples/example3/trunk/build_ru.bat b/programs/develop/examples/example3/build_ru.bat similarity index 100% rename from programs/develop/examples/example3/trunk/build_ru.bat rename to programs/develop/examples/example3/build_ru.bat diff --git a/programs/develop/examples/example3/trunk/example3.asm b/programs/develop/examples/example3/example3.asm similarity index 96% rename from programs/develop/examples/example3/trunk/example3.asm rename to programs/develop/examples/example3/example3.asm index 6c0f2f7fa..2e63f7697 100644 --- a/programs/develop/examples/example3/trunk/example3.asm +++ b/programs/develop/examples/example3/example3.asm @@ -1,3 +1,8 @@ +; SPDX-License-Identifier: NOASSERTION +; + +; Text encoded with Code Page 866 - Cyrillic + ; ; MENU EXAMPLE ; @@ -13,11 +18,11 @@ dd mem, stacktop, file_name, sys_path include 'lang.inc' -include '../../../../macros.inc' -include '../../../../proc32.inc' -include '../../../../KOSfuncs.inc' -include '../../../../load_lib.mac' -include '../../../../dll.inc' +include '../../../macros.inc' +include '../../../proc32.inc' +include '../../../KOSfuncs.inc' +include '../../../load_lib.mac' +include '../../../dll.inc' KMENUITEM_NORMAL equ 0 KMENUITEM_SUBMENU equ 1 @@ -94,7 +99,7 @@ start: ; start of execution stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_Help, [main_menu_Help] stdcall [ksubmenu_add], [main_menu], eax - red: + red: call draw_window ; draw window stdcall [kmainmenu_draw], [main_menu] @@ -108,7 +113,7 @@ still: cmp eax,3 jz button cmp eax,6 - jne @f + jne @f call mouse jmp still @@: diff --git a/programs/develop/examples/hello/trunk/Tupfile.lua b/programs/develop/examples/hello/Tupfile.lua similarity index 79% rename from programs/develop/examples/hello/trunk/Tupfile.lua rename to programs/develop/examples/hello/Tupfile.lua index 293756980..f3b71446b 100644 --- a/programs/develop/examples/hello/trunk/Tupfile.lua +++ b/programs/develop/examples/hello/Tupfile.lua @@ -1,5 +1,5 @@ if tup.getconfig("NO_FASM") ~= "" then return end -HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../.." or tup.getconfig("HELPERDIR") +HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") tup.include(HELPERDIR .. "/use_fasm.lua") add_include(tup.getvariantdir()) diff --git a/programs/develop/examples/hello/trunk/build_en.bat b/programs/develop/examples/hello/build_en.bat similarity index 100% rename from programs/develop/examples/hello/trunk/build_en.bat rename to programs/develop/examples/hello/build_en.bat diff --git a/programs/develop/examples/hello/trunk/build_ru.bat b/programs/develop/examples/hello/build_ru.bat similarity index 100% rename from programs/develop/examples/hello/trunk/build_ru.bat rename to programs/develop/examples/hello/build_ru.bat diff --git a/programs/develop/examples/hello/trunk/cmdipc.inc b/programs/develop/examples/hello/cmdipc.inc similarity index 96% rename from programs/develop/examples/hello/trunk/cmdipc.inc rename to programs/develop/examples/hello/cmdipc.inc index f7baeda86..9b732b092 100644 --- a/programs/develop/examples/hello/trunk/cmdipc.inc +++ b/programs/develop/examples/hello/cmdipc.inc @@ -1,4 +1,7 @@ -include "..\..\..\..\macros.inc" +; SPDX-License-Identifier: NOASSERTION +; + +include "..\..\..\macros.inc" initipc: mov eax,9 @@ -218,4 +221,3 @@ stripc: times 84 db 0 fill_symbol db 0 prc: times 52 db 0 - diff --git a/programs/develop/examples/hello/trunk/hello.asm b/programs/develop/examples/hello/hello.asm similarity index 94% rename from programs/develop/examples/hello/trunk/hello.asm rename to programs/develop/examples/hello/hello.asm index df8211603..24b1a2df7 100644 --- a/programs/develop/examples/hello/trunk/hello.asm +++ b/programs/develop/examples/hello/hello.asm @@ -1,3 +1,9 @@ +; SPDX-License-Identifier: NOASSERTION +; + +; Text encoded with Code Page 866 - Cyrillic + + ; Hello, World! - Programm example for CMD shell ; Compile with FASM ; diff --git a/programs/develop/examples/ipc/trunk/Tupfile.lua b/programs/develop/examples/ipc/Tupfile.lua similarity index 78% rename from programs/develop/examples/ipc/trunk/Tupfile.lua rename to programs/develop/examples/ipc/Tupfile.lua index ef6636c38..183098d60 100644 --- a/programs/develop/examples/ipc/trunk/Tupfile.lua +++ b/programs/develop/examples/ipc/Tupfile.lua @@ -1,5 +1,5 @@ if tup.getconfig("NO_FASM") ~= "" then return end -HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../.." or tup.getconfig("HELPERDIR") +HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") tup.include(HELPERDIR .. "/use_fasm.lua") add_include(tup.getvariantdir()) diff --git a/programs/develop/examples/ipc/trunk/build_en.bat b/programs/develop/examples/ipc/build_en.bat similarity index 100% rename from programs/develop/examples/ipc/trunk/build_en.bat rename to programs/develop/examples/ipc/build_en.bat diff --git a/programs/develop/examples/ipc/trunk/build_ru.bat b/programs/develop/examples/ipc/build_ru.bat similarity index 100% rename from programs/develop/examples/ipc/trunk/build_ru.bat rename to programs/develop/examples/ipc/build_ru.bat diff --git a/programs/develop/examples/ipc/trunk/ipc.asm b/programs/develop/examples/ipc/ipc.asm similarity index 94% rename from programs/develop/examples/ipc/trunk/ipc.asm rename to programs/develop/examples/ipc/ipc.asm index c407a9e59..5ddfcf6eb 100644 --- a/programs/develop/examples/ipc/trunk/ipc.asm +++ b/programs/develop/examples/ipc/ipc.asm @@ -1,412 +1,415 @@ -; -; Example for Inter Process Communication -; -; Compile with FASM -; -include 'lang.inc' -include '..\..\..\..\macros.inc' - - use32 - org 0x0 - - db 'MENUET01' ; 8 byte id - dd 0x01 ; header version - dd START ; start of code - dd I_END ; size of image - dd 0x60000 ; memory for app - dd 0x60000 ; esp - dd 0x0 , 0x0 ; I_Param , I_Icon - -START: ; start of execution - - - mov eax,60 ; IPC - mov ebx,1 ; define receive area - mov ecx,received_messages ; pointer to start - mov edx,1000 ; size of area - mcall - - mov eax,40 ; WANTED EVENTS - mov ebx,01000111b ; IPC 7 + defaults - mcall - - mov [received_messages+8],dword 0*256+0 - mov [received_messages+12],dword 0 - - red: - call draw_window ; at first, draw the window - -still: - - mov eax,23 ; wait here for event - mov ebx,50 - mcall - - cmp eax,1 ; redraw request ? - je red - cmp eax,2 ; key in buffer ? - je key - cmp eax,3 ; button in buffer ? - je button - - cmp eax,7 ; IPC ? - jne no_ipc - call display_ipc_messages - jmp still - no_ipc: - - jmp still - - key: ; key - mov eax,2 ; just read it and ignore - mcall - jmp still - - button: ; button - mov eax,17 ; get id - mcall - - cmp ah,1 ; button id=1 ? - jne noclose - mov eax,-1 ; close this program - mcall - noclose: - - cmp ah,2 - jne no_read - call read_string - - movzx eax,byte [message] - sub eax,48 - imul eax,10 - movzx ebx,byte [message+1] - add eax,ebx - sub eax,48 - imul eax,10 - movzx ebx,byte [message+2] - add eax,ebx - sub eax,48 - imul eax,10 - movzx ebx,byte [message+3] - add eax,ebx - sub eax,48 - - mov [PID],eax - - mov eax,60 ; IPC - mov ebx,2 ; send message - mov ecx,[PID] - mov edx,message+4 - mov esi,20;[message_size] - mcall - - jmp still - no_read: - - - cmp ah,3 - jne no_messages_pop ; pop the first out - call ipc_message_pop - jmp still - no_messages_pop: - - jmp still - - -ipc_message_pop: - - pusha - - cmp [received_messages+4],dword 8 - je already_empty - - mov [received_messages],byte 1 ; lock the area - - push dword [received_messages+4] - - mov ecx,[received_messages+12] - - sub [received_messages+4],ecx - sub [received_messages+4],dword 8 - - mov edi,received_messages+8 - mov esi,edi - add esi,ecx - add esi,8 - - pop ecx - - cld - rep movsb - - call display_ipc_messages - - mov [received_messages],byte 0 ; free the area - - already_empty: - - popa - ret - - - - display_ipc_messages: - - pusha - - mov eax,13 - mov ebx,25*65536+245 - mov ecx,105*65536+90 - mov edx,0xdddddd - mcall - - cmp [received_messages+4],dword 8 ; empty list - je ipma1 - - mov ebx,25*65536+105 ; draw info text with function 4 - mov ecx,0x224466 - mov edx,received_messages+8 - mov esi,40 - mov [counter],0 - newline2: - pusha - mov ecx,[edx] - and ecx,0xfff - mov edx,ebx - mov eax,47 - mov ebx,4*65536 - mov esi,0xff0000 - mcall - popa - pusha - mov esi,20 - add edx,8 - add ebx,30*65536 - mov eax,4 - mcall - popa - - add ebx,10 - mov edi,[edx+4] - add edi,8 - and edi,0xfff - add edx,edi - - mov edi,[received_messages+4] - add edi,received_messages - cmp edx,edi - jge ipma1 - - inc [counter] - cmp [counter],8 - jbe newline2 - - ipma1: - - popa - ret - - -counter dd 0x0 - - -; ********************************************* -; ******* WINDOW DEFINITIONS AND DRAW ******** -; ********************************************* - - -draw_window: - - mov eax,12 ; function 12:tell os about windowdraw - mov ebx,1 ; 1, start of draw - mcall - - ; DRAW WINDOW - mov eax,0 ; function 0 : define and draw window - mov ebx,100*65536+290 ; [x start] *65536 + [x size] - mov ecx,100*65536+220 ; [y start] *65536 + [y size] - mov edx,0x14ffffff ; color of work area RRGGBB,8->color gl - mov edi,title ; WINDOW LABEL - mcall - - - mov eax,9 - mov ebx,process_info - mov ecx,-1 - mcall - - mov eax,47 - mov ebx,4*65536 - mov ecx,[process_info+30] - mov edx,180*65536+35 - mov esi,0x000000 - mcall - - mov eax,8 ; MESSAGE - mov ebx,25*65536+87 - mov ecx,50*65536+16 - mov edx,2 - mov esi,0x5588dd - mcall - - ;mov eax,8 ; POP - mov ebx,216*65536+53 - mov ecx,80*65536+16 - mov edx,3 - mcall - - mov eax,4 - mov ebx,25*65536+35 ; draw info text with function 4 - mov ecx,0x224466 - mov edx,text - mov esi,40 - newline: - mcall - add ebx,10 - add edx,40 - cmp [edx],byte 'x' - jne newline - - call display_ipc_messages - - mov eax,12 ; function 12:tell os about windowdraw - mov ebx,2 ; 2, end of draw - mcall - - ret - - - - -read_string: - - pusha - - mov [addr],dword message - mov [ya],55 - mov [xa],120 - - mov ecx,20 - mov edi,[addr] - mov al,' ' - cld - rep stosb - - call print_text - - mov edi,[addr] - - f11: - mov eax,10 - mcall - cmp eax,2 - jz fbu - - exit_readkey: - - popa - ret - - fbu: - mov eax,2 - mcall ; get key - shr eax,8 - - cmp eax,13 - je exit_readkey - - cmp eax,8 - jnz nobs - cmp edi,[addr] - jz f11 - dec edi - mov [edi],byte ' ' - call print_text - jmp f11 - nobs: - - cmp eax,31 - jbe f11 - cmp eax,95 - jb keyok - sub eax,32 - keyok: - mov [edi],al - - call print_text - - inc edi - mov esi,[addr] - add esi,20 - cmp esi,edi - jnz f11 - - popa - ret - - - -print_text: - - mov eax,13 - mov ebx,[xa] - shl ebx,16 - add ebx,25*6 - mov ecx,[ya] - shl ecx,16 - mov cx,8 - mov edx,0xffffff - mcall - - mov eax,4 - mov ebx,[xa] - shl ebx,16 - add ebx,[ya] - mov ecx,0x000000 - mov edx,[addr] - mov esi,25 - mcall - - ret - - - - - - -; DATA AREA - -ya dd 0x0 -xa dd 0x0 -addr dd 0x0 - -text: - db 'PROCESS ID FOR THIS APP : ' - db ' ' - db ' PID:MESSAGE 0130 EXAMPLE MESSAGE ' - db ' ' - db ' ' - db 'RECEIVED: POP ' - db 'x' ; <- END MARKER, DO NOT DELETE - - -title db 'IPC - START AT LEAST 2',0 - -I_END: - -PID: dd 0x0 -message_size: dd 20 - -received_messages: - - db 0 ; lock byte - db 0,0,0 ; reserved - dd 8 ; pointer to free msg position from received_messages - -; Sender PID -; Msg length -; Msg data - -rb 0x1000 -message: times 70 db ? -process_info: times 256 dd ? +; SPDX-License-Identifier: NOASSERTION +; + +; +; Example for Inter Process Communication +; +; Compile with FASM +; +include 'lang.inc' +include '..\..\..\macros.inc' + + use32 + org 0x0 + + db 'MENUET01' ; 8 byte id + dd 0x01 ; header version + dd START ; start of code + dd I_END ; size of image + dd 0x60000 ; memory for app + dd 0x60000 ; esp + dd 0x0 , 0x0 ; I_Param , I_Icon + +START: ; start of execution + + + mov eax,60 ; IPC + mov ebx,1 ; define receive area + mov ecx,received_messages ; pointer to start + mov edx,1000 ; size of area + mcall + + mov eax,40 ; WANTED EVENTS + mov ebx,01000111b ; IPC 7 + defaults + mcall + + mov [received_messages+8],dword 0*256+0 + mov [received_messages+12],dword 0 + + red: + call draw_window ; at first, draw the window + +still: + + mov eax,23 ; wait here for event + mov ebx,50 + mcall + + cmp eax,1 ; redraw request ? + je red + cmp eax,2 ; key in buffer ? + je key + cmp eax,3 ; button in buffer ? + je button + + cmp eax,7 ; IPC ? + jne no_ipc + call display_ipc_messages + jmp still + no_ipc: + + jmp still + + key: ; key + mov eax,2 ; just read it and ignore + mcall + jmp still + + button: ; button + mov eax,17 ; get id + mcall + + cmp ah,1 ; button id=1 ? + jne noclose + mov eax,-1 ; close this program + mcall + noclose: + + cmp ah,2 + jne no_read + call read_string + + movzx eax,byte [message] + sub eax,48 + imul eax,10 + movzx ebx,byte [message+1] + add eax,ebx + sub eax,48 + imul eax,10 + movzx ebx,byte [message+2] + add eax,ebx + sub eax,48 + imul eax,10 + movzx ebx,byte [message+3] + add eax,ebx + sub eax,48 + + mov [PID],eax + + mov eax,60 ; IPC + mov ebx,2 ; send message + mov ecx,[PID] + mov edx,message+4 + mov esi,20;[message_size] + mcall + + jmp still + no_read: + + + cmp ah,3 + jne no_messages_pop ; pop the first out + call ipc_message_pop + jmp still + no_messages_pop: + + jmp still + + +ipc_message_pop: + + pusha + + cmp [received_messages+4],dword 8 + je already_empty + + mov [received_messages],byte 1 ; lock the area + + push dword [received_messages+4] + + mov ecx,[received_messages+12] + + sub [received_messages+4],ecx + sub [received_messages+4],dword 8 + + mov edi,received_messages+8 + mov esi,edi + add esi,ecx + add esi,8 + + pop ecx + + cld + rep movsb + + call display_ipc_messages + + mov [received_messages],byte 0 ; free the area + + already_empty: + + popa + ret + + + + display_ipc_messages: + + pusha + + mov eax,13 + mov ebx,25*65536+245 + mov ecx,105*65536+90 + mov edx,0xdddddd + mcall + + cmp [received_messages+4],dword 8 ; empty list + je ipma1 + + mov ebx,25*65536+105 ; draw info text with function 4 + mov ecx,0x224466 + mov edx,received_messages+8 + mov esi,40 + mov [counter],0 + newline2: + pusha + mov ecx,[edx] + and ecx,0xfff + mov edx,ebx + mov eax,47 + mov ebx,4*65536 + mov esi,0xff0000 + mcall + popa + pusha + mov esi,20 + add edx,8 + add ebx,30*65536 + mov eax,4 + mcall + popa + + add ebx,10 + mov edi,[edx+4] + add edi,8 + and edi,0xfff + add edx,edi + + mov edi,[received_messages+4] + add edi,received_messages + cmp edx,edi + jge ipma1 + + inc [counter] + cmp [counter],8 + jbe newline2 + + ipma1: + + popa + ret + + +counter dd 0x0 + + +; ********************************************* +; ******* WINDOW DEFINITIONS AND DRAW ******** +; ********************************************* + + +draw_window: + + mov eax,12 ; function 12:tell os about windowdraw + mov ebx,1 ; 1, start of draw + mcall + + ; DRAW WINDOW + mov eax,0 ; function 0 : define and draw window + mov ebx,100*65536+290 ; [x start] *65536 + [x size] + mov ecx,100*65536+220 ; [y start] *65536 + [y size] + mov edx,0x14ffffff ; color of work area RRGGBB,8->color gl + mov edi,title ; WINDOW LABEL + mcall + + + mov eax,9 + mov ebx,process_info + mov ecx,-1 + mcall + + mov eax,47 + mov ebx,4*65536 + mov ecx,[process_info+30] + mov edx,180*65536+35 + mov esi,0x000000 + mcall + + mov eax,8 ; MESSAGE + mov ebx,25*65536+87 + mov ecx,50*65536+16 + mov edx,2 + mov esi,0x5588dd + mcall + + ;mov eax,8 ; POP + mov ebx,216*65536+53 + mov ecx,80*65536+16 + mov edx,3 + mcall + + mov eax,4 + mov ebx,25*65536+35 ; draw info text with function 4 + mov ecx,0x224466 + mov edx,text + mov esi,40 + newline: + mcall + add ebx,10 + add edx,40 + cmp [edx],byte 'x' + jne newline + + call display_ipc_messages + + mov eax,12 ; function 12:tell os about windowdraw + mov ebx,2 ; 2, end of draw + mcall + + ret + + + + +read_string: + + pusha + + mov [addr],dword message + mov [ya],55 + mov [xa],120 + + mov ecx,20 + mov edi,[addr] + mov al,' ' + cld + rep stosb + + call print_text + + mov edi,[addr] + + f11: + mov eax,10 + mcall + cmp eax,2 + jz fbu + + exit_readkey: + + popa + ret + + fbu: + mov eax,2 + mcall ; get key + shr eax,8 + + cmp eax,13 + je exit_readkey + + cmp eax,8 + jnz nobs + cmp edi,[addr] + jz f11 + dec edi + mov [edi],byte ' ' + call print_text + jmp f11 + nobs: + + cmp eax,31 + jbe f11 + cmp eax,95 + jb keyok + sub eax,32 + keyok: + mov [edi],al + + call print_text + + inc edi + mov esi,[addr] + add esi,20 + cmp esi,edi + jnz f11 + + popa + ret + + + +print_text: + + mov eax,13 + mov ebx,[xa] + shl ebx,16 + add ebx,25*6 + mov ecx,[ya] + shl ecx,16 + mov cx,8 + mov edx,0xffffff + mcall + + mov eax,4 + mov ebx,[xa] + shl ebx,16 + add ebx,[ya] + mov ecx,0x000000 + mov edx,[addr] + mov esi,25 + mcall + + ret + + + + + + +; DATA AREA + +ya dd 0x0 +xa dd 0x0 +addr dd 0x0 + +text: + db 'PROCESS ID FOR THIS APP : ' + db ' ' + db ' PID:MESSAGE 0130 EXAMPLE MESSAGE ' + db ' ' + db ' ' + db 'RECEIVED: POP ' + db 'x' ; <- END MARKER, DO NOT DELETE + + +title db 'IPC - START AT LEAST 2',0 + +I_END: + +PID: dd 0x0 +message_size: dd 20 + +received_messages: + + db 0 ; lock byte + db 0,0,0 ; reserved + dd 8 ; pointer to free msg position from received_messages + +; Sender PID +; Msg length +; Msg data + +rb 0x1000 +message: times 70 db ? +process_info: times 256 dd ? diff --git a/programs/develop/examples/ir/trunk/Tupfile.lua b/programs/develop/examples/ir/Tupfile.lua similarity index 78% rename from programs/develop/examples/ir/trunk/Tupfile.lua rename to programs/develop/examples/ir/Tupfile.lua index 1f1bbc8ed..6632d8426 100644 --- a/programs/develop/examples/ir/trunk/Tupfile.lua +++ b/programs/develop/examples/ir/Tupfile.lua @@ -1,5 +1,5 @@ if tup.getconfig("NO_FASM") ~= "" then return end -HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../.." or tup.getconfig("HELPERDIR") +HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") tup.include(HELPERDIR .. "/use_fasm.lua") add_include(tup.getvariantdir()) diff --git a/programs/develop/examples/ir/trunk/build_en.bat b/programs/develop/examples/ir/build_en.bat similarity index 100% rename from programs/develop/examples/ir/trunk/build_en.bat rename to programs/develop/examples/ir/build_en.bat diff --git a/programs/develop/examples/ir/trunk/build_ru.bat b/programs/develop/examples/ir/build_ru.bat similarity index 100% rename from programs/develop/examples/ir/trunk/build_ru.bat rename to programs/develop/examples/ir/build_ru.bat diff --git a/programs/develop/examples/ir/trunk/ir.asm b/programs/develop/examples/ir/ir.asm similarity index 94% rename from programs/develop/examples/ir/trunk/ir.asm rename to programs/develop/examples/ir/ir.asm index b85b050c0..c05e7bee5 100644 --- a/programs/develop/examples/ir/trunk/ir.asm +++ b/programs/develop/examples/ir/ir.asm @@ -1,268 +1,271 @@ -; -; INFRARED -; -; Compile with FASM -; - -use32 - - org 0x0 - - db 'MENUET01' ; 8 byte id - dd 1 ; required os - dd START ; program start - dd I_END ; program image size - dd 0x1000 ; required amount of memory - dd 0x1000 ; esp = 0x7FFF0 - dd 0, 0 - - -include '..\..\..\..\macros.inc' - -START: ; start of execution - -set_variables: - - mov eax,46 ; reserve ports 0x3f0 - 0x3ff - mov ebx,0 - mov ecx,0x3f0 - mov edx,0x3ff - mcall - - mov eax,45 ; reserve irq 4 - mov ebx,0 - mov ecx,4 - mcall - - mov eax,44 ; set read ports for irq 4 - mov ebx,irqtable -; mov ecx,4 - mcall - - mov dh, 3 ; all ports have number 3xx hex - - mov dl, 0xf3+8 - mov al, 0x80 - out dx, al - - mov dl, 0xf1+8 - mov al, 0 - out dx, al - - mov dl, 0xf0+8 - mov al, 0x30 / 4 - out dx, al - - mov dl, 0xf3+8 - mov al, 3 - out dx, al - - mov dl, 0xf4+8 - mov al, 0xB - out dx, al - - mov dl, 0xf1+8 - mov al, 1 - out dx, al - - mov eax,5 - mov ebx,100 - mcall - - mov dl, 0xf8 - mov al, 'I' - out dx, al - - mov eax,5 - mov ebx,10 - mcall - - mov al, 'R' - out dx, al - - mov eax,40 ; get com 1 data with irq 4 - mov ebx,0000000000010000b shl 16 + 101b - mcall - -red: - call draw_window - -still: - - mov eax,10 ; wait here for event - mcall - dec eax - jz red - dec eax - dec eax - jnz readir - - button: ; button - mov al,17 ; get id - mcall - -; we have only one button, close - - mov eax,45 ; free irq - mov ebx,1 - mov ecx,4 - mcall - - mov eax,46 ; free ports 0x3f0-0x3ff - mov ebx,1 - mov ecx,0x3f0 - mov edx,0x3ff - mcall - - or eax,-1 ; close this program - mcall - -pos dd 0x0 - -cdplayer: - dd 7 - dd 0 - dd 0 - dd 0 - dd 0 - db '/sys/CDP',0 - - readir: - mov eax,42 - mov ebx,4 - mcall - - cmp ebx,80 - jne nocd - - mov eax,70 - mov ebx,cdplayer - mcall - - - nocd: - - push ebx - mov eax,[pos] - add eax,1 - cmp eax,10*20+1 - jb noeaxz - mov esi,text+10*4 - mov edi,text - mov ecx,10*21*4 - cld - rep movsb - mov eax,13 - mov ebx,20*65536+260 - mov ecx,22*65536+220 - mov edx,[wcolor] - mcall - mov eax,10*19+1 - noeaxz: - mov [pos],eax - pop ebx - and ebx,0xff - call draw_data - jmp still - - - - -draw_data: - - pusha - - xchg eax,ebx - - mov ecx,10 - shl ebx,2 - mov esi,3 - newnum: - xor edx,edx - div ecx - add edx,48 - mov [ebx+text-1],dl - dec ebx - dec esi - jnz newnum - - call draw_text - - popa - - ret - - -irqtable: - - dd 0x3f8+0x01000000 ; + 01 = read byte, 02 read word - dd 0 - - - -; ********************************************* -; ******* WINDOW DEFINITIONS AND DRAW ******** -; ********************************************* - - -draw_window: - - mov eax,12 ; function 12:tell os about windowdraw - mov ebx,1 ; 1, start of draw - mcall - - ; DRAW WINDOW - mov eax,0 ; function 0 : define and draw window - mov ebx,100*65536+300 ; [x start] *65536 + [x size] - mov ecx,100*65536+250 ; [y start] *65536 + [y size] - mov edx,[wcolor] ; color of work area RRGGBB,8->color - mov edi,labelt ; caption string - mcall - -; ; WINDOW LABEL -; mov eax,4 ; function 4 : write text to window -; mov ebx,8*65536+8 ; [x start] *65536 + [y start] -; mov ecx,0x00ffffff ; color of text RRGGBB -; mov edx,labelt ; pointer to text beginning -; mov esi,labellen-labelt ; text length -; mcall - - ; CLOSE BUTTON -; mov eax,8 ; function 8 : define and draw button -; mov ebx,(300-19)*65536+12 ; [x start] *65536 + [x size] -; mov ecx,5*65536+12 ; [y start] *65536 + [y size] -; mov edx,1 ; button id -; mov esi,0x5599cc ; button color RRGGBB -; mcall - -draw_text: - - mov ebx,25*65536+35 ; draw info text with function 4 - mov ecx,0xffffff - mov edx,text - mov esi,40 - mov edi,20 - newline: - mov eax,4 - mcall - add ebx,10 - add edx,esi - dec edi - jne newline - - mov eax,12 - mov ebx,2 - mcall - - ret - - -; DATA AREA - -wcolor dd 0x13000000 - -labelt db 'INFRARED RECEIVER FOR IRMAN IN COM 1',0 - -text: - -I_END: +; SPDX-License-Identifier: NOASSERTION +; + +; +; INFRARED +; +; Compile with FASM +; + +use32 + + org 0x0 + + db 'MENUET01' ; 8 byte id + dd 1 ; required os + dd START ; program start + dd I_END ; program image size + dd 0x1000 ; required amount of memory + dd 0x1000 ; esp = 0x7FFF0 + dd 0, 0 + + +include '..\..\..\macros.inc' + +START: ; start of execution + +set_variables: + + mov eax,46 ; reserve ports 0x3f0 - 0x3ff + mov ebx,0 + mov ecx,0x3f0 + mov edx,0x3ff + mcall + + mov eax,45 ; reserve irq 4 + mov ebx,0 + mov ecx,4 + mcall + + mov eax,44 ; set read ports for irq 4 + mov ebx,irqtable +; mov ecx,4 + mcall + + mov dh, 3 ; all ports have number 3xx hex + + mov dl, 0xf3+8 + mov al, 0x80 + out dx, al + + mov dl, 0xf1+8 + mov al, 0 + out dx, al + + mov dl, 0xf0+8 + mov al, 0x30 / 4 + out dx, al + + mov dl, 0xf3+8 + mov al, 3 + out dx, al + + mov dl, 0xf4+8 + mov al, 0xB + out dx, al + + mov dl, 0xf1+8 + mov al, 1 + out dx, al + + mov eax,5 + mov ebx,100 + mcall + + mov dl, 0xf8 + mov al, 'I' + out dx, al + + mov eax,5 + mov ebx,10 + mcall + + mov al, 'R' + out dx, al + + mov eax,40 ; get com 1 data with irq 4 + mov ebx,0000000000010000b shl 16 + 101b + mcall + +red: + call draw_window + +still: + + mov eax,10 ; wait here for event + mcall + dec eax + jz red + dec eax + dec eax + jnz readir + + button: ; button + mov al,17 ; get id + mcall + +; we have only one button, close + + mov eax,45 ; free irq + mov ebx,1 + mov ecx,4 + mcall + + mov eax,46 ; free ports 0x3f0-0x3ff + mov ebx,1 + mov ecx,0x3f0 + mov edx,0x3ff + mcall + + or eax,-1 ; close this program + mcall + +pos dd 0x0 + +cdplayer: + dd 7 + dd 0 + dd 0 + dd 0 + dd 0 + db '/sys/CDP',0 + + readir: + mov eax,42 + mov ebx,4 + mcall + + cmp ebx,80 + jne nocd + + mov eax,70 + mov ebx,cdplayer + mcall + + + nocd: + + push ebx + mov eax,[pos] + add eax,1 + cmp eax,10*20+1 + jb noeaxz + mov esi,text+10*4 + mov edi,text + mov ecx,10*21*4 + cld + rep movsb + mov eax,13 + mov ebx,20*65536+260 + mov ecx,22*65536+220 + mov edx,[wcolor] + mcall + mov eax,10*19+1 + noeaxz: + mov [pos],eax + pop ebx + and ebx,0xff + call draw_data + jmp still + + + + +draw_data: + + pusha + + xchg eax,ebx + + mov ecx,10 + shl ebx,2 + mov esi,3 + newnum: + xor edx,edx + div ecx + add edx,48 + mov [ebx+text-1],dl + dec ebx + dec esi + jnz newnum + + call draw_text + + popa + + ret + + +irqtable: + + dd 0x3f8+0x01000000 ; + 01 = read byte, 02 read word + dd 0 + + + +; ********************************************* +; ******* WINDOW DEFINITIONS AND DRAW ******** +; ********************************************* + + +draw_window: + + mov eax,12 ; function 12:tell os about windowdraw + mov ebx,1 ; 1, start of draw + mcall + + ; DRAW WINDOW + mov eax,0 ; function 0 : define and draw window + mov ebx,100*65536+300 ; [x start] *65536 + [x size] + mov ecx,100*65536+250 ; [y start] *65536 + [y size] + mov edx,[wcolor] ; color of work area RRGGBB,8->color + mov edi,labelt ; caption string + mcall + +; ; WINDOW LABEL +; mov eax,4 ; function 4 : write text to window +; mov ebx,8*65536+8 ; [x start] *65536 + [y start] +; mov ecx,0x00ffffff ; color of text RRGGBB +; mov edx,labelt ; pointer to text beginning +; mov esi,labellen-labelt ; text length +; mcall + + ; CLOSE BUTTON +; mov eax,8 ; function 8 : define and draw button +; mov ebx,(300-19)*65536+12 ; [x start] *65536 + [x size] +; mov ecx,5*65536+12 ; [y start] *65536 + [y size] +; mov edx,1 ; button id +; mov esi,0x5599cc ; button color RRGGBB +; mcall + +draw_text: + + mov ebx,25*65536+35 ; draw info text with function 4 + mov ecx,0xffffff + mov edx,text + mov esi,40 + mov edi,20 + newline: + mov eax,4 + mcall + add ebx,10 + add edx,esi + dec edi + jne newline + + mov eax,12 + mov ebx,2 + mcall + + ret + + +; DATA AREA + +wcolor dd 0x13000000 + +labelt db 'INFRARED RECEIVER FOR IRMAN IN COM 1',0 + +text: + +I_END: diff --git a/programs/develop/examples/numcalc/trunk/@numcalc.asm b/programs/develop/examples/numcalc/@numcalc.asm similarity index 88% rename from programs/develop/examples/numcalc/trunk/@numcalc.asm rename to programs/develop/examples/numcalc/@numcalc.asm index a8ce1befa..bb4a2e2de 100755 --- a/programs/develop/examples/numcalc/trunk/@numcalc.asm +++ b/programs/develop/examples/numcalc/@numcalc.asm @@ -1,50 +1,56 @@ -include '..\..\..\..\macros.inc' -use32 - db 'MENUET01' - dd 1 - dd start - dd i_end - dd mem - dd mem - dd 0 - dd 0 - -start: - push 66 - pop eax - push 4 - pop ebx - mov cl, 45h ; NumLock scancode - xor edx, edx - mcall - mov al, 40 ; ёЄрЁ°шх сшЄ√ єцх юсэєыхэ√ - mov bl, 2 ; ёЄрЁ°шх сшЄ√ єцх юсэєыхэ√ - mcall -event: - push 10 - pop eax - mcall -; є эрё ьюцхЄ с√Є№ Єюы№ъю юфэю ёюс√Єшх - эрцрЄр ъыртш°р - mov al, 2 - mcall - cmp al, 2 - jnz event -; є эрё хёЄ№ Єюы№ъю юфэр уюЁ ўр  ъыртш°р - push 70 - pop eax - mov ebx, fileinfo - mcall - jmp event - -fileinfo: - dd 7 - dd 0 - dd 0 - dd 0 - dd 0 - db '/sys/calc',0 - -i_end: - align 16 - rb 16 -mem: +; SPDX-License-Identifier: NOASSERTION +; + +; Text encoded with Code Page Windows 1251 - Cyrillic + + +include '..\..\..\macros.inc' +use32 + db 'MENUET01' + dd 1 + dd start + dd i_end + dd mem + dd mem + dd 0 + dd 0 + +start: + push 66 + pop eax + push 4 + pop ebx + mov cl, 45h ; NumLock scancode + xor edx, edx + mcall + mov al, 40 ; ёЄрЁ°шх сшЄ√ єцх юсэєыхэ√ + mov bl, 2 ; ёЄрЁ°шх сшЄ√ єцх юсэєыхэ√ + mcall +event: + push 10 + pop eax + mcall +; є эрё ьюцхЄ с√Є№ Єюы№ъю юфэю ёюс√Єшх - эрцрЄр ъыртш°р + mov al, 2 + mcall + cmp al, 2 + jnz event +; є эрё хёЄ№ Єюы№ъю юфэр уюЁ ўр  ъыртш°р + push 70 + pop eax + mov ebx, fileinfo + mcall + jmp event + +fileinfo: + dd 7 + dd 0 + dd 0 + dd 0 + dd 0 + db '/sys/calc',0 + +i_end: + align 16 + rb 16 +mem: diff --git a/programs/develop/examples/numcalc/trunk/Tupfile.lua b/programs/develop/examples/numcalc/Tupfile.lua similarity index 100% rename from programs/develop/examples/numcalc/trunk/Tupfile.lua rename to programs/develop/examples/numcalc/Tupfile.lua diff --git a/programs/develop/examples/numcalc/trunk/build.bat b/programs/develop/examples/numcalc/build.bat similarity index 100% rename from programs/develop/examples/numcalc/trunk/build.bat rename to programs/develop/examples/numcalc/build.bat diff --git a/programs/develop/examples/radiobutton/trunk/Tupfile.lua b/programs/develop/examples/radiobutton/Tupfile.lua similarity index 100% rename from programs/develop/examples/radiobutton/trunk/Tupfile.lua rename to programs/develop/examples/radiobutton/Tupfile.lua diff --git a/programs/develop/examples/radiobutton/trunk/optionbox.asm b/programs/develop/examples/radiobutton/optionbox.asm similarity index 93% rename from programs/develop/examples/radiobutton/trunk/optionbox.asm rename to programs/develop/examples/radiobutton/optionbox.asm index e384a28af..6a93a6d56 100644 --- a/programs/develop/examples/radiobutton/trunk/optionbox.asm +++ b/programs/develop/examples/radiobutton/optionbox.asm @@ -1,130 +1,135 @@ -;компонент OptionBox (основан на Checkbox) -;Огромная благодарность Maxxxx32, Diamond, Heavyiron и другим программистам, и их программам, без -;которых я не смог бы написать этот компонент. -;21.02.2007 модернизация и поддержка двух разных вариантов с использованием сис цветов и старой схемой -;19.02.2007 общее улучшение кода, уменьшение размера и использование системных цветов для отображения optionkbox -;16.02.2007 дата создания компонента -; - Теплов Алексей www.lrz.land.ru - -;заголовок приложения -use32 ; транслятор, использующий 32 разрядных команды - org 0x0 ; базовый адрес кода, всегда 0x0 - db 'MENUET01' ; идентификатор исполняемого файла (8 байт) - dd 0x1 ; версия формата заголовка исполняемого файла - dd start ; адрес, на который система передаёт управление - ; после загрузки приложения в память - dd i_end ; размер приложения - dd (i_end+0x100) and not 3 ; Объем используемой памяти, для стека отведем 0х100 байт и выровним на грницу 4 байта - dd (i_end+0x100) and not 3 ; расположим позицию стека в области памяти, сразу за телом программы. Вершина стека в диапазоне памяти, указанном выше - dd 0x0,0x0 ; указатель на строку с параметрами. - ; если после запуска не равно нулю, приложение было - ; запущено с параметрами из командной строки - - ; указатель на строку, в которую записан путь, - ; откуда запущено приложение -;------------------ - include '..\..\..\..\macros.inc' - include 'optionbox.inc' ;включить файл opeck.inc - - version_op ;вариант, при котором используются цвета, которые задает пользователь -; version_op1 ;цвета берутся из системы - use_option_box ;используя макросы,внести процедуры для рисования optionbox -align 16 -;Область кода -start: ;Точка входа в программу - mov eax,48 ;получить системные цвета - mov ebx,3 - mov ecx,sc - mov edx,sizeof.system_colors - mcall - - mov eax,40 ;установить маску для ожидаемых событий - mov ebx,0x25 ;система будет реагировать только на сообщение о перерисовке,нажата кнопка, определённая ранее, событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) - mcall -red_win: - call draw_window ;первоначально необходимо нарисовать окно -still: ;основной обработчик - mov eax,10 ;Ожидать события - mcall ;ожидать событие в течение 2 миллисекунд - - cmp al,0x1 ;если изменилось положение окна - jz red_win - cmp al,0x3 ;если нажата кнопка то перейти - jz button - mouse_option_boxes option_boxes,option_boxes_end ;проверка чек бокса - jmp still ;если ничего из перечисленного то снова в цикл -button: -; mov eax,17 ;получить идентификатор нажатой клавиши -; mcall -; test ah,ah ;если в ah 0, то перейти на обработчик событий still -; jz still - or eax,-1 ;в eax,-1 - 5 ,байтов у нас же только 3 выйти - mcall ;далее выполняется выход из программы - -;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -draw_window: ;рисование окна приложения - mov eax,12 ;в регистр внести значение = 12 - mov ebx,1 ;присвоить 1 - mcall - - xor eax,eax ;обнулить eax - mov ebx,50*65536+180 ;[координата по оси x]*65536 + [размер по оси x] - mov ecx,30*65536+200 ;[координата по оси y]*65536 + [размер по оси y] - mov edx,[sc.work] ; color of work area RRGGBB,8->color gl - or edx,0xb3000000 - mov edi,hed - mcall ;нарисовать окно приложения - -draw_option_boxes option_boxes,option_boxes_end ;рисование чекбоксов - - mov eax,12 ;Функция 12 - начать/закончить перерисовку окна. - mov ebx,2 ;Подфункция 2 - закончить перерисовку окна. - mcall - ret - -;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -;DATA данные -;Формат данных чек бокса: -;10 - координата чек бокса по х -;30 - координата чек бокса по у -;0 -;0 - цвет рамки чек бокса -;0 - цвет текста надписи -;op_text.1 - указатель на начало строки -;option_group1 - это признак группы, т.е. этот код может обрабатывать много групп из optibox -;op_text.e1-op_text.1 - длина строки -; -align 16 -option_boxes: -;op1 option_box1 option_group1,10,15,op_text.1,op_text.e1-op_text.1 -;op2 option_box1 option_group1,10,30,op_text.2,op_text.e2-op_text.2 -;op3 option_box1 option_group1,10,45,op_text.3,op_text.e3-op_text.3 -;op11 option_box1 option_group2,10,80,op_text.1,op_text.e1-op_text.1 -;op12 option_box1 option_group2,10,95,op_text.2,op_text.e2-op_text.2 -;op13 option_box1 option_group2,10,110,op_text.3,op_text.e3-op_text.3 -; -;struc option_box point_gr,left,top,color,border_color,text_color,text,text_length -op1 option_box option_group1,10,15,0xffffff,0,0,op_text.1,op_text.e1-op_text.1 -op2 option_box option_group1,10,30,0xFFFFFF,0,0,op_text.2,op_text.e2-op_text.2 -op3 option_box option_group1,10,45,0xffffff,0,0,op_text.3,op_text.e3-op_text.3 -op11 option_box option_group2,10,80,0xffffff,0,0,op_text.1,op_text.e1-op_text.1 -op12 option_box option_group2,10,95,0xffffff,0,0,op_text.2,op_text.e2-op_text.2 -op13 option_box option_group2,10,110,0xffffff,0,0,op_text.3,op_text.e3-op_text.3 - -option_boxes_end: - -op_text: ; Сопровождающий текст для чек боксов -.1 db 'Option_Box #1' -.e1: -.2 db 'Option_Box #2' -.e2: -.3 db 'Option_Box #3' -.e3: - -option_group1 dd op1 ;указатели, они отображаются по умолчанию, когда выводится -option_group2 dd op11 ;приложение - -hed db 'Optionbox [21.02.2007]',0 ;заголовок приложения -sc system_colors -i_end: ;конец кода \ No newline at end of file +; SPDX-License-Identifier: NOASSERTION +; + +; Text encoded with Code Page 866 - Cyrillic + +;компонент OptionBox (основан на Checkbox) +;Огромная благодарность Maxxxx32, Diamond, Heavyiron и другим программистам, и их программам, без +;которых я не смог бы написать этот компонент. +;21.02.2007 модернизация и поддержка двух разных вариантов с использованием сис цветов и старой схемой +;19.02.2007 общее улучшение кода, уменьшение размера и использование системных цветов для отображения optionkbox +;16.02.2007 дата создания компонента +; - Теплов Алексей www.lrz.land.ru + +;заголовок приложения +use32 ; транслятор, использующий 32 разрядных команды + org 0x0 ; базовый адрес кода, всегда 0x0 + db 'MENUET01' ; идентификатор исполняемого файла (8 байт) + dd 0x1 ; версия формата заголовка исполняемого файла + dd start ; адрес, на который система передаёт управление + ; после загрузки приложения в память + dd i_end ; размер приложения + dd (i_end+0x100) and not 3 ; Объем используемой памяти, для стека отведем 0х100 байт и выровним на грницу 4 байта + dd (i_end+0x100) and not 3 ; расположим позицию стека в области памяти, сразу за телом программы. Вершина стека в диапазоне памяти, указанном выше + dd 0x0,0x0 ; указатель на строку с параметрами. + ; если после запуска не равно нулю, приложение было + ; запущено с параметрами из командной строки + + ; указатель на строку, в которую записан путь, + ; откуда запущено приложение +;------------------ + include '..\..\..\macros.inc' + include 'optionbox.inc' ;включить файл opeck.inc + + version_op ;вариант, при котором используются цвета, которые задает пользователь +; version_op1 ;цвета берутся из системы + use_option_box ;используя макросы,внести процедуры для рисования optionbox +align 16 +;Область кода +start: ;Точка входа в программу + mov eax,48 ;получить системные цвета + mov ebx,3 + mov ecx,sc + mov edx,sizeof.system_colors + mcall + + mov eax,40 ;установить маску для ожидаемых событий + mov ebx,0x25 ;система будет реагировать только на сообщение о перерисовке,нажата кнопка, определённая ранее, событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) + mcall +red_win: + call draw_window ;первоначально необходимо нарисовать окно +still: ;основной обработчик + mov eax,10 ;Ожидать события + mcall ;ожидать событие в течение 2 миллисекунд + + cmp al,0x1 ;если изменилось положение окна + jz red_win + cmp al,0x3 ;если нажата кнопка то перейти + jz button + mouse_option_boxes option_boxes,option_boxes_end ;проверка чек бокса + jmp still ;если ничего из перечисленного то снова в цикл +button: +; mov eax,17 ;получить идентификатор нажатой клавиши +; mcall +; test ah,ah ;если в ah 0, то перейти на обработчик событий still +; jz still + or eax,-1 ;в eax,-1 - 5 ,байтов у нас же только 3 выйти + mcall ;далее выполняется выход из программы + +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +draw_window: ;рисование окна приложения + mov eax,12 ;в регистр внести значение = 12 + mov ebx,1 ;присвоить 1 + mcall + + xor eax,eax ;обнулить eax + mov ebx,50*65536+180 ;[координата по оси x]*65536 + [размер по оси x] + mov ecx,30*65536+200 ;[координата по оси y]*65536 + [размер по оси y] + mov edx,[sc.work] ; color of work area RRGGBB,8->color gl + or edx,0xb3000000 + mov edi,hed + mcall ;нарисовать окно приложения + +draw_option_boxes option_boxes,option_boxes_end ;рисование чекбоксов + + mov eax,12 ;Функция 12 - начать/закончить перерисовку окна. + mov ebx,2 ;Подфункция 2 - закончить перерисовку окна. + mcall + ret + +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +;DATA данные +;Формат данных чек бокса: +;10 - координата чек бокса по х +;30 - координата чек бокса по у +;0 +;0 - цвет рамки чек бокса +;0 - цвет текста надписи +;op_text.1 - указатель на начало строки +;option_group1 - это признак группы, т.е. этот код может обрабатывать много групп из optibox +;op_text.e1-op_text.1 - длина строки +; +align 16 +option_boxes: +;op1 option_box1 option_group1,10,15,op_text.1,op_text.e1-op_text.1 +;op2 option_box1 option_group1,10,30,op_text.2,op_text.e2-op_text.2 +;op3 option_box1 option_group1,10,45,op_text.3,op_text.e3-op_text.3 +;op11 option_box1 option_group2,10,80,op_text.1,op_text.e1-op_text.1 +;op12 option_box1 option_group2,10,95,op_text.2,op_text.e2-op_text.2 +;op13 option_box1 option_group2,10,110,op_text.3,op_text.e3-op_text.3 +; +;struc option_box point_gr,left,top,color,border_color,text_color,text,text_length +op1 option_box option_group1,10,15,0xffffff,0,0,op_text.1,op_text.e1-op_text.1 +op2 option_box option_group1,10,30,0xFFFFFF,0,0,op_text.2,op_text.e2-op_text.2 +op3 option_box option_group1,10,45,0xffffff,0,0,op_text.3,op_text.e3-op_text.3 +op11 option_box option_group2,10,80,0xffffff,0,0,op_text.1,op_text.e1-op_text.1 +op12 option_box option_group2,10,95,0xffffff,0,0,op_text.2,op_text.e2-op_text.2 +op13 option_box option_group2,10,110,0xffffff,0,0,op_text.3,op_text.e3-op_text.3 + +option_boxes_end: + +op_text: ; Сопровождающий текст для чек боксов +.1 db 'Option_Box #1' +.e1: +.2 db 'Option_Box #2' +.e2: +.3 db 'Option_Box #3' +.e3: + +option_group1 dd op1 ;указатели, они отображаются по умолчанию, когда выводится +option_group2 dd op11 ;приложение + +hed db 'Optionbox [21.02.2007]',0 ;заголовок приложения +sc system_colors +i_end: ;конец кода diff --git a/programs/develop/examples/radiobutton/trunk/optionbox.bat b/programs/develop/examples/radiobutton/optionbox.bat similarity index 100% rename from programs/develop/examples/radiobutton/trunk/optionbox.bat rename to programs/develop/examples/radiobutton/optionbox.bat diff --git a/programs/develop/examples/radiobutton/trunk/optionbox.inc b/programs/develop/examples/radiobutton/optionbox.inc similarity index 100% rename from programs/develop/examples/radiobutton/trunk/optionbox.inc rename to programs/develop/examples/radiobutton/optionbox.inc diff --git a/programs/develop/examples/rtdata/trunk/Tupfile.lua b/programs/develop/examples/rtdata/Tupfile.lua similarity index 79% rename from programs/develop/examples/rtdata/trunk/Tupfile.lua rename to programs/develop/examples/rtdata/Tupfile.lua index 1c9b85d3c..48c67813f 100644 --- a/programs/develop/examples/rtdata/trunk/Tupfile.lua +++ b/programs/develop/examples/rtdata/Tupfile.lua @@ -1,5 +1,5 @@ if tup.getconfig("NO_FASM") ~= "" then return end -HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../.." or tup.getconfig("HELPERDIR") +HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") tup.include(HELPERDIR .. "/use_fasm.lua") add_include(tup.getvariantdir()) diff --git a/programs/develop/examples/rtdata/trunk/build_en.bat b/programs/develop/examples/rtdata/build_en.bat similarity index 100% rename from programs/develop/examples/rtdata/trunk/build_en.bat rename to programs/develop/examples/rtdata/build_en.bat diff --git a/programs/develop/examples/rtdata/trunk/build_ru.bat b/programs/develop/examples/rtdata/build_ru.bat similarity index 100% rename from programs/develop/examples/rtdata/trunk/build_ru.bat rename to programs/develop/examples/rtdata/build_ru.bat diff --git a/programs/develop/examples/rtdata/trunk/rtdata.asm b/programs/develop/examples/rtdata/rtdata.asm similarity index 94% rename from programs/develop/examples/rtdata/trunk/rtdata.asm rename to programs/develop/examples/rtdata/rtdata.asm index 87b6ae841..cad483797 100644 --- a/programs/develop/examples/rtdata/trunk/rtdata.asm +++ b/programs/develop/examples/rtdata/rtdata.asm @@ -1,232 +1,238 @@ -; -; COMMUNICATING WITH MODEM: PORTS & IRQ -; -; Compile with FASM -; - -include "lang.inc" -include "..\..\..\..\macros.inc" - - use32 - org 0x0 - - db 'MENUET01' ; 8 byte id - dd 0x01 ; header version - dd START ; start of code - dd I_END ; size of image - dd 0x1000 ; memory for app - dd 0x1000 ; esp - dd 0x0 , 0x0 ; I_Param , I_Icon - - -START: ; start of execution - - - mov eax,45 ; reserve irq 4 - mov ebx,0 - mov ecx,4 - mcall - - mov eax,46 ; reserve ports 0x3f8-0x3ff - mov ebx,0 - mov ecx,0x3f8 - mov edx,0x3ff - mcall - - mov eax,44 ; read these ports at interrupt/irq 4 - mov ebx,irqtable - mov ecx,4 - mcall - - mov eax,40 ; enable event for interrupt/irq 4 - mov ebx,10000b shl 16 + 111b - mcall - - call program_com1 - - mov eax, 48 - mov ebx, 3 - mov ecx, sc - mov edx, sizeof.system_colors - mcall - - red: - call draw_window - -still: - - mov eax,10 ; wait here for event - mcall - - cmp eax,1 ; redraw request ? - je red - cmp eax,2 ; key in buffer ? - je key - cmp eax,3 ; button in buffer ? - je button - cmp eax,16+4 ; data read by interrupt ? - je irq4 - - jmp still - - key: ; key - mov eax,2 ; just read it and ignore - mcall - - mov al,ah - mov dx,0x3f8 - out dx,al - - jmp still - - button: ; button - or eax,-1 ; close this program - mcall - - - irq4: - - mov eax,42 - mov ebx,4 - mcall - - ; eax = number of bytes left - ; ecx = 0 success, =1 fail - ; bl = byte - - inc [pos] - and [pos],31 - mov eax,[pos] - - mov [string+eax], bl - call draw_string - - jmp still - - -baudrate_9600 equ 12 -baudrate_57600 equ 2 - -program_com1: - - mov dx,0x3f8+3 - mov al,0x80 - out dx,al - - mov dx,0x3f8+1 - mov al,0x00 - out dx,al - - mov dx,0x3f8+0 - mov al,baudrate_9600 - out dx,al - - mov dx,0x3f8+3 - mov al,0x3 - out dx,al - - mov dx,0x3f8+4 - mov al,0xb - out dx,al - - mov dx,0x3f8+1 - mov al,0x1 - out dx,al - - ret - - - -; ********************************************* -; ******* WINDOW DEFINITIONS AND DRAW ******** -; ********************************************* - - -draw_window: - - mov eax, 12 ; function 12:tell os about windowdraw - mov ebx, 1 ; 1, start of draw - mcall - - ; DRAW WINDOW - mov eax, 0 ; function 0 : define and draw window - mov ebx, 100*65536+250 ; [x start] *65536 + [x size] - mov ecx, 100*65536+85 ; [y start] *65536 + [y size] - mov edx, [sc.work] - or edx, 0x03000000 ; color of work area RRGGBB,8->color gl - mcall - - ; WINDOW LABEL - mov eax, 4 ; function 4 : write text to window - mov ebx, 8*65536+8 ; [x start] *65536 + [y start] - mov ecx, [sc.grab_text] - or ecx, 0x10000000 ; font 1 & color ( 0xF0RRGGBB ) - mov edx, title ; pointer to text beginning - mov esi, title.len ; text length - mcall - - mov eax, 4 ; draw text - mov ebx, 20*65536+33 - mov ecx, [sc.work_text] - mov edx, text+4 - .nextstr: - mov esi, [edx-4] - test esi, 0xFF000000 - jnz .finstr - mcall - add edx, esi - add edx, 4 - add ebx, 10 - jmp .nextstr - .finstr: - - call draw_string - - mov eax,12 ; function 12:tell os about windowdraw - mov ebx,2 ; 2, end of draw - mcall - - ret - - -draw_string: - mov eax, 4 - mov ebx, 20*65536+65 - mov ecx, [sc.work_text] - mov edx, string - mov esi, 32 - mcall -ret - - -; DATA AREA - - -if lang eq ru_RU - text mstr "ВВОДИМЫЕ СИМВОЛЫ ПЕРЕДАЮТСЯ МОДЕМУ.",\ - "ДАННЫЕ ОТ МОДЕМА СЧИТЫВАЮТСЯ ПО",\ - "ПРЕРЫВАНИЮ IRQ4 И ОТОБРАЖАЮТСЯ НИЖЕ." - title: - db 'МОДЕМ НА COM1' - .len = $ - title -else - text mstr "TYPED CHARACTERS ARE SENT TO MODEM.",\ - "DATA FROM MODEM IS READ BY IRQ4",\ - "INTERRUPT AND DISPLAYED BELOW." - title: - db 'MODEM AT COM1' - .len = $ - title -end if - -pos dd 0x0 - -irqtable: - ; port ; 1=byte, 2=word - dd 0x3f8 +0x01000000 ; read byte from port 0x3f8 at interrupt/irq 4 - dd 0x0 ; no more ports ( max 15 ) to read - - -I_END: - -string rb 32 -sc system_colors +; SPDX-License-Identifier: NOASSERTION +; + +; Text encoded with Code Page 866 - Cyrillic + + +; +; COMMUNICATING WITH MODEM: PORTS & IRQ +; +; Compile with FASM +; + +include "lang.inc" +include "..\..\..\macros.inc" + + use32 + org 0x0 + + db 'MENUET01' ; 8 byte id + dd 0x01 ; header version + dd START ; start of code + dd I_END ; size of image + dd 0x1000 ; memory for app + dd 0x1000 ; esp + dd 0x0 , 0x0 ; I_Param , I_Icon + + +START: ; start of execution + + + mov eax,45 ; reserve irq 4 + mov ebx,0 + mov ecx,4 + mcall + + mov eax,46 ; reserve ports 0x3f8-0x3ff + mov ebx,0 + mov ecx,0x3f8 + mov edx,0x3ff + mcall + + mov eax,44 ; read these ports at interrupt/irq 4 + mov ebx,irqtable + mov ecx,4 + mcall + + mov eax,40 ; enable event for interrupt/irq 4 + mov ebx,10000b shl 16 + 111b + mcall + + call program_com1 + + mov eax, 48 + mov ebx, 3 + mov ecx, sc + mov edx, sizeof.system_colors + mcall + + red: + call draw_window + +still: + + mov eax,10 ; wait here for event + mcall + + cmp eax,1 ; redraw request ? + je red + cmp eax,2 ; key in buffer ? + je key + cmp eax,3 ; button in buffer ? + je button + cmp eax,16+4 ; data read by interrupt ? + je irq4 + + jmp still + + key: ; key + mov eax,2 ; just read it and ignore + mcall + + mov al,ah + mov dx,0x3f8 + out dx,al + + jmp still + + button: ; button + or eax,-1 ; close this program + mcall + + + irq4: + + mov eax,42 + mov ebx,4 + mcall + + ; eax = number of bytes left + ; ecx = 0 success, =1 fail + ; bl = byte + + inc [pos] + and [pos],31 + mov eax,[pos] + + mov [string+eax], bl + call draw_string + + jmp still + + +baudrate_9600 equ 12 +baudrate_57600 equ 2 + +program_com1: + + mov dx,0x3f8+3 + mov al,0x80 + out dx,al + + mov dx,0x3f8+1 + mov al,0x00 + out dx,al + + mov dx,0x3f8+0 + mov al,baudrate_9600 + out dx,al + + mov dx,0x3f8+3 + mov al,0x3 + out dx,al + + mov dx,0x3f8+4 + mov al,0xb + out dx,al + + mov dx,0x3f8+1 + mov al,0x1 + out dx,al + + ret + + + +; ********************************************* +; ******* WINDOW DEFINITIONS AND DRAW ******** +; ********************************************* + + +draw_window: + + mov eax, 12 ; function 12:tell os about windowdraw + mov ebx, 1 ; 1, start of draw + mcall + + ; DRAW WINDOW + mov eax, 0 ; function 0 : define and draw window + mov ebx, 100*65536+250 ; [x start] *65536 + [x size] + mov ecx, 100*65536+85 ; [y start] *65536 + [y size] + mov edx, [sc.work] + or edx, 0x03000000 ; color of work area RRGGBB,8->color gl + mcall + + ; WINDOW LABEL + mov eax, 4 ; function 4 : write text to window + mov ebx, 8*65536+8 ; [x start] *65536 + [y start] + mov ecx, [sc.grab_text] + or ecx, 0x10000000 ; font 1 & color ( 0xF0RRGGBB ) + mov edx, title ; pointer to text beginning + mov esi, title.len ; text length + mcall + + mov eax, 4 ; draw text + mov ebx, 20*65536+33 + mov ecx, [sc.work_text] + mov edx, text+4 + .nextstr: + mov esi, [edx-4] + test esi, 0xFF000000 + jnz .finstr + mcall + add edx, esi + add edx, 4 + add ebx, 10 + jmp .nextstr + .finstr: + + call draw_string + + mov eax,12 ; function 12:tell os about windowdraw + mov ebx,2 ; 2, end of draw + mcall + + ret + + +draw_string: + mov eax, 4 + mov ebx, 20*65536+65 + mov ecx, [sc.work_text] + mov edx, string + mov esi, 32 + mcall +ret + + +; DATA AREA + + +if lang eq ru_RU + text mstr "ВВОДИМЫЕ СИМВОЛЫ ПЕРЕДАЮТСЯ МОДЕМУ.",\ + "ДАННЫЕ ОТ МОДЕМА СЧИТЫВАЮТСЯ ПО",\ + "ПРЕРЫВАНИЮ IRQ4 И ОТОБРАЖАЮТСЯ НИЖЕ." + title: + db 'МОДЕМ НА COM1' + .len = $ - title +else + text mstr "TYPED CHARACTERS ARE SENT TO MODEM.",\ + "DATA FROM MODEM IS READ BY IRQ4",\ + "INTERRUPT AND DISPLAYED BELOW." + title: + db 'MODEM AT COM1' + .len = $ - title +end if + +pos dd 0x0 + +irqtable: + ; port ; 1=byte, 2=word + dd 0x3f8 +0x01000000 ; read byte from port 0x3f8 at interrupt/irq 4 + dd 0x0 ; no more ports ( max 15 ) to read + + +I_END: + +string rb 32 +sc system_colors diff --git a/programs/develop/examples/template/trunk/Tupfile.lua b/programs/develop/examples/template/Tupfile.lua similarity index 79% rename from programs/develop/examples/template/trunk/Tupfile.lua rename to programs/develop/examples/template/Tupfile.lua index c83996acb..75512185e 100644 --- a/programs/develop/examples/template/trunk/Tupfile.lua +++ b/programs/develop/examples/template/Tupfile.lua @@ -1,5 +1,5 @@ if tup.getconfig("NO_FASM") ~= "" then return end -HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../.." or tup.getconfig("HELPERDIR") +HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") tup.include(HELPERDIR .. "/use_fasm.lua") add_include(tup.getvariantdir()) diff --git a/programs/develop/examples/template/trunk/build_en.bat b/programs/develop/examples/template/build_en.bat similarity index 100% rename from programs/develop/examples/template/trunk/build_en.bat rename to programs/develop/examples/template/build_en.bat diff --git a/programs/develop/examples/template/trunk/build_fr.bat b/programs/develop/examples/template/build_fr.bat similarity index 100% rename from programs/develop/examples/template/trunk/build_fr.bat rename to programs/develop/examples/template/build_fr.bat diff --git a/programs/develop/examples/template/trunk/build_ru.bat b/programs/develop/examples/template/build_ru.bat similarity index 100% rename from programs/develop/examples/template/trunk/build_ru.bat rename to programs/develop/examples/template/build_ru.bat diff --git a/programs/develop/examples/template/trunk/template.asm b/programs/develop/examples/template/template.asm similarity index 95% rename from programs/develop/examples/template/trunk/template.asm rename to programs/develop/examples/template/template.asm index 5380ae9d1..6aa0c5e13 100644 --- a/programs/develop/examples/template/trunk/template.asm +++ b/programs/develop/examples/template/template.asm @@ -1,3 +1,9 @@ +; SPDX-License-Identifier: NOASSERTION +; + +; Text encoded with Code Page 866 - Cyrillic + + ; <--- description ---> ; compiler: FASM 1.67 ; name: Basic window example for KolibriOS @@ -9,7 +15,7 @@ ; <--- include all KolibriOS stuff ---> include "lang.inc" ; Language support for locales: ru_RU (CP866), fr_FR, en_US. -include "..\..\..\..\macros.inc" +include "..\..\..\macros.inc" ; <--- start of KolibriOS application ---> diff --git a/programs/develop/examples/thread/trunk/Tupfile.lua b/programs/develop/examples/thread/Tupfile.lua similarity index 79% rename from programs/develop/examples/thread/trunk/Tupfile.lua rename to programs/develop/examples/thread/Tupfile.lua index 3643035d4..4755ab043 100644 --- a/programs/develop/examples/thread/trunk/Tupfile.lua +++ b/programs/develop/examples/thread/Tupfile.lua @@ -1,5 +1,5 @@ if tup.getconfig("NO_FASM") ~= "" then return end -HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../.." or tup.getconfig("HELPERDIR") +HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") tup.include(HELPERDIR .. "/use_fasm.lua") add_include(tup.getvariantdir()) diff --git a/programs/develop/examples/thread/trunk/build_en.bat b/programs/develop/examples/thread/build_en.bat similarity index 100% rename from programs/develop/examples/thread/trunk/build_en.bat rename to programs/develop/examples/thread/build_en.bat diff --git a/programs/develop/examples/thread/trunk/build_ru.bat b/programs/develop/examples/thread/build_ru.bat similarity index 100% rename from programs/develop/examples/thread/trunk/build_ru.bat rename to programs/develop/examples/thread/build_ru.bat diff --git a/programs/develop/examples/thread/trunk/thread.asm b/programs/develop/examples/thread/thread.asm similarity index 96% rename from programs/develop/examples/thread/trunk/thread.asm rename to programs/develop/examples/thread/thread.asm index f5b7686a7..81852f439 100644 --- a/programs/develop/examples/thread/trunk/thread.asm +++ b/programs/develop/examples/thread/thread.asm @@ -1,3 +1,8 @@ +; SPDX-License-Identifier: NOASSERTION +; + +; Text encoded with Code Page 866 - Cyrillic + ; ; THREAD EXAMPLE ; @@ -16,7 +21,7 @@ dd 0x0 , 0x0 ; I_Param , I_Icon include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US. -include '..\..\..\..\macros.inc' +include '..\..\..\macros.inc' START: ; start of execution diff --git a/programs/develop/ktcc/trunk/libc.obj/samples/thread_work.c b/programs/develop/ktcc/trunk/libc.obj/samples/thread_work.c index 48ce87d32..a29477a5c 100644 --- a/programs/develop/ktcc/trunk/libc.obj/samples/thread_work.c +++ b/programs/develop/ktcc/trunk/libc.obj/samples/thread_work.c @@ -1,6 +1,6 @@ /* * An example of using threads to create a copy of a window. - * Built on top of the /programs/develop/examples/thread/trunk/thread.asm example. + * Built on top of the /programs/develop/examples/thread/thread.asm example. * * Created by turbocat (Maxim Logaev) 2021. */ diff --git a/programs/other/outdated/mv/trunk/mv.asm b/programs/other/outdated/mv/trunk/mv.asm index c974c5bc9..93b38ee33 100644 --- a/programs/other/outdated/mv/trunk/mv.asm +++ b/programs/other/outdated/mv/trunk/mv.asm @@ -1,3 +1,9 @@ +; SPDX-License-Identifier: NOASSERTION +; + +; Text encoded with Code Page 866 - Cyrillic + + ; Picture browser by lisovin@26.ru ; Modified by Ivan Poddubny - v.0.3 ; Modified by Diamond - v.0.4 @@ -37,7 +43,7 @@ include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US, de_DE. include '..\..\..\..\macros.inc' -include '..\..\..\..\develop\examples\editbox\trunk\editbox.inc' +include '..\..\..\..\develop\examples\editbox\editbox.inc' ;include 'macros.inc' ;include 'EDITBOX.INC' use_edit_box