Compare commits
32 Commits
webview-3.
...
22488330e7
Author | SHA1 | Date | |
---|---|---|---|
22488330e7 | |||
c8cc441230 | |||
515d1e92ad | |||
8afb107ed1 | |||
e90464a2ae | |||
6045e90d24 | |||
58f45efc24 | |||
46bcaca0b0 | |||
1d529167e7 | |||
1de0212bfb | |||
b565f7b807 | |||
f861b2020f | |||
e34ff0ce52 | |||
bacbce5313 | |||
40105bfb3b | |||
a58359ba87 | |||
78a82bac5d | |||
396ea0f059 | |||
5677c7ed46 | |||
51799b474a | |||
d30ed899ba | |||
befabee761 | |||
92b71dacb2 | |||
5db678854f | |||
7273186d3d | |||
5a96f6efbb | |||
d49a6b22ff | |||
7e63294b5e | |||
c148987224 | |||
4550e15838 | |||
cc867a0bb8 | |||
16a0ef9543 |
@@ -39,7 +39,7 @@ jobs:
|
||||
id: toolchain-hash
|
||||
run: |
|
||||
a=$(find ${{ gitea.workspace }}/programs/develop/cmm/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
b=$(sha1sum ${{ gitea.workspace }}/programs/develop/ktcc/trunk/bin/kos32-tcc)
|
||||
b=$(sha1sum ${{ gitea.workspace }}/programs/develop/ktcc/bin/kos32-tcc)
|
||||
c=$(find ${{ gitea.workspace }}/programs/develop/objconv/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
d=$(find ${{ gitea.workspace }}/programs/other/kpack/kerpack_linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
e=$(find ${{ gitea.workspace }}/programs/other/kpack/linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
- name: Install TCC
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cp ${{ gitea.workspace }}/programs/develop/ktcc/trunk/bin/kos32-tcc /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
cp ${{ gitea.workspace }}/programs/develop/ktcc/bin/kos32-tcc /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
chmod +x /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
|
||||
- name: Build and install objconv
|
||||
@@ -131,7 +131,7 @@ jobs:
|
||||
echo "CONFIG_LANG=ru_RU" >> ru_RU.config
|
||||
echo "CONFIG_BUILD_TYPE=ru_RU" >> ru_RU.config
|
||||
tup variant ru_RU.config
|
||||
|
||||
|
||||
# Configure es_ES
|
||||
echo "CONFIG_LANG=es_ES" >> es_ES.config
|
||||
echo "CONFIG_BUILD_TYPE=es_ES" >> es_ES.config
|
||||
|
@@ -1,3 +1,7 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
|
||||
format coff
|
||||
use32 ; Tell compiler to use 32 bit instructions
|
||||
|
||||
@@ -7,7 +11,7 @@ include '../../../programs/proc32.inc'
|
||||
include '../../../programs/macros.inc'
|
||||
purge section,mov,add,sub
|
||||
|
||||
include '../../../programs/develop/libraries/box_lib/trunk/box_lib.mac'
|
||||
include '../../../programs/develop/libraries/box_lib/box_lib.mac'
|
||||
include '../../../programs/system/run/trunk/txtbut.inc'
|
||||
include '../../../programs/dll.inc'
|
||||
|
||||
@@ -159,8 +163,8 @@ public path_show_draw as '_path_show_draw'
|
||||
|
||||
public fb_draw_panel as '_filebrowse_draw'
|
||||
public fb_mouse as '_filebrowse_mouse'
|
||||
public fb_key as '_filebrowse_key'
|
||||
|
||||
public fb_key as '_filebrowse_key'
|
||||
|
||||
public ted_but_sumb_upper as '_ted_but_sumb_upper'
|
||||
public ted_but_sumb_lover as '_ted_but_sumb_lover'
|
||||
public ted_but_convert_by_table as '_ted_but_convert_by_table'
|
||||
|
@@ -1,152 +1,152 @@
|
||||
// BOXLIB example (scrollbar, progressbar)
|
||||
// ! without kolibri_gui !
|
||||
// Writed by maxcodehack
|
||||
// TCC version is in /programs/develop/ktcc/trunk/samples
|
||||
#include <kos32sys.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/// BOXLIB
|
||||
// Modified from C_Layer
|
||||
// C_Layer variant I don't like
|
||||
extern int kolibri_boxlib_init(void);
|
||||
typedef struct __attribute__ ((__packed__)) {
|
||||
uint16_t xsize;
|
||||
uint16_t xpos;
|
||||
uint16_t ysize;
|
||||
uint16_t ypos;
|
||||
uint32_t btn_height;
|
||||
uint32_t type;
|
||||
uint32_t max_area;
|
||||
uint32_t cur_area;
|
||||
uint32_t position;
|
||||
uint32_t back_color;
|
||||
uint32_t front_color;
|
||||
uint32_t line_color;
|
||||
uint32_t redraw;
|
||||
uint16_t delta;
|
||||
uint16_t delta2;
|
||||
uint16_t r_size_x;
|
||||
uint16_t r_start_x;
|
||||
uint16_t r_size_y;
|
||||
uint16_t r_start_y;
|
||||
uint32_t m_pos;
|
||||
uint32_t m_pos2;
|
||||
uint32_t m_keys;
|
||||
uint32_t run_size;
|
||||
uint32_t position2;
|
||||
uint32_t work_size;
|
||||
uint32_t all_redraw;
|
||||
uint32_t ar_offset;
|
||||
} scrollbar;
|
||||
|
||||
extern void (*scrollbar_h_draw)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_h_mouse)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_v_draw)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_v_mouse)(scrollbar*) __attribute__((__stdcall__));
|
||||
|
||||
typedef struct {
|
||||
unsigned int value;
|
||||
unsigned int left;
|
||||
unsigned int top;
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
unsigned int style;
|
||||
unsigned int min;
|
||||
unsigned int max;
|
||||
unsigned int back_color;
|
||||
unsigned int progress_color;
|
||||
unsigned int frame_color;
|
||||
} progressbar;
|
||||
|
||||
extern void (*progressbar_draw)(progressbar *) __attribute__((__stdcall__));
|
||||
extern void (*progressbar_progress)(progressbar *) __attribute__((__stdcall__));
|
||||
/// BOXLIB
|
||||
|
||||
|
||||
#define evReDraw 1
|
||||
#define evKey 2
|
||||
#define evButton 3
|
||||
#define evExit 4
|
||||
#define evDesktop 5
|
||||
#define evMouse 6
|
||||
#define evIPC 7
|
||||
#define evNetwork 8
|
||||
#define evDebug 9
|
||||
|
||||
#define WIN_W 640
|
||||
#define WIN_H 563
|
||||
|
||||
uint32_t wheels;
|
||||
char* title = "Boxlib example";
|
||||
int win_bg_color = 0x858585;
|
||||
scrollbar scroll = {15, WIN_W - 26, WIN_H - 29, 0, 0, 2, 215, 15, 0,0x707070,0xD2CED0,0x555555,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
|
||||
progressbar pg = {0, 10, 10, 270, 35, 1, 0, 200, 0xB4B4B4, 0x2728FF, 0xA9A9A9};
|
||||
|
||||
void draw_window(){
|
||||
BeginDraw();
|
||||
DrawWindow(215,100,WIN_W,WIN_H,title,win_bg_color,0x34);
|
||||
scrollbar_v_draw(&scroll);
|
||||
progressbar_draw(&pg);
|
||||
EndDraw();
|
||||
}
|
||||
|
||||
//// EVENTMASK
|
||||
#define EVM_REDRAW 1
|
||||
#define EVM_KEY 2
|
||||
#define EVM_BUTTON 4
|
||||
#define EVM_EXIT 8
|
||||
#define EVM_BACKGROUND 16
|
||||
#define EVM_MOUSE 32
|
||||
#define EVM_IPC 64
|
||||
#define EVM_STACK 128
|
||||
#define EVM_DEBUG 256
|
||||
#define EVM_STACK2 512
|
||||
#define EVM_MOUSE_FILTER 0x80000000
|
||||
#define EVM_CURSOR_FILTER 0x40000000
|
||||
//// EVENTMASK
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
kolibri_boxlib_init();
|
||||
|
||||
set_wanted_events_mask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
||||
while(1)
|
||||
{
|
||||
switch(GetOsEvent())
|
||||
{
|
||||
case evButton:
|
||||
if (get_os_button() == 1) exit(0);
|
||||
break;
|
||||
|
||||
case evKey:
|
||||
get_key();
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
draw_window();
|
||||
break;
|
||||
case evMouse:
|
||||
scrollbar_v_mouse(&scroll);
|
||||
|
||||
// Wheel scrolling
|
||||
// Quite unstable
|
||||
/*
|
||||
int scroll_strong = 40;
|
||||
wheels = GetMouseWheels();
|
||||
if(wheels & 0xFFFF)
|
||||
{
|
||||
if((short)wheels > 0 && scroll.position < scroll.max_area - scroll_strong)
|
||||
scroll.position += scroll_strong;
|
||||
else if((short)wheels < 0 && scroll.position > 0)
|
||||
scroll.position -= scroll_strong;
|
||||
|
||||
scrollbar_v_draw(&scroll);
|
||||
}
|
||||
*/
|
||||
pg.value = scroll.position;
|
||||
progressbar_draw(&pg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// BOXLIB example (scrollbar, progressbar)
|
||||
// ! without kolibri_gui !
|
||||
// Writed by maxcodehack
|
||||
// TCC version is in /programs/develop/ktcc/samples
|
||||
#include <kos32sys.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/// BOXLIB
|
||||
// Modified from C_Layer
|
||||
// C_Layer variant I don't like
|
||||
extern int kolibri_boxlib_init(void);
|
||||
typedef struct __attribute__ ((__packed__)) {
|
||||
uint16_t xsize;
|
||||
uint16_t xpos;
|
||||
uint16_t ysize;
|
||||
uint16_t ypos;
|
||||
uint32_t btn_height;
|
||||
uint32_t type;
|
||||
uint32_t max_area;
|
||||
uint32_t cur_area;
|
||||
uint32_t position;
|
||||
uint32_t back_color;
|
||||
uint32_t front_color;
|
||||
uint32_t line_color;
|
||||
uint32_t redraw;
|
||||
uint16_t delta;
|
||||
uint16_t delta2;
|
||||
uint16_t r_size_x;
|
||||
uint16_t r_start_x;
|
||||
uint16_t r_size_y;
|
||||
uint16_t r_start_y;
|
||||
uint32_t m_pos;
|
||||
uint32_t m_pos2;
|
||||
uint32_t m_keys;
|
||||
uint32_t run_size;
|
||||
uint32_t position2;
|
||||
uint32_t work_size;
|
||||
uint32_t all_redraw;
|
||||
uint32_t ar_offset;
|
||||
} scrollbar;
|
||||
|
||||
extern void (*scrollbar_h_draw)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_h_mouse)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_v_draw)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_v_mouse)(scrollbar*) __attribute__((__stdcall__));
|
||||
|
||||
typedef struct {
|
||||
unsigned int value;
|
||||
unsigned int left;
|
||||
unsigned int top;
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
unsigned int style;
|
||||
unsigned int min;
|
||||
unsigned int max;
|
||||
unsigned int back_color;
|
||||
unsigned int progress_color;
|
||||
unsigned int frame_color;
|
||||
} progressbar;
|
||||
|
||||
extern void (*progressbar_draw)(progressbar *) __attribute__((__stdcall__));
|
||||
extern void (*progressbar_progress)(progressbar *) __attribute__((__stdcall__));
|
||||
/// BOXLIB
|
||||
|
||||
|
||||
#define evReDraw 1
|
||||
#define evKey 2
|
||||
#define evButton 3
|
||||
#define evExit 4
|
||||
#define evDesktop 5
|
||||
#define evMouse 6
|
||||
#define evIPC 7
|
||||
#define evNetwork 8
|
||||
#define evDebug 9
|
||||
|
||||
#define WIN_W 640
|
||||
#define WIN_H 563
|
||||
|
||||
uint32_t wheels;
|
||||
char* title = "Boxlib example";
|
||||
int win_bg_color = 0x858585;
|
||||
scrollbar scroll = {15, WIN_W - 26, WIN_H - 29, 0, 0, 2, 215, 15, 0,0x707070,0xD2CED0,0x555555,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
|
||||
progressbar pg = {0, 10, 10, 270, 35, 1, 0, 200, 0xB4B4B4, 0x2728FF, 0xA9A9A9};
|
||||
|
||||
void draw_window(){
|
||||
BeginDraw();
|
||||
DrawWindow(215,100,WIN_W,WIN_H,title,win_bg_color,0x34);
|
||||
scrollbar_v_draw(&scroll);
|
||||
progressbar_draw(&pg);
|
||||
EndDraw();
|
||||
}
|
||||
|
||||
//// EVENTMASK
|
||||
#define EVM_REDRAW 1
|
||||
#define EVM_KEY 2
|
||||
#define EVM_BUTTON 4
|
||||
#define EVM_EXIT 8
|
||||
#define EVM_BACKGROUND 16
|
||||
#define EVM_MOUSE 32
|
||||
#define EVM_IPC 64
|
||||
#define EVM_STACK 128
|
||||
#define EVM_DEBUG 256
|
||||
#define EVM_STACK2 512
|
||||
#define EVM_MOUSE_FILTER 0x80000000
|
||||
#define EVM_CURSOR_FILTER 0x40000000
|
||||
//// EVENTMASK
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
kolibri_boxlib_init();
|
||||
|
||||
set_wanted_events_mask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
||||
while(1)
|
||||
{
|
||||
switch(GetOsEvent())
|
||||
{
|
||||
case evButton:
|
||||
if (get_os_button() == 1) exit(0);
|
||||
break;
|
||||
|
||||
case evKey:
|
||||
get_key();
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
draw_window();
|
||||
break;
|
||||
case evMouse:
|
||||
scrollbar_v_mouse(&scroll);
|
||||
|
||||
// Wheel scrolling
|
||||
// Quite unstable
|
||||
/*
|
||||
int scroll_strong = 40;
|
||||
wheels = GetMouseWheels();
|
||||
if(wheels & 0xFFFF)
|
||||
{
|
||||
if((short)wheels > 0 && scroll.position < scroll.max_area - scroll_strong)
|
||||
scroll.position += scroll_strong;
|
||||
else if((short)wheels < 0 && scroll.position > 0)
|
||||
scroll.position -= scroll_strong;
|
||||
|
||||
scrollbar_v_draw(&scroll);
|
||||
}
|
||||
*/
|
||||
pg.value = scroll.position;
|
||||
progressbar_draw(&pg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -73,7 +73,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"},
|
||||
@@ -84,7 +84,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"},
|
||||
@@ -93,7 +93,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, {
|
||||
{"SETTINGS/MYKEY.INI", SRC_PROGS .. "/system/MyKey/trunk/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"},
|
||||
@@ -102,7 +102,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, {
|
||||
{"SETTINGS/MYKEY.INI", SRC_PROGS .. "/system/MyKey/trunk/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"},
|
||||
@@ -111,7 +111,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"},
|
||||
@@ -183,20 +183,20 @@ extra_files = {
|
||||
{"kolibrios/develop/oberon07/doc/", "../programs/develop/oberon07/doc/*"},
|
||||
{"kolibrios/develop/oberon07/lib/KolibriOS/", "../programs/develop/oberon07/lib/KolibriOS/*"},
|
||||
{"kolibrios/develop/oberon07/samples/", SRC_PROGS .. "/develop/oberon07/samples/*"},
|
||||
{"kolibrios/develop/tcc/lib/", SRC_PROGS .. "/develop/ktcc/trunk/bin/lib/*"},
|
||||
{"kolibrios/develop/tcc/include/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/include/*"},
|
||||
{"kolibrios/develop/tcc/include/clayer/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/include/clayer/*"},
|
||||
{"kolibrios/develop/tcc/include/cryptal/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/include/cryptal/*"},
|
||||
{"kolibrios/develop/tcc/include/sys/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/include/sys/*"},
|
||||
{"kolibrios/develop/tcc/lib/", SRC_PROGS .. "/develop/ktcc/bin/lib/*"},
|
||||
{"kolibrios/develop/tcc/include/", SRC_PROGS .. "/develop/ktcc/libc.obj/include/*"},
|
||||
{"kolibrios/develop/tcc/include/clayer/", SRC_PROGS .. "/develop/ktcc/libc.obj/include/clayer/*"},
|
||||
{"kolibrios/develop/tcc/include/cryptal/", SRC_PROGS .. "/develop/ktcc/libc.obj/include/cryptal/*"},
|
||||
{"kolibrios/develop/tcc/include/sys/", SRC_PROGS .. "/develop/ktcc/libc.obj/include/sys/*"},
|
||||
{"kolibrios/develop/tcc/include/SDL/", "../contrib/sdk/sources/SDL-1.2.2_newlib/include/*"},
|
||||
{"kolibrios/develop/tcc/samples/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/samples/*.c"},
|
||||
{"kolibrios/develop/tcc/samples/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/samples/*.sh"},
|
||||
{"kolibrios/develop/tcc/samples/clayer/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/samples/clayer/*"},
|
||||
{"kolibrios/develop/tcc/samples/", SRC_PROGS .. "/develop/ktcc/libc.obj/samples/*.c"},
|
||||
{"kolibrios/develop/tcc/samples/", SRC_PROGS .. "/develop/ktcc/libc.obj/samples/*.sh"},
|
||||
{"kolibrios/develop/tcc/samples/clayer/", SRC_PROGS .. "/develop/ktcc/libc.obj/samples/clayer/*"},
|
||||
{"kolibrios/develop/utils/SPEDump", SRC_PROGS .. "/develop/SPEDump/SPEDump.kex"},
|
||||
{"kolibrios/emul/", "common/emul/*"},
|
||||
{"kolibrios/emul/dosbox/", "common/emul/DosBox/*"},
|
||||
{"kolibrios/emul/e80/readme.txt", SRC_PROGS .. "/emulator/e80/trunk/readme.txt"},
|
||||
{"kolibrios/emul/e80/keyboard.png", SRC_PROGS .. "/emulator/e80/trunk/keyboard.png"},
|
||||
{"kolibrios/emul/e80/readme.txt", SRC_PROGS .. "/emulator/e80/readme.txt"},
|
||||
{"kolibrios/emul/e80/keyboard.png", SRC_PROGS .. "/emulator/e80/keyboard.png"},
|
||||
{"kolibrios/emul/fceu/fceu", SRC_PROGS .. "/emulator/fceu/fceu"},
|
||||
{"kolibrios/emul/fceu/FCEU ReadMe.txt", SRC_PROGS .. "/emulator/fceu/FCEU ReadMe.txt"},
|
||||
{"kolibrios/emul/chip8/chip8", VAR_PROGS .. "/emulator/chip8/chip8"},
|
||||
@@ -284,7 +284,7 @@ extra_files = {
|
||||
{"kolibrios/netsurf/res/", "common/network/netsurf/res/*"},
|
||||
{"kolibrios/res/skins/", "../skins/authors.txt"},
|
||||
{"kolibrios/res/templates/", "common/templates/*"},
|
||||
{"kolibrios/res/templates/", SRC_PROGS .. "/emulator/e80/trunk/games/*"},
|
||||
{"kolibrios/res/templates/", SRC_PROGS .. "/emulator/e80/games/*"},
|
||||
{"kolibrios/res/templates/NES/", "common/templates/NES/*"},
|
||||
{"kolibrios/res/wallpapers/", "common/wallpapers/*"},
|
||||
{"kolibrios/res/system/", build_type .. "/settings/kolibri.lbl"},
|
||||
@@ -339,7 +339,7 @@ if build_type == "ru_RU" then tup.append_table(extra_files, {
|
||||
{"kolibrios/games/WHOWTBAM/", build_type .. "/games/appdata.dat"},
|
||||
{"kolibrios/media/zsea/zsea_keys.txt", SRC_PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
|
||||
{"kolibrios/res/guide/", build_type .. "/docs/guide/*"},
|
||||
{"kolibrios/develop/tcc/doc/", SRC_PROGS .. "/develop/ktcc/trunk/bin/doc/ru/*"},
|
||||
{"kolibrios/develop/tcc/doc/", SRC_PROGS .. "/develop/ktcc/bin/doc/ru/*"},
|
||||
}) else tup.append_table(extra_files, {
|
||||
{"Docs/Config.txt", build_type .. "/docs/Config.txt"},
|
||||
{"Docs/Copying.txt", build_type .. "/docs/Copying.txt"},
|
||||
@@ -353,7 +353,7 @@ if build_type == "ru_RU" then tup.append_table(extra_files, {
|
||||
{"kolibrios/games/ataka", "common/games/ataka/ataka_en"},
|
||||
{"kolibrios/games/sstartrek/SStarTrek", "common/games/sstartrek/SStarTrek_en"},
|
||||
{"kolibrios/media/zsea/zsea_keys.txt", SRC_PROGS .. "/media/zsea/Docs/zSea_keys_eng.txt"},
|
||||
{"kolibrios/develop/tcc/doc/", SRC_PROGS .. "/develop/ktcc/trunk/bin/doc/en/*"},
|
||||
{"kolibrios/develop/tcc/doc/", SRC_PROGS .. "/develop/ktcc/bin/doc/en/*"},
|
||||
}) end
|
||||
--[[
|
||||
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
|
||||
@@ -409,7 +409,7 @@ tup.append_table(img_files, {
|
||||
{"HACONFIG", VAR_PROGS .. "/other/ha/HACONFIG"},
|
||||
{"ACLOCK", VAR_PROGS .. "/demos/aclock/aclock"},
|
||||
{"APM", VAR_PROGS .. "/system/apm/apm"},
|
||||
{"CALC", VAR_PROGS .. "/other/calc/trunk/calc"},
|
||||
{"CALC", VAR_PROGS .. "/other/calc/calc"},
|
||||
{"CALCPLUS", VAR_PROGS .. "/other/calcplus/calcplus"},
|
||||
{"CALENDAR", VAR_PROGS .. "/system/calendar/trunk/calendar"},
|
||||
{"COLRDIAL", VAR_PROGS .. "/system/colrdial/color_dialog"},
|
||||
@@ -428,21 +428,21 @@ tup.append_table(img_files, {
|
||||
{"KPACK", VAR_PROGS .. "/other/kpack/trunk/kpack"},
|
||||
{"LAUNCHER", VAR_PROGS .. "/system/launcher/trunk/launcher"},
|
||||
{"LOADDRV", VAR_PROGS .. "/system/loaddrv/loaddrv"},
|
||||
{"MAGNIFY", VAR_PROGS .. "/demos/magnify/trunk/magnify"},
|
||||
{"MAGNIFY", VAR_PROGS .. "/system/magnify/magnify"},
|
||||
{"MGB", VAR_PROGS .. "/testing/mgb/trunk/mgb"},
|
||||
{"MOUSEMUL", VAR_PROGS .. "/system/mousemul/trunk/mousemul"},
|
||||
{"MADMOUSE", VAR_PROGS .. "/other/madmouse/madmouse"},
|
||||
{"MYKEY", VAR_PROGS .. "/system/MyKey/trunk/MyKey"},
|
||||
{"PCIDEV", VAR_PROGS .. "/testing/pcidev/trunk/PCIDEV"},
|
||||
{"RDSAVE", VAR_PROGS .. "/system/rdsave/trunk/rdsave"},
|
||||
{"RTFREAD", VAR_PROGS .. "/other/rtfread/trunk/rtfread"},
|
||||
{"RTFREAD", VAR_PROGS .. "/other/rtfread/rtfread"},
|
||||
{"SEARCHAP", VAR_PROGS .. "/system/searchap/searchap"},
|
||||
{"SCRSHOOT", VAR_PROGS .. "/media/scrshoot/scrshoot"},
|
||||
{"SETUP", VAR_PROGS .. "/system/setup/trunk/setup"},
|
||||
{"SKINCFG", VAR_PROGS .. "/system/skincfg/trunk/skincfg"},
|
||||
{"TERMINAL", VAR_PROGS .. "/system/terminal/terminal"},
|
||||
{"TEST", VAR_PROGS .. "/testing/protection/trunk/test"},
|
||||
{"TINYPAD", VAR_PROGS .. "/develop/tinypad/trunk/tinypad"},
|
||||
{"TINYPAD", VAR_PROGS .. "/develop/tinypad/tinypad"},
|
||||
{"TINFO", VAR_PROGS .. "/system/tinfo/tinfo"},
|
||||
{"TIMER", VAR_PROGS .. "/other/Timer/Timer"},
|
||||
{"UNZ", VAR_PROGS .. "/fs/unz/unz"},
|
||||
@@ -471,21 +471,21 @@ tup.append_table(img_files, {
|
||||
{"DEVELOP/DBGBOARD", VAR_PROGS .. "/system/dbgboard/dbgboard"},
|
||||
{"DEVELOP/CEDIT", SRC_PROGS .. "/develop/cedit/CEDIT"},
|
||||
{"DEVELOP/CHARSETS", VAR_PROGS .. "/develop/charsets/charsets"},
|
||||
{"DEVELOP/COBJ", VAR_PROGS .. "/develop/cObj/trunk/cObj"},
|
||||
{"DEVELOP/COBJ", VAR_PROGS .. "/develop/cObj/cObj"},
|
||||
{"DEVELOP/ENTROPYV", VAR_PROGS .. "/develop/entropyview/entropyview"},
|
||||
{"DEVELOP/FASM", VAR_PROGS .. "/develop/fasm/1.73/fasm"},
|
||||
{"DEVELOP/GENFILES", VAR_PROGS .. "/testing/genfiles/GenFiles"},
|
||||
{"DEVELOP/PIPET", VAR_PROGS .. "/other/pipet/pipet"},
|
||||
{"DEVELOP/H2D2B", VAR_PROGS .. "/develop/h2d2b/trunk/h2d2b"},
|
||||
{"DEVELOP/HEED", VAR_PROGS .. "/develop/heed/trunk/heed"},
|
||||
{"DEVELOP/H2D2B", VAR_PROGS .. "/develop/h2d2b/h2d2b"},
|
||||
{"DEVELOP/HEED", VAR_PROGS .. "/develop/heed/heed"},
|
||||
{"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/SCANCODE", VAR_PROGS .. "/develop/scancode/scancode"},
|
||||
{"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/circle"},
|
||||
{"DEVELOP/EXAMPLES/COLORREF", VAR_PROGS .. "/demos/colorref/trunk/colorref"},
|
||||
{"DEVELOP/EXAMPLES/CONGET", VAR_PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
|
||||
{"DEVELOP/EXAMPLES/CSLIDE", VAR_PROGS .. "/demos/cslide/trunk/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"},
|
||||
@@ -506,7 +506,7 @@ tup.append_table(img_files, {
|
||||
{"GAMES/TETRIS", VAR_PROGS .. "/games/tetris/tetris"},
|
||||
{"GAMES/C4", VAR_PROGS .. "/games/c4/c4"},
|
||||
{"LIB/ARCHIVER.OBJ", VAR_PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
|
||||
{"LIB/BOX_LIB.OBJ", VAR_PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
|
||||
{"LIB/BOX_LIB.OBJ", VAR_PROGS .. "/develop/libraries/box_lib/box_lib.obj"},
|
||||
{"LIB/BUF2D.OBJ", VAR_PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
|
||||
{"LIB/CONSOLE.OBJ", VAR_PROGS .. "/develop/libraries/console_coff/console.obj"},
|
||||
{"LIB/CNV_PNG.OBJ", VAR_PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
|
||||
@@ -523,10 +523,10 @@ tup.append_table(img_files, {
|
||||
{"LIB/RASTERWORKS.OBJ", VAR_PROGS .. "/develop/libraries/fontRasterWorks_unicode/RasterWorks.obj"},
|
||||
{"LIB/SORT.OBJ", VAR_PROGS .. "/develop/libraries/sorter/sort.obj"},
|
||||
{"LIB/TINYGL.OBJ", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
|
||||
{"MEDIA/ANIMAGE", VAR_PROGS .. "/media/animage/trunk/animage"},
|
||||
{"MEDIA/ANIMAGE", VAR_PROGS .. "/media/animage/animage"},
|
||||
{"MEDIA/FILLSCR", VAR_PROGS .. "/media/FillScr/fillscr"},
|
||||
{"MEDIA/KIV", VAR_PROGS .. "/media/kiv/trunk/kiv"},
|
||||
{"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/trunk/listplay"},
|
||||
{"MEDIA/KIV", VAR_PROGS .. "/media/kiv/kiv"},
|
||||
{"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/listplay"},
|
||||
{"MEDIA/MIDAMP", VAR_PROGS .. "/media/midamp/trunk/midamp"},
|
||||
{"MEDIA/MP3INFO", VAR_PROGS .. "/media/mp3info/mp3info"},
|
||||
{"MEDIA/PALITRA", VAR_PROGS .. "/media/palitra/trunk/palitra"},
|
||||
@@ -641,7 +641,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, {
|
||||
}) end
|
||||
|
||||
if build_type == "ru_RU" then tup.append_table(extra_files, {
|
||||
{"kolibrios/utils/period", VAR_PROGS .. "/other/period/trunk/period"},
|
||||
{"kolibrios/utils/period", VAR_PROGS .. "/other/period/period"},
|
||||
{"kolibrios/games/Dungeons/Dungeons", VAR_PROGS .. "/games/Dungeons/Dungeons"},
|
||||
}) end
|
||||
|
||||
@@ -745,14 +745,14 @@ if tup.getconfig('NO_GCC') ~= 'full' then
|
||||
tup.append_table(img_files, {
|
||||
{"GAMES/REVERSI", VAR_PROGS .. "/games/reversi/reversi"},
|
||||
{"LIB/BASE64.OBJ", VAR_PROGS .. "/develop/libraries/base64/base64.obj"},
|
||||
{"LIB/LIBC.OBJ", VAR_PROGS .. "/develop/ktcc/trunk/libc.obj/source/libc.obj"},
|
||||
{"LIB/LIBC.OBJ", VAR_PROGS .. "/develop/ktcc/libc.obj/source/libc.obj"},
|
||||
{"LIB/ICONV.OBJ", VAR_PROGS .. "/develop/libraries/iconv/iconv.obj"},
|
||||
-- {"LIB/MTAR.OBJ", VAR_PROGS .. "/develop/libraries/microtar/mtar.obj"},
|
||||
})
|
||||
tup.append_table(extra_files, {
|
||||
-- {"kolibrios/3D/cubeline", VAR_PROGS .. "/demos/cubeline/trunk/cubeline"},
|
||||
{"kolibrios/3D/gears", VAR_PROGS .. "/demos/gears/gears"},
|
||||
{"kolibrios/emul/e80/e80", VAR_PROGS .. "/emulator/e80/trunk/e80"},
|
||||
{"kolibrios/emul/e80/e80", VAR_PROGS .. "/emulator/e80/e80"},
|
||||
{"kolibrios/emul/uarm/", VAR_CONTRIB .. "/other/uarm/uARM"},
|
||||
{"kolibrios/games/2048", VAR_PROGS .. "/games/2048/2048"},
|
||||
{"kolibrios/games/checkers", VAR_PROGS .. "/games/checkers/checkers"},
|
||||
@@ -772,7 +772,7 @@ tup.append_table(extra_files, {
|
||||
{"kolibrios/utils/minizip/minizip", VAR_PROGS .. "/fs/minizip/minizip"},
|
||||
{"kolibrios/utils/minizip/miniunz", VAR_PROGS .. "/fs/minizip/miniunz"},
|
||||
{"kolibrios/develop/c--/c--", VAR_PROGS .. "/develop/cmm/cmm"},
|
||||
{"kolibrios/develop/tcc/tcc", VAR_PROGS .. "/develop/ktcc/trunk/source/tcc"},
|
||||
{"kolibrios/develop/tcc/tcc", VAR_PROGS .. "/develop/ktcc/source/tcc"},
|
||||
{"kolibrios/develop/sqlite3/sqlite3", VAR_CONTRIB .. "/sdk/sources/sqlite3/shell/sqlite3"},
|
||||
{"kolibrios/develop/utils/objconv", VAR_PROGS .. "/develop/objconv/objconv"},
|
||||
{"kolibrios/drivers/sensors/k10temp.sys", VAR_DRVS .. "/sensors/k10temp/k10temp.sys"},
|
||||
|
@@ -1,7 +1,7 @@
|
||||
|
||||
KTCC=kos32-tcc
|
||||
KPACK = kpack
|
||||
KLIBC = ../../../programs/develop/ktcc/trunk/libc.obj
|
||||
KLIBC = ../../../programs/develop/ktcc/libc.obj
|
||||
CFLAGS = -I $(KLIBC)/include
|
||||
LDFLAGS = -nostdlib -L$(KLIBC)/lib $(KLIBC)/lib/crt0.o
|
||||
|
||||
|
@@ -13,12 +13,12 @@ rem
|
||||
set __value=
|
||||
set __res=
|
||||
shift
|
||||
|
||||
|
||||
:__allowed
|
||||
set __values=%1 %__values%
|
||||
shift
|
||||
if not "%1"=="" goto __allowed
|
||||
|
||||
|
||||
set /P __res=">
|
||||
:Check_Value
|
||||
for %%a in (%__values%) do if %%a==%__res% set __value=%__res%
|
||||
@@ -59,7 +59,7 @@ echo *
|
||||
fasm system\calendar\trunk\calendar.asm %BIN%\calendar
|
||||
fasm system\board\trunk\board.asm %BIN%\develop\board
|
||||
fasm system\commouse\trunk\commouse.asm %BIN%\commouse
|
||||
fasm system\cpu\trunk\cpu.asm %BIN%\cpu
|
||||
fasm system\cpu\trunk\cpu.asm %BIN%\cpu
|
||||
fasm system\cpuid\trunk\cpuid.asm %BIN%\cpuid
|
||||
fasm system\skincfg\trunk\skincfg.asm %BIN%\skincfg
|
||||
fasm system\docpack\trunk\docpack.asm %BIN%\docpack
|
||||
@@ -88,20 +88,20 @@ echo Building develop
|
||||
echo *
|
||||
fasm develop\cmd\trunk\cmd.asm %BIN%\cmd
|
||||
fasm develop\fasm\trunk\fasm.asm %BIN%\develop\fasm
|
||||
fasm develop\h2d2b\trunk\h2d2b.asm %BIN%\develop\h2d2b
|
||||
fasm develop\heed\trunk\heed.asm %BIN%\demos\heed
|
||||
fasm develop\h2d2b\h2d2b.asm %BIN%\develop\h2d2b
|
||||
fasm develop\heed\heed.asm %BIN%\demos\heed
|
||||
rem fasm develop\hexview\trunk\hexview.asm hexview
|
||||
fasm develop\keyascii\trunk\keyascii.asm %BIN%\develop\keyascii
|
||||
fasm develop\keyascii\keyascii.asm %BIN%\develop\keyascii
|
||||
fasm develop\mtdbg\mtdbg.asm %BIN%\develop\mtdbg
|
||||
rem fasm develop\param\trunk\param.asm param
|
||||
fasm develop\scancode\trunk\scancode.asm %BIN%\develop\scancode
|
||||
fasm develop\tinypad\trunk\tinypad.asm %BIN%\tinypad
|
||||
fasm develop\cObj\trunk\cObj.asm %BIN%\develop\cObj
|
||||
fasm develop\scancode\scancode.asm %BIN%\develop\scancode
|
||||
fasm develop\tinypad\tinypad.asm %BIN%\tinypad
|
||||
fasm develop\cObj\cObj.asm %BIN%\develop\cObj
|
||||
|
||||
echo *
|
||||
echo Building systems libraries
|
||||
echo *
|
||||
fasm develop\libraries\box_lib\trunk\box_lib.asm %BIN%\lib\box_lib.obj
|
||||
fasm develop\libraries\box_lib\box_lib.asm %BIN%\lib\box_lib.obj
|
||||
fasm develop\libraries\console\console.asm %BIN%\lib\console.obj
|
||||
fasm develop\libraries\libs-dev\libgfx\libgfx.asm %BIN%\lib\libgfx.obj
|
||||
fasm develop\libraries\libs-dev\libimg\libimg.asm %BIN%\lib\libimg.obj
|
||||
@@ -154,16 +154,16 @@ echo *
|
||||
echo Building other
|
||||
echo *
|
||||
rem fasm other\archer\trunk\@rcher.asm %BIN%\@rcher
|
||||
fasm other\calc\trunk\calc.asm %BIN%\calc
|
||||
fasm other\calc\calc.asm %BIN%\calc
|
||||
fasm other\mhc\trunk\mhc.asm %BIN%\mhc
|
||||
fasm other\period\trunk\period.asm %BIN%\period
|
||||
fasm other\rtfread\trunk\rtfread.asm %BIN%\rtfread
|
||||
fasm other\period\period.asm %BIN%\period
|
||||
fasm other\rtfread\rtfread.asm %BIN%\rtfread
|
||||
|
||||
echo *
|
||||
echo Building media
|
||||
echo *
|
||||
rem media\ac97snd\trunk\ac97snd.asm ac97snd
|
||||
fasm media\animage\trunk\animage.asm %BIN%\animage
|
||||
fasm media\animage\animage.asm %BIN%\animage
|
||||
fasm media\cdp\trunk\cdp.asm %BIN%\cdp
|
||||
fasm media\gifview\trunk\gifview.asm %BIN%\gifview
|
||||
fasm media\iconedit\trunk\iconedit.asm %BIN%\iconedit
|
||||
@@ -231,38 +231,38 @@ echo *
|
||||
echo Building depend application for fdd's nightbuild
|
||||
echo *
|
||||
echo __nightbuild fix yes >> config.inc
|
||||
fasm media\kiv\trunk\kiv.asm %BIN%\nightbuild\kiv
|
||||
fasm media\kiv\kiv.asm %BIN%\nightbuild\kiv
|
||||
fasm media\scrshoot\scrshoot.asm %BIN%\nightbuild\scrshoot
|
||||
fasm media\animage\trunk\animage.asm %BIN%\nightbuild\animage
|
||||
fasm media\animage\animage.asm %BIN%\nightbuild\animage
|
||||
fasm media\midamp\trunk\midamp.asm %BIN%\nightbuild\midamp
|
||||
fasm develop\heed\trunk\heed.asm %BIN%\nightbuild\heed
|
||||
fasm develop\tinypad\trunk\tinypad.asm %BIN%\nightbuild\tinypad
|
||||
fasm develop\heed\heed.asm %BIN%\nightbuild\heed
|
||||
fasm develop\tinypad\tinypad.asm %BIN%\nightbuild\tinypad
|
||||
fasm system\skincfg\trunk\skincfg.asm %BIN%\nightbuild\skincfg
|
||||
fasm system\hdd_info\trunk\hdd_info.asm %BIN%\nightbuild\hdd_info
|
||||
fasm system\mgb\trunk\mgb.asm %BIN%\nightbuild\mgb
|
||||
fasm system\rdsave\trunk\rdsave.asm %BIN%\nightbuild\rdsave
|
||||
fasm other\kpack\trunk\kpack.asm %BIN%\nightbuild\kpack
|
||||
fasm other\rtfread\trunk\rtfread.asm %BIN%\nightbuild\rtfread
|
||||
fasm other\rtfread\rtfread.asm %BIN%\nightbuild\rtfread
|
||||
;restore
|
||||
echo __CPU_type fix %res% > config.inc
|
||||
erase lang.inc
|
||||
|
||||
echo *
|
||||
echo Finished building
|
||||
echo Finished building
|
||||
echo *
|
||||
|
||||
|
||||
kpack /nologo 2> nul
|
||||
if "%errorlevel%"=="9009" (
|
||||
echo *** NOTICE ***
|
||||
echo If you want to pack all applications you may
|
||||
echo If you want to pack all applications you may
|
||||
echo place "kpack" in accessible directory.
|
||||
echo You can download that tool from http://diamondz.land.ru/
|
||||
goto END
|
||||
)
|
||||
|
||||
echo Kpack KolibriOS apps?
|
||||
echo
|
||||
echo
|
||||
|
||||
set /P res=[y/n]?
|
||||
|
||||
@@ -273,7 +273,7 @@ echo Compressing system
|
||||
echo *
|
||||
kpack %BIN%\calendar
|
||||
kpack %BIN%\develop\board
|
||||
kpack %BIN%\cpu
|
||||
kpack %BIN%\cpu
|
||||
kpack %BIN%\cpuid
|
||||
kpack %BIN%\skincfg
|
||||
kpack %BIN%\docpack
|
||||
|
@@ -1,7 +0,0 @@
|
||||
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||
HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR")
|
||||
tup.include(HELPERDIR .. "/use_fasm.lua")
|
||||
add_include(tup.getvariantdir())
|
||||
|
||||
tup.rule("echo lang fix " .. ((tup.getconfig("LANG") == "") and "en_US" or tup.getconfig("LANG")) .. " > %o", {"lang.inc"})
|
||||
tup.rule({"magnify.asm", extra_inputs = {"lang.inc"}}, FASM .. " %f %o " .. tup.getconfig("KPACK_CMD"), "magnify")
|
@@ -1,6 +0,0 @@
|
||||
@erase lang.inc
|
||||
@echo lang fix en_US >lang.inc
|
||||
@fasm magnify.asm magnify
|
||||
@kpack magnify
|
||||
@erase lang.inc
|
||||
@pause
|
@@ -1,6 +0,0 @@
|
||||
@erase lang.inc
|
||||
@echo lang fix ru_RU >lang.inc
|
||||
@fasm magnify.asm magnify
|
||||
@kpack magnify
|
||||
@erase lang.inc
|
||||
@pause
|
@@ -1,156 +0,0 @@
|
||||
;---------------------------------------------------------------------
|
||||
; MAGNIFY SCREEN v1.0
|
||||
;
|
||||
; Version for KolibriOS 2005-2011
|
||||
;
|
||||
; Version for Menuet to 2005
|
||||
;---------------------------------------------------------------------
|
||||
; last update: 08/18/2011
|
||||
; changed by: Marat Zakiyanov aka Mario79, aka Mario
|
||||
; changes: Checking for "rolled up" window
|
||||
;---------------------------------------------------------------------
|
||||
use32
|
||||
org 0x0
|
||||
db 'MENUET01' ; 8 byte id
|
||||
dd 1 ; header version
|
||||
dd START ; program start
|
||||
dd I_END ; program image size
|
||||
dd 0x1000 ; required amount of memory
|
||||
dd 0x1000 ; esp
|
||||
dd 0, 0 ; no parameters, no path
|
||||
;---------------------------------------------------------------------
|
||||
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
|
||||
include '..\..\..\macros.inc'
|
||||
delay equ 20
|
||||
|
||||
magnify_width = 40
|
||||
magnify_height = 30
|
||||
;---------------------------------------------------------------------
|
||||
START: ; start of execution
|
||||
redraw:
|
||||
call draw_window
|
||||
still:
|
||||
call draw_magnify
|
||||
wtevent:
|
||||
mcall 23,delay ; wait here for event with timeout
|
||||
dec eax
|
||||
js still
|
||||
jz redraw
|
||||
dec eax
|
||||
jnz button
|
||||
; key in buffer
|
||||
mov al, 2
|
||||
mcall
|
||||
jmp wtevent
|
||||
;---------------------------------------------------------------------
|
||||
button:
|
||||
; we have only one button, close
|
||||
or eax, -1
|
||||
mcall
|
||||
;---------------------------------------------------------------------
|
||||
; ******* WINDOW DEFINITIONS AND DRAW ********
|
||||
;---------------------------------------------------------------------
|
||||
draw_window:
|
||||
mcall 12,1
|
||||
|
||||
mov al, 48 ; function 48 : graphics parameters
|
||||
mov bl, 4 ; subfunction 4 : get skin height
|
||||
mcall
|
||||
; DRAW WINDOW
|
||||
mov ebx, 100*65536 + 8*magnify_width + 8
|
||||
lea ecx, [eax + 100*65536 + 8*magnify_height + 3]
|
||||
mov edx, 0x34000000 ; color of work area RRGGBB
|
||||
mov edi, labelt ; header
|
||||
xor eax, eax ; function 0 : define and draw window
|
||||
mcall
|
||||
|
||||
mcall 12,2
|
||||
ret
|
||||
;---------------------------------------------------------------------
|
||||
draw_magnify:
|
||||
mcall 9,procinfo,-1
|
||||
mov eax,[procinfo+70] ;status of window
|
||||
test eax,100b
|
||||
jne .end
|
||||
|
||||
mcall 14 ; get screen size
|
||||
movzx ecx, ax
|
||||
inc ecx
|
||||
mov [size_y], ecx
|
||||
shr eax, 16
|
||||
inc eax
|
||||
mov [size_x], eax
|
||||
|
||||
xor ebx, ebx
|
||||
mcall 37 ; get mouse coordinates
|
||||
mov ecx, eax
|
||||
shr ecx, 16 ; ecx = x
|
||||
movzx edx, ax ; edx = y
|
||||
inc ecx
|
||||
mov [m_xe], ecx
|
||||
inc edx
|
||||
mov [m_ye], edx
|
||||
sub ecx, magnify_width
|
||||
sub edx, magnify_height
|
||||
mov [m_x], ecx
|
||||
mov [m_y], edx
|
||||
.loop_y:
|
||||
.loop_x:
|
||||
xor eax, eax ; assume black color for invalid pixels
|
||||
test ecx, ecx
|
||||
js .nopix
|
||||
cmp ecx, [size_x]
|
||||
jge .nopix
|
||||
test edx, edx
|
||||
js .nopix
|
||||
cmp edx, [size_y]
|
||||
jge .nopix
|
||||
mov ebx, edx
|
||||
imul ebx, [size_x]
|
||||
add ebx, ecx
|
||||
mcall 35 ; read pixel
|
||||
.nopix:
|
||||
push ecx edx
|
||||
sub ecx, [m_x]
|
||||
sub edx, [m_y]
|
||||
mov ebx, ecx
|
||||
shl ebx, 3+16
|
||||
mov bl, 8
|
||||
mov ecx, edx
|
||||
shl ecx, 3+16
|
||||
mov cl, 8
|
||||
mov edx, eax
|
||||
mcall 13
|
||||
pop edx ecx
|
||||
inc ecx
|
||||
cmp ecx, [m_xe]
|
||||
jnz .loop_x
|
||||
mov ecx, [m_x]
|
||||
inc edx
|
||||
cmp edx, [m_ye]
|
||||
jnz .loop_y
|
||||
.end:
|
||||
ret
|
||||
;---------------------------------------------------------------------
|
||||
; DATA AREA
|
||||
;---------------------------------------------------------------------
|
||||
if lang eq ru_RU
|
||||
labelt:
|
||||
db 'Magnifier - <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20>㯠', 0
|
||||
else ; Default to en_US
|
||||
labelt:
|
||||
db 'Magnifier', 0
|
||||
end if
|
||||
|
||||
I_END:
|
||||
align 4
|
||||
m_x dd ?
|
||||
m_y dd ?
|
||||
m_xe dd ?
|
||||
m_ye dd ?
|
||||
size_x dd ?
|
||||
size_y dd ?
|
||||
;---------------------------------------------------------------------
|
||||
procinfo:
|
||||
rb 1024
|
||||
;---------------------------------------------------------------------
|
@@ -1,325 +1,329 @@
|
||||
use32
|
||||
org 0x0
|
||||
db 'MENUET01'
|
||||
dd 0x01,start,i_end,e_end,e_end,0,0
|
||||
|
||||
include '../../../proc32.inc'
|
||||
include '../../../macros.inc'
|
||||
|
||||
BUTTON_SIDE = 28 ; button are squares
|
||||
BUTTON_SPACE = 34 ; space between cols and rows
|
||||
BUTTON_ID_SHIFT = 2 ; button_id = character + BUTTON_ID_SHIFT
|
||||
TABLE_BEGIN_X = 2
|
||||
TABLE_BEGIN_Y = 2
|
||||
PANEL_Y = BUTTON_SPACE*8+TABLE_BEGIN_Y+TABLE_BEGIN_Y
|
||||
|
||||
FOCUS_SQUARE_COLOR = 0x000080FF
|
||||
SWITCHER_BLINK_COLOR = 0x00808080
|
||||
|
||||
FONT_SMALL = 0x01000000
|
||||
FONT_BIG = 0x10000000
|
||||
|
||||
|
||||
start:
|
||||
still:
|
||||
mcall 10
|
||||
dec eax
|
||||
jz redraw
|
||||
dec eax
|
||||
jz key
|
||||
|
||||
button:
|
||||
mcall 17
|
||||
shr eax, 8
|
||||
|
||||
cmp eax, 1
|
||||
je quit
|
||||
cmp ax, 0xFFAA ; page switcher
|
||||
je .switch_page ; any button with a character
|
||||
cmp ax, 0xEEBB ; page switcher
|
||||
je .switch_font
|
||||
.change_focus:
|
||||
mov bl, [symbol_focused]
|
||||
mov [symbol_unfocused], bl
|
||||
sub ax, BUTTON_ID_SHIFT ; get the corresponding character
|
||||
mov [symbol_focused], al
|
||||
stdcall draw_table, 0
|
||||
call draw_codes
|
||||
jmp still
|
||||
.switch_font:
|
||||
cmp [font_type], FONT_SMALL
|
||||
jne @f
|
||||
mov [font_type], FONT_BIG
|
||||
jmp redraw
|
||||
@@: mov [font_type], FONT_SMALL
|
||||
jmp redraw
|
||||
.switch_page:
|
||||
movzx bx, [symbol_start]
|
||||
add bx, BUTTON_ID_SHIFT
|
||||
mov cx, 128 ; half of page
|
||||
mov edx, 0x80000000
|
||||
mov dx, bx
|
||||
@@: mcall 8
|
||||
inc edx
|
||||
dec cx
|
||||
jnz @b
|
||||
|
||||
@@: add [symbol_start], 128 ; change page
|
||||
add [symbol_focused], 128
|
||||
stdcall draw_table, 1 ; 1 means redraw the whole table
|
||||
call draw_codes
|
||||
stdcall draw_page_switcher, 1 ; 1 means dark color, for blinking
|
||||
mcall 5, 10
|
||||
stdcall draw_page_switcher, 0 ; 0 means usual light color
|
||||
jmp still
|
||||
|
||||
redraw:
|
||||
mcall 9, proc_info, -1
|
||||
|
||||
mcall 12, 1
|
||||
|
||||
mcall 48, 4 ; get skin height
|
||||
mov ecx, 200*0x10000+PANEL_Y+33
|
||||
add ecx, eax
|
||||
mov ebx, 200*0x10000+BUTTON_SPACE*16+TABLE_BEGIN_X+TABLE_BEGIN_X+9
|
||||
mcall 0, , , 0x34AAAaaa, 0x80000000, window_title
|
||||
test [proc_info.wnd_state], 0x04
|
||||
jnz @f
|
||||
|
||||
stdcall draw_table, 1
|
||||
call draw_codes
|
||||
stdcall draw_page_switcher, 0
|
||||
stdcall draw_font_switcher
|
||||
|
||||
@@:
|
||||
mcall 12, 2
|
||||
jmp still
|
||||
|
||||
key:
|
||||
mcall 2
|
||||
cmp ah, 0x09 ; TAB key
|
||||
je button.switch_page
|
||||
|
||||
cmp ah, 0xB0 ; left
|
||||
jne @f
|
||||
mov bl, [symbol_focused]
|
||||
mov [symbol_unfocused], bl
|
||||
dec bl
|
||||
and bl, 0x0f
|
||||
and [symbol_focused], 0xf0
|
||||
or [symbol_focused], bl
|
||||
stdcall draw_table, 0
|
||||
call draw_codes
|
||||
jmp still
|
||||
|
||||
@@: cmp ah, 0xB1 ; down
|
||||
jne @f
|
||||
mov bl, [symbol_focused]
|
||||
mov [symbol_unfocused], bl
|
||||
add bl, 16
|
||||
and bl, 0x70
|
||||
and [symbol_focused], 0x8f
|
||||
or [symbol_focused], bl
|
||||
stdcall draw_table, 0
|
||||
call draw_codes
|
||||
jmp still
|
||||
|
||||
@@: cmp ah, 0xB2 ; up
|
||||
jne @f
|
||||
mov bl, [symbol_focused]
|
||||
mov [symbol_unfocused], bl
|
||||
sub bl, 16
|
||||
and bl, 0x70
|
||||
and [symbol_focused], 0x8f
|
||||
or [symbol_focused], bl
|
||||
stdcall draw_table, 0
|
||||
call draw_codes
|
||||
jmp still
|
||||
|
||||
@@: cmp ah, 0xB3 ; righ
|
||||
jne @f
|
||||
mov bl, [symbol_focused]
|
||||
mov [symbol_unfocused], bl
|
||||
inc bl
|
||||
and bl, 0x0f
|
||||
and [symbol_focused], 0xf0
|
||||
or [symbol_focused], bl
|
||||
stdcall draw_table, 0
|
||||
call draw_codes
|
||||
jmp still
|
||||
jne @f
|
||||
|
||||
@@:
|
||||
jmp still
|
||||
|
||||
|
||||
|
||||
proc draw_table _full_redraw
|
||||
|
||||
mov al, [symbol_start]
|
||||
mov [symbol_current], al
|
||||
|
||||
.next_button:
|
||||
|
||||
xor edi, edi ; character focus flag
|
||||
mov al, [symbol_current]
|
||||
cmp al, [symbol_focused]
|
||||
jne @f
|
||||
inc edi
|
||||
@@: cmp [_full_redraw], 1
|
||||
je .draw
|
||||
cmp al, [symbol_focused]
|
||||
je .draw
|
||||
cmp al, [symbol_unfocused] ; previously focused, should redraw to clear focus
|
||||
je .draw
|
||||
jmp .skip ; skip button if it isn't (un)focused
|
||||
|
||||
.draw:
|
||||
call draw_button
|
||||
.skip:
|
||||
mov bl, [symbol_start]
|
||||
add bl, 127 ; end of current page
|
||||
cmp [symbol_current], bl ; the last on page?
|
||||
jne @f
|
||||
mov [button_x], TABLE_BEGIN_X
|
||||
mov [button_y], TABLE_BEGIN_Y
|
||||
ret
|
||||
@@: inc [symbol_current]
|
||||
add [button_x], BUTTON_SPACE
|
||||
cmp [button_x], BUTTON_SPACE*16+TABLE_BEGIN_X ; the last in row?
|
||||
jne .next_button
|
||||
add [button_y], BUTTON_SPACE ; next row
|
||||
mov [button_x], TABLE_BEGIN_X
|
||||
jmp .next_button
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
proc draw_button
|
||||
mov edx, 0x80000000
|
||||
mov dl, [symbol_current]
|
||||
add edx, BUTTON_ID_SHIFT
|
||||
mov esi, 0xFFFfff
|
||||
mcall 8, <[button_x],BUTTON_SIDE>, <[button_y],BUTTON_SIDE>
|
||||
and edx, 0x7FFFFFFF
|
||||
or edx, 0x20000000
|
||||
mcall
|
||||
|
||||
test edi, edi ; is focused?
|
||||
jz .symbol ; draw only character, not selection square
|
||||
.focus_frame: ; draw a blue square (selection), 8 segments
|
||||
mov esi, [button_x]
|
||||
mov edi, [button_y]
|
||||
|
||||
mov bx, si
|
||||
shl ebx, 16
|
||||
mov bx, si
|
||||
add bx, BUTTON_SIDE
|
||||
mov cx, di
|
||||
shl ecx, 16
|
||||
mov cx, di
|
||||
mcall 38, , , FOCUS_SQUARE_COLOR
|
||||
add ecx, 0x00010001
|
||||
mcall
|
||||
add ecx, (BUTTON_SIDE-2)*0x10000+(BUTTON_SIDE-2)
|
||||
mcall
|
||||
add ecx, 0x00010001
|
||||
mcall
|
||||
|
||||
mov bx, si
|
||||
shl ebx, 16
|
||||
mov bx, si
|
||||
mov cx, di
|
||||
shl ecx, 16
|
||||
mov cx, di
|
||||
add ecx, 2*0x10000+(BUTTON_SIDE-2)
|
||||
mcall 38, , ,
|
||||
add ebx, 0x00010001
|
||||
mcall
|
||||
add ebx, (BUTTON_SIDE-2)*0x10000+(BUTTON_SIDE-2)
|
||||
mcall
|
||||
add ebx, 0x00010001
|
||||
mcall
|
||||
|
||||
.symbol:
|
||||
mov ebx, [button_x]
|
||||
add ebx, 9
|
||||
shl ebx, 16
|
||||
add ebx, [button_y]
|
||||
add ebx, 7
|
||||
mov ecx, [font_type]
|
||||
mcall 4, , , symbol_current, 1
|
||||
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
proc draw_page_switcher _blinking
|
||||
|
||||
mcall 8, , , 0x8000FFAA
|
||||
mov esi, 0xCCCccc
|
||||
cmp [_blinking], 1 ; blinking?
|
||||
jne @f
|
||||
mov esi, SWITCHER_BLINK_COLOR
|
||||
@@: mcall , <2,98>, <PANEL_Y+1,23>, 0x0000FFAA
|
||||
|
||||
mov ecx, 0x81000000
|
||||
mov edx, string_000_127
|
||||
cmp [symbol_start], 0 ; first page?
|
||||
je @f
|
||||
mov edx, string_128_255 ; ok, the second one
|
||||
@@: mcall 4, <10,PANEL_Y+6>,
|
||||
mcall , <278,PANEL_Y+6>, 0x81000000, string_ASCII_CODE
|
||||
|
||||
ret
|
||||
endp
|
||||
|
||||
proc draw_font_switcher
|
||||
|
||||
mcall 8, <120,136>, <PANEL_Y+1,23>, 0x0000EEBB
|
||||
|
||||
mov edx, string_font_small
|
||||
cmp [font_type], FONT_SMALL
|
||||
je @f
|
||||
mov edx, string_font_big
|
||||
@@: mcall 4, <130,PANEL_Y+6>,,,10
|
||||
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
proc draw_codes
|
||||
|
||||
movzx ecx, [symbol_focused]
|
||||
mcall 47, 0x00030000, , <339,PANEL_Y+6>, 0x41000000, 0xAAAaaa
|
||||
mcall , 0x00020100, , <508,PANEL_Y+6>,
|
||||
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
quit:
|
||||
mcall -1
|
||||
|
||||
|
||||
szZ window_title ,'ASCIIVju'
|
||||
szZ string_000_127 ,'000-127'
|
||||
szZ string_128_255 ,'128-255'
|
||||
szZ string_font_small ,'Font1 6x9 '
|
||||
szZ string_font_big ,'Font2 8x14'
|
||||
szZ string_ASCII_CODE ,'Code: Hex-Code:'
|
||||
|
||||
button_x dd 2
|
||||
button_y dd 2
|
||||
|
||||
font_type dd FONT_SMALL
|
||||
|
||||
symbol_current db 0
|
||||
symbol_start db 0
|
||||
|
||||
symbol_unfocused db 0
|
||||
symbol_focused db 0
|
||||
i_end:
|
||||
proc_info process_information
|
||||
rb 0x400 ;stack
|
||||
e_end:
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
|
||||
use32
|
||||
org 0x0
|
||||
db 'MENUET01'
|
||||
dd 0x01,start,i_end,e_end,e_end,0,0
|
||||
|
||||
include '../../proc32.inc'
|
||||
include '../../macros.inc'
|
||||
|
||||
BUTTON_SIDE = 28 ; button are squares
|
||||
BUTTON_SPACE = 34 ; space between cols and rows
|
||||
BUTTON_ID_SHIFT = 2 ; button_id = character + BUTTON_ID_SHIFT
|
||||
TABLE_BEGIN_X = 2
|
||||
TABLE_BEGIN_Y = 2
|
||||
PANEL_Y = BUTTON_SPACE*8+TABLE_BEGIN_Y+TABLE_BEGIN_Y
|
||||
|
||||
FOCUS_SQUARE_COLOR = 0x000080FF
|
||||
SWITCHER_BLINK_COLOR = 0x00808080
|
||||
|
||||
FONT_SMALL = 0x01000000
|
||||
FONT_BIG = 0x10000000
|
||||
|
||||
|
||||
start:
|
||||
still:
|
||||
mcall 10
|
||||
dec eax
|
||||
jz redraw
|
||||
dec eax
|
||||
jz key
|
||||
|
||||
button:
|
||||
mcall 17
|
||||
shr eax, 8
|
||||
|
||||
cmp eax, 1
|
||||
je quit
|
||||
cmp ax, 0xFFAA ; page switcher
|
||||
je .switch_page ; any button with a character
|
||||
cmp ax, 0xEEBB ; page switcher
|
||||
je .switch_font
|
||||
.change_focus:
|
||||
mov bl, [symbol_focused]
|
||||
mov [symbol_unfocused], bl
|
||||
sub ax, BUTTON_ID_SHIFT ; get the corresponding character
|
||||
mov [symbol_focused], al
|
||||
stdcall draw_table, 0
|
||||
call draw_codes
|
||||
jmp still
|
||||
.switch_font:
|
||||
cmp [font_type], FONT_SMALL
|
||||
jne @f
|
||||
mov [font_type], FONT_BIG
|
||||
jmp redraw
|
||||
@@: mov [font_type], FONT_SMALL
|
||||
jmp redraw
|
||||
.switch_page:
|
||||
movzx bx, [symbol_start]
|
||||
add bx, BUTTON_ID_SHIFT
|
||||
mov cx, 128 ; half of page
|
||||
mov edx, 0x80000000
|
||||
mov dx, bx
|
||||
@@: mcall 8
|
||||
inc edx
|
||||
dec cx
|
||||
jnz @b
|
||||
|
||||
@@: add [symbol_start], 128 ; change page
|
||||
add [symbol_focused], 128
|
||||
stdcall draw_table, 1 ; 1 means redraw the whole table
|
||||
call draw_codes
|
||||
stdcall draw_page_switcher, 1 ; 1 means dark color, for blinking
|
||||
mcall 5, 10
|
||||
stdcall draw_page_switcher, 0 ; 0 means usual light color
|
||||
jmp still
|
||||
|
||||
redraw:
|
||||
mcall 9, proc_info, -1
|
||||
|
||||
mcall 12, 1
|
||||
|
||||
mcall 48, 4 ; get skin height
|
||||
mov ecx, 200*0x10000+PANEL_Y+33
|
||||
add ecx, eax
|
||||
mov ebx, 200*0x10000+BUTTON_SPACE*16+TABLE_BEGIN_X+TABLE_BEGIN_X+9
|
||||
mcall 0, , , 0x34AAAaaa, 0x80000000, window_title
|
||||
test [proc_info.wnd_state], 0x04
|
||||
jnz @f
|
||||
|
||||
stdcall draw_table, 1
|
||||
call draw_codes
|
||||
stdcall draw_page_switcher, 0
|
||||
stdcall draw_font_switcher
|
||||
|
||||
@@:
|
||||
mcall 12, 2
|
||||
jmp still
|
||||
|
||||
key:
|
||||
mcall 2
|
||||
cmp ah, 0x09 ; TAB key
|
||||
je button.switch_page
|
||||
|
||||
cmp ah, 0xB0 ; left
|
||||
jne @f
|
||||
mov bl, [symbol_focused]
|
||||
mov [symbol_unfocused], bl
|
||||
dec bl
|
||||
and bl, 0x0f
|
||||
and [symbol_focused], 0xf0
|
||||
or [symbol_focused], bl
|
||||
stdcall draw_table, 0
|
||||
call draw_codes
|
||||
jmp still
|
||||
|
||||
@@: cmp ah, 0xB1 ; down
|
||||
jne @f
|
||||
mov bl, [symbol_focused]
|
||||
mov [symbol_unfocused], bl
|
||||
add bl, 16
|
||||
and bl, 0x70
|
||||
and [symbol_focused], 0x8f
|
||||
or [symbol_focused], bl
|
||||
stdcall draw_table, 0
|
||||
call draw_codes
|
||||
jmp still
|
||||
|
||||
@@: cmp ah, 0xB2 ; up
|
||||
jne @f
|
||||
mov bl, [symbol_focused]
|
||||
mov [symbol_unfocused], bl
|
||||
sub bl, 16
|
||||
and bl, 0x70
|
||||
and [symbol_focused], 0x8f
|
||||
or [symbol_focused], bl
|
||||
stdcall draw_table, 0
|
||||
call draw_codes
|
||||
jmp still
|
||||
|
||||
@@: cmp ah, 0xB3 ; righ
|
||||
jne @f
|
||||
mov bl, [symbol_focused]
|
||||
mov [symbol_unfocused], bl
|
||||
inc bl
|
||||
and bl, 0x0f
|
||||
and [symbol_focused], 0xf0
|
||||
or [symbol_focused], bl
|
||||
stdcall draw_table, 0
|
||||
call draw_codes
|
||||
jmp still
|
||||
jne @f
|
||||
|
||||
@@:
|
||||
jmp still
|
||||
|
||||
|
||||
|
||||
proc draw_table _full_redraw
|
||||
|
||||
mov al, [symbol_start]
|
||||
mov [symbol_current], al
|
||||
|
||||
.next_button:
|
||||
|
||||
xor edi, edi ; character focus flag
|
||||
mov al, [symbol_current]
|
||||
cmp al, [symbol_focused]
|
||||
jne @f
|
||||
inc edi
|
||||
@@: cmp [_full_redraw], 1
|
||||
je .draw
|
||||
cmp al, [symbol_focused]
|
||||
je .draw
|
||||
cmp al, [symbol_unfocused] ; previously focused, should redraw to clear focus
|
||||
je .draw
|
||||
jmp .skip ; skip button if it isn't (un)focused
|
||||
|
||||
.draw:
|
||||
call draw_button
|
||||
.skip:
|
||||
mov bl, [symbol_start]
|
||||
add bl, 127 ; end of current page
|
||||
cmp [symbol_current], bl ; the last on page?
|
||||
jne @f
|
||||
mov [button_x], TABLE_BEGIN_X
|
||||
mov [button_y], TABLE_BEGIN_Y
|
||||
ret
|
||||
@@: inc [symbol_current]
|
||||
add [button_x], BUTTON_SPACE
|
||||
cmp [button_x], BUTTON_SPACE*16+TABLE_BEGIN_X ; the last in row?
|
||||
jne .next_button
|
||||
add [button_y], BUTTON_SPACE ; next row
|
||||
mov [button_x], TABLE_BEGIN_X
|
||||
jmp .next_button
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
proc draw_button
|
||||
mov edx, 0x80000000
|
||||
mov dl, [symbol_current]
|
||||
add edx, BUTTON_ID_SHIFT
|
||||
mov esi, 0xFFFfff
|
||||
mcall 8, <[button_x],BUTTON_SIDE>, <[button_y],BUTTON_SIDE>
|
||||
and edx, 0x7FFFFFFF
|
||||
or edx, 0x20000000
|
||||
mcall
|
||||
|
||||
test edi, edi ; is focused?
|
||||
jz .symbol ; draw only character, not selection square
|
||||
.focus_frame: ; draw a blue square (selection), 8 segments
|
||||
mov esi, [button_x]
|
||||
mov edi, [button_y]
|
||||
|
||||
mov bx, si
|
||||
shl ebx, 16
|
||||
mov bx, si
|
||||
add bx, BUTTON_SIDE
|
||||
mov cx, di
|
||||
shl ecx, 16
|
||||
mov cx, di
|
||||
mcall 38, , , FOCUS_SQUARE_COLOR
|
||||
add ecx, 0x00010001
|
||||
mcall
|
||||
add ecx, (BUTTON_SIDE-2)*0x10000+(BUTTON_SIDE-2)
|
||||
mcall
|
||||
add ecx, 0x00010001
|
||||
mcall
|
||||
|
||||
mov bx, si
|
||||
shl ebx, 16
|
||||
mov bx, si
|
||||
mov cx, di
|
||||
shl ecx, 16
|
||||
mov cx, di
|
||||
add ecx, 2*0x10000+(BUTTON_SIDE-2)
|
||||
mcall 38, , ,
|
||||
add ebx, 0x00010001
|
||||
mcall
|
||||
add ebx, (BUTTON_SIDE-2)*0x10000+(BUTTON_SIDE-2)
|
||||
mcall
|
||||
add ebx, 0x00010001
|
||||
mcall
|
||||
|
||||
.symbol:
|
||||
mov ebx, [button_x]
|
||||
add ebx, 9
|
||||
shl ebx, 16
|
||||
add ebx, [button_y]
|
||||
add ebx, 7
|
||||
mov ecx, [font_type]
|
||||
mcall 4, , , symbol_current, 1
|
||||
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
proc draw_page_switcher _blinking
|
||||
|
||||
mcall 8, , , 0x8000FFAA
|
||||
mov esi, 0xCCCccc
|
||||
cmp [_blinking], 1 ; blinking?
|
||||
jne @f
|
||||
mov esi, SWITCHER_BLINK_COLOR
|
||||
@@: mcall , <2,98>, <PANEL_Y+1,23>, 0x0000FFAA
|
||||
|
||||
mov ecx, 0x81000000
|
||||
mov edx, string_000_127
|
||||
cmp [symbol_start], 0 ; first page?
|
||||
je @f
|
||||
mov edx, string_128_255 ; ok, the second one
|
||||
@@: mcall 4, <10,PANEL_Y+6>,
|
||||
mcall , <278,PANEL_Y+6>, 0x81000000, string_ASCII_CODE
|
||||
|
||||
ret
|
||||
endp
|
||||
|
||||
proc draw_font_switcher
|
||||
|
||||
mcall 8, <120,136>, <PANEL_Y+1,23>, 0x0000EEBB
|
||||
|
||||
mov edx, string_font_small
|
||||
cmp [font_type], FONT_SMALL
|
||||
je @f
|
||||
mov edx, string_font_big
|
||||
@@: mcall 4, <130,PANEL_Y+6>,,,10
|
||||
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
proc draw_codes
|
||||
|
||||
movzx ecx, [symbol_focused]
|
||||
mcall 47, 0x00030000, , <339,PANEL_Y+6>, 0x41000000, 0xAAAaaa
|
||||
mcall , 0x00020100, , <508,PANEL_Y+6>,
|
||||
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
quit:
|
||||
mcall -1
|
||||
|
||||
|
||||
szZ window_title ,'ASCIIVju'
|
||||
szZ string_000_127 ,'000-127'
|
||||
szZ string_128_255 ,'128-255'
|
||||
szZ string_font_small ,'Font1 6x9 '
|
||||
szZ string_font_big ,'Font2 8x14'
|
||||
szZ string_ASCII_CODE ,'Code: Hex-Code:'
|
||||
|
||||
button_x dd 2
|
||||
button_y dd 2
|
||||
|
||||
font_type dd FONT_SMALL
|
||||
|
||||
symbol_current db 0
|
||||
symbol_start db 0
|
||||
|
||||
symbol_unfocused db 0
|
||||
symbol_focused db 0
|
||||
i_end:
|
||||
proc_info process_information
|
||||
rb 0x400 ;stack
|
||||
e_end:
|
@@ -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())
|
||||
|
@@ -1,125 +1,131 @@
|
||||
;Ž¯â¨¬¨§¨à®¢ ë© ª®¬¯®¥â CheckBox (ˆáå®¤ë© ¢ ਠ⠮â Maxxxx32)
|
||||
;Ž¯â¨¬¨§¨à®¢ ¢ë¢®¤ áâப¨, ¤¯¨á¨ ¤«ï CheckBox'a + ⥯¥àì ¯à¨ ¯à®¢¥àª¥ ¥ ;¯à®¨á室¨â ¯®¤áç¥â ª®«-¢ ᨬ¢®«®¢ ¢ áâப¥
|
||||
;Ž¯â¨¬¨§ æ¨ï ª®¬ ¤.
|
||||
;21.02.2007 ¬®¤¥à¨§ æ¨ï ¨ ¯®¤¤¥à¦ª ¤¢ãå à §ëå ¢ ਠ⮢ á ¨á¯®«ì§®¢ ¨¥¬ á¨á 梥⮢ ¨ áâ ன á奬®©
|
||||
;19.02.2007 ®¡é¥¥ ã«ãç襨¥ ª®¤ , 㬥ì襨¥ à §¬¥à ¨ ¨á¯®«ì§®¢ ¨¥ á¨á⥬ëå æ¢¥â®¢ ¤«ï ®â®¡à ¦¥¨ï checkbox
|
||||
;22.08.2006 ¯à®¨§¢¥¤¥ ®¯â¨¬¨§ æ¨ï ª®¬ ¤, ¯à¨ïâë ¢® ¢¨¬ ¨¥ § ¬¥ç ¨ï DIAMOND' .
|
||||
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© 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
|
||||
;<3B>¥¤®¯ãá⨬® ¢ª«î票¥ ¤¢ãå ¬ ªà®á¢® 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 ;<3B>®¤äãªæ¨ï 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: ;ª®¥æ ª®¤
|
||||
; 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' .
|
||||
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© 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
|
||||
;<3B>¥¤®¯ãá⨬® ¢ª«î票¥ ¤¢ãå ¬ ªà®á¢® 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 ;<3B>®¤äãªæ¨ï 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: ;ª®¥æ ª®¤
|
@@ -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'
|
||||
|
||||
|
||||
|
@@ -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())
|
||||
|
@@ -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
|
@@ -1,68 +1,74 @@
|
||||
;<EFBFBD> á¯à®áâà ï¥âáï ¯® «¨æ¥§¨¨ GPL SEE YOU File FAQ.txt and HISTORY. Good Like!
|
||||
;Ž¯â¨¬¨§¨à®¢ ë© ª®¬¯®¥â EditBox (ˆáå®¤ë© ¢ ਠ⠮â Maxxxx32)
|
||||
;Ž¯â¨¬¨§ æ¨ï ª®¬ ¤.
|
||||
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© 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 <Lrz> 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
|
||||
|
||||
|
||||
;<3B> á¯à®áâà ï¥âáï ¯® «¨æ¥§¨¨ GPL SEE YOU File FAQ.txt and HISTORY. Good Like!
|
||||
;Ž¯â¨¬¨§¨à®¢ ë© ª®¬¯®¥â EditBox (ˆáå®¤ë© ¢ ਠ⠮â Maxxxx32)
|
||||
;Ž¯â¨¬¨§ æ¨ï ª®¬ ¤.
|
||||
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© 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 <Lrz> 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
|
@@ -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())
|
||||
|
@@ -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
|
@@ -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())
|
||||
|
@@ -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
|
||||
@@:
|
@@ -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())
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
;
|
@@ -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())
|
||||
|
@@ -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 ?
|
@@ -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())
|
||||
|
@@ -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:
|
@@ -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:
|
@@ -1,130 +1,135 @@
|
||||
;ª®¬¯®¥â OptionBox (®á®¢ Checkbox)
|
||||
;Ž£à®¬ ï ¡« £®¤ à®áâì Maxxxx32, Diamond, Heavyiron ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§
|
||||
;ª®â®àëå ï ¥ ᬮ£ ¡ë ¯¨á âì íâ®â ª®¬¯®¥â.
|
||||
;21.02.2007 ¬®¤¥à¨§ æ¨ï ¨ ¯®¤¤¥à¦ª ¤¢ãå à §ëå ¢ ਠ⮢ á ¨á¯®«ì§®¢ ¨¥¬ á¨á 梥⮢ ¨ áâ ன á奬®©
|
||||
;19.02.2007 ®¡é¥¥ ã«ãç襨¥ ª®¤ , 㬥ì襨¥ à §¬¥à ¨ ¨á¯®«ì§®¢ ¨¥ á¨á⥬ëå æ¢¥â®¢ ¤«ï ®â®¡à ¦¥¨ï optionkbox
|
||||
;16.02.2007 ¤ â á®§¤ ¨ï ª®¬¯®¥â
|
||||
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© 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 ;<3B>®¤äãªæ¨ï 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: ;ª®¥æ ª®¤
|
||||
; 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 ¤ â á®§¤ ¨ï ª®¬¯®¥â
|
||||
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© 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 ;<3B>®¤äãªæ¨ï 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: ;ª®¥æ ª®¤
|
@@ -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())
|
||||
|
@@ -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 "‚‚Ž„ˆŒ›… ‘ˆŒ‚Ž‹› <20>…<EFBFBD>…„€ž’‘Ÿ ŒŽ„…Œ“.",\
|
||||
"„€<EFBFBD><EFBFBD>›… Ž’ ŒŽ„…Œ€ ‘—ˆ’›‚€ž’‘Ÿ <EFBFBD>Ž",\
|
||||
"<EFBFBD><EFBFBD>…<EFBFBD>›‚€<EFBFBD>ˆž IRQ4 ˆ Ž’Ž<EFBFBD><EFBFBD>€†€ž’‘Ÿ <EFBFBD>ˆ†…."
|
||||
title:
|
||||
db 'ŒŽ„…Œ <20>€ 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 "‚‚Ž„ˆŒ›… ‘ˆŒ‚Ž‹› <20>…<EFBFBD>…„€ž’‘Ÿ ŒŽ„…Œ“.",\
|
||||
"„€<EFBFBD><EFBFBD>›… Ž’ ŒŽ„…Œ€ ‘—ˆ’›‚€ž’‘Ÿ <EFBFBD>Ž",\
|
||||
"<EFBFBD><EFBFBD>…<EFBFBD>›‚€<EFBFBD>ˆž IRQ4 ˆ Ž’Ž<EFBFBD><EFBFBD>€†€ž’‘Ÿ <EFBFBD>ˆ†…."
|
||||
title:
|
||||
db 'ŒŽ„…Œ <20>€ 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
|
@@ -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())
|
||||
|
@@ -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 --->
|
@@ -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())
|
||||
|
@@ -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
|
@@ -1,3 +1,9 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
; Text encoded with Code Page 866 - Cyrillic
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;;
|
||||
;; flat assembler source ;;
|
||||
@@ -41,7 +47,7 @@ include '../../../../macros.inc'
|
||||
purge add,sub ; macros.inc does incorrect substitution
|
||||
include 'fasm.inc'
|
||||
|
||||
include '../../../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||||
include '../../../../develop/libraries/box_lib/box_lib.mac'
|
||||
include '../../../../KOSfuncs.inc'
|
||||
include '../../../../load_lib.mac'
|
||||
@use_library
|
||||
@@ -61,9 +67,9 @@ START: ; Start of execution
|
||||
|
||||
cmp [params],0
|
||||
jz start_1
|
||||
|
||||
|
||||
;---------GerdtR
|
||||
or ecx,-1
|
||||
or ecx,-1
|
||||
mov esi,params
|
||||
cmp byte[esi],' '
|
||||
jne @f
|
||||
@@ -118,7 +124,7 @@ NoOutDebugInfo:
|
||||
pop ecx
|
||||
mov edi,path
|
||||
rep stosd
|
||||
|
||||
|
||||
mov esi,params
|
||||
; DEBUGF "params: %s\n",esi
|
||||
mov edi,infile
|
||||
@@ -164,17 +170,17 @@ init_checkboxes2 ch1_dbg,ch1_dbg+ch_struc_size
|
||||
red: ; Redraw
|
||||
call draw_window
|
||||
|
||||
still:
|
||||
still:
|
||||
mcall 10 ; Wait here for event
|
||||
cmp al,6
|
||||
je call_mouse
|
||||
dec eax
|
||||
dec eax
|
||||
je red ; Redraw request
|
||||
dec eax
|
||||
dec eax
|
||||
jne button ; Button in buffer
|
||||
key: ; Key
|
||||
mcall 2 ; Read it and ignore
|
||||
|
||||
|
||||
push dword edit1
|
||||
call [edit_box_key]
|
||||
push dword edit2
|
||||
@@ -194,7 +200,7 @@ button: ; Button in Window
|
||||
or eax,-1
|
||||
mcall
|
||||
;---------------------------------------------------------------------
|
||||
noclose:
|
||||
noclose:
|
||||
cmp ah,5 ;press button for OpenDialog
|
||||
jne @f
|
||||
call fun_opn_dlg
|
||||
@@ -203,7 +209,7 @@ noclose:
|
||||
je start
|
||||
cmp ah,3 ; Start compiled file
|
||||
jnz norunout
|
||||
|
||||
|
||||
mov edx,outfile
|
||||
call make_fullpaths
|
||||
mcall 70,file_info_start
|
||||
@@ -213,7 +219,7 @@ noclose:
|
||||
norunout:
|
||||
cmp ah,4
|
||||
jnz norundebug
|
||||
|
||||
|
||||
mov edx,outfile
|
||||
call make_fullpaths
|
||||
mcall 70,file_info_debug
|
||||
@@ -236,7 +242,7 @@ mouse:
|
||||
draw_window:
|
||||
pusha
|
||||
mcall 12,1 ; Start of draw
|
||||
|
||||
|
||||
get_sys_colors 1,0
|
||||
edit_boxes_set_sys_color edit1,editboxes_end,sc
|
||||
;check_boxes_set_sys_color2 ch1_dbg,ch1_dbg+ch_struc_size,sc
|
||||
@@ -275,7 +281,7 @@ draw_window:
|
||||
mcall 8,ebx,<LINE_H*0+3,LINE_H-4>,ID_COMPILE_BTN,[sc.work_button]
|
||||
mcall ,ebx,<LINE_H*1+3,LINE_H-4>,ID_EXECUTE_BTN
|
||||
mcall ,ebx,<LINE_H*2+3,LINE_H-4>,ID_EXECDBG_BTN
|
||||
|
||||
|
||||
mcall ,<5,62>,<LINE_H*2+3,LINE_H-5>,ID_OPENDLG_BTN
|
||||
|
||||
mov ecx, [sc.work_text]
|
||||
@@ -297,10 +303,10 @@ draw_window:
|
||||
mcall ,ebx,ecx,s_run
|
||||
add ebx,LINE_H
|
||||
mcall ,ebx,ecx,s_debug
|
||||
|
||||
|
||||
mpack ebx,MAGIC1+6,1+ 14/2-3+ 14*0
|
||||
mov esi,[pinfo.client_box.width]
|
||||
sub esi,MAGIC1*2+6+3
|
||||
sub esi,MAGIC1*2+6+3
|
||||
mov eax,esi
|
||||
mov cl,6
|
||||
div cl
|
||||
@@ -311,14 +317,14 @@ draw_window:
|
||||
movzx esi,al
|
||||
|
||||
call draw_messages
|
||||
|
||||
|
||||
mov eax,dword [pinfo.client_box.width]
|
||||
sub eax,[edit1.left]
|
||||
sub eax,RIGHT_BTN_W+6
|
||||
mov dword[edit1.width],eax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov dword[edit2.width],eax
|
||||
mov dword[edit3.width],eax
|
||||
|
||||
|
||||
push dword edit1
|
||||
call [edit_box_draw]
|
||||
push dword edit2
|
||||
@@ -327,7 +333,7 @@ draw_window:
|
||||
call [edit_box_draw]
|
||||
push dword ch1_dbg
|
||||
call [check_box_draw]
|
||||
.end:
|
||||
.end:
|
||||
mcall 12,2 ; End of Draw
|
||||
popa
|
||||
ret
|
||||
@@ -362,7 +368,7 @@ fun_opn_dlg: ;
|
||||
repne scasb
|
||||
cmp byte[edi-2],'/'
|
||||
jne .no_slash
|
||||
|
||||
|
||||
dec edi ;<3B> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <>, <20><> <20><><EFBFBD><EFBFBD> 㪮<><E3AAAE>稢<EFBFBD><E7A8A2><EFBFBD> <20><> 1 ᨬ<><E1A8AC><EFBFBD>
|
||||
.no_slash:
|
||||
mov byte[edi-1],'/' ;<3B>⠢<EFBFBD><E2A0A2> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <>
|
||||
@@ -390,7 +396,7 @@ fun_opn_dlg: ;
|
||||
sub esi,5
|
||||
cmp esi,[edit2.text]
|
||||
jle .short_fn
|
||||
|
||||
|
||||
mov byte[esi],0
|
||||
sub dword [edit2.size],4
|
||||
sub dword [edit2.pos],4
|
||||
@@ -416,20 +422,20 @@ draw_messages:
|
||||
msub [bottom_right],7,11
|
||||
add [bottom_right],7 shl 16 + 53
|
||||
mcall 13,,,0xFeFefe ; clear work area
|
||||
|
||||
|
||||
; draw top shadow
|
||||
push ecx
|
||||
mov cx,1
|
||||
mov edx,0xDADEDA
|
||||
mcall
|
||||
|
||||
|
||||
; draw left shadow
|
||||
pop ecx
|
||||
push ebx
|
||||
mov bx,1
|
||||
mcall
|
||||
pop ebx
|
||||
|
||||
|
||||
_cy = 0
|
||||
_sy = 2
|
||||
_cx = 4
|
||||
@@ -621,12 +627,12 @@ start:
|
||||
;---------------------------------------------------------------------
|
||||
mov [input_file],infile
|
||||
mov [output_file],outfile
|
||||
|
||||
|
||||
call init_memory
|
||||
|
||||
|
||||
call make_timestamp
|
||||
mov [start_time],eax
|
||||
|
||||
|
||||
call preprocessor
|
||||
call parser
|
||||
call assembler
|
||||
@@ -635,7 +641,7 @@ start:
|
||||
call symbol_dump
|
||||
@@:
|
||||
call formatter
|
||||
|
||||
|
||||
call display_user_messages
|
||||
movzx eax,[current_pass]
|
||||
inc eax
|
||||
@@ -666,7 +672,7 @@ display_bytes_count:
|
||||
mov esi,_bytes_suffix
|
||||
call display_string
|
||||
xor al,al
|
||||
|
||||
|
||||
cmp [_run_outfile],0
|
||||
je @f
|
||||
mov edx,outfile
|
||||
|
@@ -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())
|
||||
|
@@ -1,3 +1,9 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
; Text encoded with Code Page 866 - Cyrillic
|
||||
|
||||
|
||||
;; h2d2b v0.5 big fonts by Leency ;;
|
||||
;; 09.11.2016 ;;
|
||||
|
||||
@@ -17,11 +23,11 @@ use32
|
||||
db 'MENUET01'
|
||||
dd 1,start,i_end,e_end,e_end,0,sys_path
|
||||
|
||||
include '../../../proc32.inc'
|
||||
include '../../../macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§ì áᥬ¡«¥à騪®¢!
|
||||
include '../../../KOSfuncs.inc'
|
||||
include '../../../load_lib.mac'
|
||||
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||||
include '../../proc32.inc'
|
||||
include '../../macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§ì áᥬ¡«¥à騪®¢!
|
||||
include '../../KOSfuncs.inc'
|
||||
include '../../load_lib.mac'
|
||||
include '../../develop/libraries/box_lib/box_lib.mac'
|
||||
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
|
||||
|
||||
@use_library
|
@@ -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())
|
||||
|
@@ -1,3 +1,9 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
; Text encoded with Code Page 866 - Cyrillic
|
||||
|
||||
|
||||
;--------------------------------------------------------------------
|
||||
; v.016 30.07.2011
|
||||
; Start with open file path
|
||||
@@ -60,11 +66,11 @@ use32
|
||||
_title equ 'HeEd 0.16', 0
|
||||
|
||||
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
|
||||
include '../../../KOSfuncs.inc'
|
||||
include '../../../config.inc' ; for nightbuild
|
||||
include '../../../macros.inc'
|
||||
include '../../libraries/box_lib/trunk/box_lib.mac'
|
||||
include '../../../load_lib.mac'
|
||||
include '../../KOSfuncs.inc'
|
||||
include '../../config.inc' ; for nightbuild
|
||||
include '../../macros.inc'
|
||||
include '../libraries/box_lib/box_lib.mac'
|
||||
include '../../load_lib.mac'
|
||||
|
||||
@use_library
|
||||
;--------------------------------------------------------------------
|
@@ -1,3 +1,9 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
; Text encoded with Code Page 866 - Cyrillic
|
||||
|
||||
|
||||
use32
|
||||
org 0
|
||||
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD><E1AFAE>塞<EFBFBD><EFA5AC><EFBFBD> 䠩<><E4A0A9> <20>ᥣ<EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
|
||||
@@ -11,7 +17,7 @@ include '../../KOSfuncs.inc'
|
||||
include '../../develop/libraries/libs-dev/libimg/libimg.inc'
|
||||
include '../../load_img.inc'
|
||||
include '../../load_lib.mac'
|
||||
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||||
include '../../develop/libraries/box_lib/box_lib.mac'
|
||||
include '../../develop/libraries/TinyGL/asm_fork/kosgl.inc'
|
||||
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
|
||||
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
|
||||
|
@@ -1,3 +1,9 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
; Text encoded with Code Page 866 - Cyrillic
|
||||
|
||||
|
||||
use32
|
||||
org 0
|
||||
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD><E1AFAE>塞<EFBFBD><EFA5AC><EFBFBD> 䠩<><E4A0A9> <20>ᥣ<EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
|
||||
@@ -11,7 +17,7 @@ include '../../KOSfuncs.inc'
|
||||
include '../../develop/libraries/libs-dev/libimg/libimg.inc'
|
||||
include '../../load_img.inc'
|
||||
include '../../load_lib.mac'
|
||||
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||||
include '../../develop/libraries/box_lib/box_lib.mac'
|
||||
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
|
||||
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
|
||||
include 'info_fun_float.inc'
|
||||
|
@@ -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())
|
||||
|
@@ -1,3 +1,6 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
; Author: M. Lisovin
|
||||
; Compile with FASM for Menuet
|
||||
;
|
||||
@@ -15,7 +18,7 @@ use32
|
||||
dd 0x0 , 0x0 ; I_Param , I_Icon
|
||||
|
||||
include 'lang.inc'
|
||||
include '..\..\..\macros.inc'
|
||||
include '..\..\macros.inc'
|
||||
|
||||
START: ; start of execution
|
||||
red:
|
||||
@@ -107,5 +110,3 @@ draw_window:
|
||||
I_END:
|
||||
keyid: rb 1
|
||||
scan_keyid: rb 1
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user