44 Commits

Author SHA1 Message Date
22488330e7 develop/libraries/box_lib: Post-SVN tidy
Some checks failed
Build system / Check kernel codestyle (pull_request) Successful in 24s
Build system / Build (pull_request) Failing after 46s
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-25 11:14:23 +01:00
c8cc441230 develop/open_watcom: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 20s
Build system / Build (pull_request) Successful in 4m19s
- Move source code from `trunk` into program root directory.
- Update build files.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-24 13:38:52 +01:00
515d1e92ad develop/sdk: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 22s
Build system / Build (pull_request) Successful in 4m20s
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-24 13:31:24 +01:00
8afb107ed1 develop/tinypad: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-24 13:21:19 +01:00
e90464a2ae develop/strcode: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-24 13:08:31 +01:00
6045e90d24 develop/scancode: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-24 13:04:57 +01:00
58f45efc24 develop/ktcc: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 24s
Build system / Build (pull_request) Successful in 4m26s
- Move source code from `trunk` into program root directory.
- Update build files and include paths.
- These changes also update the CI build files in `.gitea/workflows/`.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-24 12:12:13 +01:00
46bcaca0b0 develop/keyascii: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-23 17:39:18 +01:00
1d529167e7 develop/heed: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-23 17:29:03 +01:00
1de0212bfb develop/h2d2b: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 1m4s
Build system / Build (pull_request) Successful in 5m3s
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-23 14:23:38 +01:00
b565f7b807 develop/examples/template: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-23 04:15:08 +01:00
f861b2020f develop/examples/rdata: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 23s
Build system / Build (pull_request) Successful in 4m14s
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-23 04:05:54 +01:00
e34ff0ce52 develop/examples/radiobutton: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-23 03:20:02 +01:00
bacbce5313 develop/examples/numcalc: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-23 03:10:49 +01:00
40105bfb3b develop/examples/ir: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 28s
Build system / Build (pull_request) Successful in 4m16s
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-23 00:33:41 +01:00
a58359ba87 develop/examples/thread: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-23 00:31:36 +01:00
78a82bac5d develop/examples/ipc: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-23 00:28:07 +01:00
396ea0f059 develop/examples/hello: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-23 00:18:50 +01:00
5677c7ed46 develop/examples/example3: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-23 00:12:00 +01:00
51799b474a develop/examples/example2: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-23 00:11:11 +01:00
d30ed899ba develop/examples/example: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 22s
Build system / Build (pull_request) Successful in 4m18s
- Move source code from `trunk` into program root directory.
- Update build files.
2025-05-22 14:02:40 +01:00
befabee761 develop/examples/editbox: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-22 13:58:12 +01:00
92b71dacb2 develop/examples/cpuspeed: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-22 13:50:27 +01:00
5db678854f develop/examples/circle: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
2025-05-22 13:47:16 +01:00
7273186d3d develop/examples/checkbox: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 20s
Build system / Build (pull_request) Successful in 4m14s
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-22 12:36:00 +01:00
5a96f6efbb develop/cObj: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files.
2025-05-22 11:41:22 +01:00
d49a6b22ff develop/asciivju: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-22 11:36:12 +01:00
7e63294b5e Post-SVN clean up (#244)
- Move source code from `trunk` into program root directory.
- Fix build and ASM files.
- Translated a few RU comments to en_US.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #244
Reviewed-by: Gleb Zaharov <risdeveau@codrs.ru>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2025-05-20 17:36:10 +02:00
c148987224 Libs/http: Added all delim chars from RFC 3986 (#233)
Original PR: https://github.com/KolibriOS/kolibrios/pull/34
Original issue: https://github.com/KolibriOS/kolibrios/issues/33

Co-authored-by: Sarveshwaar SS <94345639+Saru2003@users.noreply.github.com>

Reviewed-on: https://git.kolibrios.org/KolibriOS/kolibrios/pulls/233
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: IgorA <igora@noreply.localhost>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2025-05-17 19:11:15 +02:00
4550e15838 Magnify: Moved to programs/system
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 29s
Build system / Build (pull_request) Successful in 8m45s
Signed-off-by: Max Logaev <maxlogaev@proton.me>
2025-05-14 21:58:44 +03:00
cc867a0bb8 Magnify: Added visual grid. Changed magnify calc and display logic
- Fully refactored codestyle;
- Changed magnify calculations and display logic,
  now it is similar to Pipet;
- Added proper copyrights;
- Localization to all system languages;
- Removed redundant .bat files;
- Added visual grid (Leency).

Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2025-05-14 21:58:24 +03:00
16a0ef9543 WebView 3.91 (#230)
- fix crash at the end of the page https://menuetos.net/docs.htm;
- improve position of the line under text (and related code)
  for a various font sizes;
- handle params width= and size= of <hr>;
- update acid_0.1.htm page.

Reviewed-on: #230
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-05-05 19:04:52 +02:00
51b150c9aa Kernel: Fixed bug #221 - accept does not fill sockaddr 2025-05-05 18:14:22 +02:00
c18da5afae TinyGL: Added gluDisk. Fixed args in gluCylinder and gluSphere (#223)
TinyGL:
- Fixed setting of `GL_FRONT_AND_BACK` mode;
- Fixed setting of `GL_SPOT_DIRECTION` angle;
- Optimization of drawing triangles and lines;
- Input parameters are adjusted to the OpenGL standard
  in `gluCylinder` and `gluSphere` functions;
- Added `gluDisk` function (the gluDisk function draws
  a disk-shaped quadric figure);
- Optimize function `calc_buf`.

Flag:
- Added lighting.

info3ds, info3ds_u, test_glu0, test_glu1, test_glu2,
textures0, textures1, textures2:
- Updated programs using `gluCylinder` and `gluSphere`.

Reviewed-on: #223
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-05-04 20:00:04 +02:00
cd1c2ce969 Fix docpack shortcut for sysfuncs in text editors
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 28s
Build system / Build (pull_request) Successful in 6m54s
Docpack app has several help files included. Tinypad and CEdit run the
app to show one of sysfuncs.txt/sysfuncr.txt files. The text editors
pass a one-letter argument to specify the text file. It used to be 'f'
for sysfuncs, it has become 'e' recently. Update this one-letter
argument both in tinypad and cedit.

Resolve #216
2025-04-30 01:50:46 +01:00
d7795a8961 Flag: demo program rewritten from C to FASM (#219)
Original source: http://ftp.kolibrios.org/arch/libraries/TinyGL/examples/flag_src.7z

Reviewed-on: #219
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-04-22 15:11:55 +02:00
b948491fb3 Calc+: Fix list buttons UI (#220)
- Fixed list buttons wrong position and size;
- Fixed list buttons logic not working.

Reviewed-on: #220
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2025-04-22 15:01:29 +02:00
03cfdeb50f TinyGL: Bug fixes. info3ds, info3ds_u, vox_tgl: Related changes (#210)
TinyGL:
- The `depth` parameter in the `glClearDepth` function is now `qword` instead of `dword`.
- Fixed bug with z-buffer (the edges were cut off incorrectly, the coordinates in it were from 0 to 1, but should be from -1 to 1)
- Optimized array functions: `glDrawArrays`, `glDrawElements`

info3ds, info3ds_u, vox_tgl:
- Removed unnecessary operations after fixing a bug with the z-buffer.

Reviewed-on: #210
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-04-15 14:40:41 +02:00
e4cd8a4d74 Calc+ v1.0 (#189)
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 26s
Build system / Build (pull_request) Successful in 7m1s
- Bigger fonts
- System colors
- Code refactoring to make UI flexible and more readable
- Move from ISO to IMG
- Add to main menu, add to desktop instead of Calc, remove from App+
- Localization to all system languages
- Source code file is now UTF-8

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #189
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-committed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2025-04-14 19:46:57 +02:00
75b6663ce0 Ftpc: Update (#185)
- fix for bugs with buffers 'remote_list_buf', 'buf_buffer2';
- fix stack leak when navigating files;
- change sorting of folders and files, clean code;
- added option to show|hide log;
- icons are taken from @reshare;
- added icons to the 'disconnect' and 'search' buttons.

Reviewed-on: #185
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-04-10 18:47:13 +02:00
df0c5d8f48 Сharsets: Updated to 0.4.2 (#196)
30.03.2025 - 0.4.0
- Localization for all system languages
- Display all character scales
- Abolity to copy character codes
- Block on charpage 00 for CP866
- New character code half markers
- Navigation using keys (see hotkeys.txt)

03.04.2025 - 0.4.1
- Fixed bug with codes color subscription

04.04.2025 - 0.4.2
- Fixed bug with resetting UTF charpage to zero on double charset swap to CP866
- Improved charpage blocking for CP866 UX
- Improved char codes copying UI

Reviewed-on: #196
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2025-04-10 16:24:11 +02:00
fcb9f49785 flood-it: Fixed buttons position (#193)
Reviewed-on: #193
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-04-03 12:32:18 +02:00
d6c44c6570 WebView 3.9
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 31s
Build system / Build (pull_request) Successful in 6m27s
- new homepages
- fix clash on a wrong <kosicon> number
- set proper internal page sizes
2025-04-03 10:50:04 +02:00
b8a1487bab Fixed menu.dat (ru_RU) after moving the period app
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 22s
Build system / Build (pull_request) Successful in 6m24s
Signed-off-by: Max Logaev <maxlogaev@proton.me>
2025-04-03 11:29:55 +03:00
1629 changed files with 42353 additions and 40363 deletions

View File

@@ -39,7 +39,7 @@ jobs:
id: toolchain-hash id: toolchain-hash
run: | run: |
a=$(find ${{ gitea.workspace }}/programs/develop/cmm/ -type f -print0 | sort -z | xargs -0 sha1sum) 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) 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) 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) e=$(find ${{ gitea.workspace }}/programs/other/kpack/linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
@@ -66,7 +66,7 @@ jobs:
- name: Install TCC - name: Install TCC
if: steps.cache-toolchain.outputs.cache-hit != 'true' if: steps.cache-toolchain.outputs.cache-hit != 'true'
run: | 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 chmod +x /home/autobuild/tools/win32/bin/kos32-tcc
- name: Build and install objconv - name: Build and install objconv
@@ -131,7 +131,7 @@ jobs:
echo "CONFIG_LANG=ru_RU" >> ru_RU.config echo "CONFIG_LANG=ru_RU" >> ru_RU.config
echo "CONFIG_BUILD_TYPE=ru_RU" >> ru_RU.config echo "CONFIG_BUILD_TYPE=ru_RU" >> ru_RU.config
tup variant ru_RU.config tup variant ru_RU.config
# Configure es_ES # Configure es_ES
echo "CONFIG_LANG=es_ES" >> es_ES.config echo "CONFIG_LANG=es_ES" >> es_ES.config
echo "CONFIG_BUILD_TYPE=es_ES" >> es_ES.config echo "CONFIG_BUILD_TYPE=es_ES" >> es_ES.config

View File

@@ -1,3 +1,7 @@
; SPDX-License-Identifier: NOASSERTION
;
format coff format coff
use32 ; Tell compiler to use 32 bit instructions use32 ; Tell compiler to use 32 bit instructions
@@ -7,7 +11,7 @@ include '../../../programs/proc32.inc'
include '../../../programs/macros.inc' include '../../../programs/macros.inc'
purge section,mov,add,sub 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/system/run/trunk/txtbut.inc'
include '../../../programs/dll.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_draw_panel as '_filebrowse_draw'
public fb_mouse as '_filebrowse_mouse' 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_upper as '_ted_but_sumb_upper'
public ted_but_sumb_lover as '_ted_but_sumb_lover' public ted_but_sumb_lover as '_ted_but_sumb_lover'
public ted_but_convert_by_table as '_ted_but_convert_by_table' public ted_but_convert_by_table as '_ted_but_convert_by_table'

View File

@@ -1,152 +1,152 @@
// BOXLIB example (scrollbar, progressbar) // BOXLIB example (scrollbar, progressbar)
// ! without kolibri_gui ! // ! without kolibri_gui !
// Writed by maxcodehack // Writed by maxcodehack
// TCC version is in /programs/develop/ktcc/trunk/samples // TCC version is in /programs/develop/ktcc/samples
#include <kos32sys.h> #include <kos32sys.h>
#include <stdlib.h> #include <stdlib.h>
/// BOXLIB /// BOXLIB
// Modified from C_Layer // Modified from C_Layer
// C_Layer variant I don't like // C_Layer variant I don't like
extern int kolibri_boxlib_init(void); extern int kolibri_boxlib_init(void);
typedef struct __attribute__ ((__packed__)) { typedef struct __attribute__ ((__packed__)) {
uint16_t xsize; uint16_t xsize;
uint16_t xpos; uint16_t xpos;
uint16_t ysize; uint16_t ysize;
uint16_t ypos; uint16_t ypos;
uint32_t btn_height; uint32_t btn_height;
uint32_t type; uint32_t type;
uint32_t max_area; uint32_t max_area;
uint32_t cur_area; uint32_t cur_area;
uint32_t position; uint32_t position;
uint32_t back_color; uint32_t back_color;
uint32_t front_color; uint32_t front_color;
uint32_t line_color; uint32_t line_color;
uint32_t redraw; uint32_t redraw;
uint16_t delta; uint16_t delta;
uint16_t delta2; uint16_t delta2;
uint16_t r_size_x; uint16_t r_size_x;
uint16_t r_start_x; uint16_t r_start_x;
uint16_t r_size_y; uint16_t r_size_y;
uint16_t r_start_y; uint16_t r_start_y;
uint32_t m_pos; uint32_t m_pos;
uint32_t m_pos2; uint32_t m_pos2;
uint32_t m_keys; uint32_t m_keys;
uint32_t run_size; uint32_t run_size;
uint32_t position2; uint32_t position2;
uint32_t work_size; uint32_t work_size;
uint32_t all_redraw; uint32_t all_redraw;
uint32_t ar_offset; uint32_t ar_offset;
} scrollbar; } scrollbar;
extern void (*scrollbar_h_draw)(scrollbar*) __attribute__((__stdcall__)); extern void (*scrollbar_h_draw)(scrollbar*) __attribute__((__stdcall__));
extern void (*scrollbar_h_mouse)(scrollbar*) __attribute__((__stdcall__)); extern void (*scrollbar_h_mouse)(scrollbar*) __attribute__((__stdcall__));
extern void (*scrollbar_v_draw)(scrollbar*) __attribute__((__stdcall__)); extern void (*scrollbar_v_draw)(scrollbar*) __attribute__((__stdcall__));
extern void (*scrollbar_v_mouse)(scrollbar*) __attribute__((__stdcall__)); extern void (*scrollbar_v_mouse)(scrollbar*) __attribute__((__stdcall__));
typedef struct { typedef struct {
unsigned int value; unsigned int value;
unsigned int left; unsigned int left;
unsigned int top; unsigned int top;
unsigned int width; unsigned int width;
unsigned int height; unsigned int height;
unsigned int style; unsigned int style;
unsigned int min; unsigned int min;
unsigned int max; unsigned int max;
unsigned int back_color; unsigned int back_color;
unsigned int progress_color; unsigned int progress_color;
unsigned int frame_color; unsigned int frame_color;
} progressbar; } progressbar;
extern void (*progressbar_draw)(progressbar *) __attribute__((__stdcall__)); extern void (*progressbar_draw)(progressbar *) __attribute__((__stdcall__));
extern void (*progressbar_progress)(progressbar *) __attribute__((__stdcall__)); extern void (*progressbar_progress)(progressbar *) __attribute__((__stdcall__));
/// BOXLIB /// BOXLIB
#define evReDraw 1 #define evReDraw 1
#define evKey 2 #define evKey 2
#define evButton 3 #define evButton 3
#define evExit 4 #define evExit 4
#define evDesktop 5 #define evDesktop 5
#define evMouse 6 #define evMouse 6
#define evIPC 7 #define evIPC 7
#define evNetwork 8 #define evNetwork 8
#define evDebug 9 #define evDebug 9
#define WIN_W 640 #define WIN_W 640
#define WIN_H 563 #define WIN_H 563
uint32_t wheels; uint32_t wheels;
char* title = "Boxlib example"; char* title = "Boxlib example";
int win_bg_color = 0x858585; 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}; 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}; progressbar pg = {0, 10, 10, 270, 35, 1, 0, 200, 0xB4B4B4, 0x2728FF, 0xA9A9A9};
void draw_window(){ void draw_window(){
BeginDraw(); BeginDraw();
DrawWindow(215,100,WIN_W,WIN_H,title,win_bg_color,0x34); DrawWindow(215,100,WIN_W,WIN_H,title,win_bg_color,0x34);
scrollbar_v_draw(&scroll); scrollbar_v_draw(&scroll);
progressbar_draw(&pg); progressbar_draw(&pg);
EndDraw(); EndDraw();
} }
//// EVENTMASK //// EVENTMASK
#define EVM_REDRAW 1 #define EVM_REDRAW 1
#define EVM_KEY 2 #define EVM_KEY 2
#define EVM_BUTTON 4 #define EVM_BUTTON 4
#define EVM_EXIT 8 #define EVM_EXIT 8
#define EVM_BACKGROUND 16 #define EVM_BACKGROUND 16
#define EVM_MOUSE 32 #define EVM_MOUSE 32
#define EVM_IPC 64 #define EVM_IPC 64
#define EVM_STACK 128 #define EVM_STACK 128
#define EVM_DEBUG 256 #define EVM_DEBUG 256
#define EVM_STACK2 512 #define EVM_STACK2 512
#define EVM_MOUSE_FILTER 0x80000000 #define EVM_MOUSE_FILTER 0x80000000
#define EVM_CURSOR_FILTER 0x40000000 #define EVM_CURSOR_FILTER 0x40000000
//// EVENTMASK //// EVENTMASK
int main() int main()
{ {
kolibri_boxlib_init(); kolibri_boxlib_init();
set_wanted_events_mask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); set_wanted_events_mask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
while(1) while(1)
{ {
switch(GetOsEvent()) switch(GetOsEvent())
{ {
case evButton: case evButton:
if (get_os_button() == 1) exit(0); if (get_os_button() == 1) exit(0);
break; break;
case evKey: case evKey:
get_key(); get_key();
break; break;
case evReDraw: case evReDraw:
draw_window(); draw_window();
break; break;
case evMouse: case evMouse:
scrollbar_v_mouse(&scroll); scrollbar_v_mouse(&scroll);
// Wheel scrolling // Wheel scrolling
// Quite unstable // Quite unstable
/* /*
int scroll_strong = 40; int scroll_strong = 40;
wheels = GetMouseWheels(); wheels = GetMouseWheels();
if(wheels & 0xFFFF) if(wheels & 0xFFFF)
{ {
if((short)wheels > 0 && scroll.position < scroll.max_area - scroll_strong) if((short)wheels > 0 && scroll.position < scroll.max_area - scroll_strong)
scroll.position += scroll_strong; scroll.position += scroll_strong;
else if((short)wheels < 0 && scroll.position > 0) else if((short)wheels < 0 && scroll.position > 0)
scroll.position -= scroll_strong; scroll.position -= scroll_strong;
scrollbar_v_draw(&scroll); scrollbar_v_draw(&scroll);
} }
*/ */
pg.value = scroll.position; pg.value = scroll.position;
progressbar_draw(&pg); progressbar_draw(&pg);
break; break;
} }
} }
} }

View File

@@ -49,8 +49,6 @@ img_files = {
{"MEDIA/IMGF/INVSOL.OBJ", "common/media/ImgF/invSol.obj"}, {"MEDIA/IMGF/INVSOL.OBJ", "common/media/ImgF/invSol.obj"},
{"MEDIA/PIXIESKN.PNG", SRC_PROGS .. "/cmm/pixie2/pixieskn.png"}, {"MEDIA/PIXIESKN.PNG", SRC_PROGS .. "/cmm/pixie2/pixieskn.png"},
{"NETWORK/FTPC.INI", SRC_PROGS .. "/network/ftpc/ftpc.ini"}, {"NETWORK/FTPC.INI", SRC_PROGS .. "/network/ftpc/ftpc.ini"},
{"NETWORK/FTPC_SYS.PNG", SRC_PROGS .. "/network/ftpc/ftpc_sys.png"},
{"NETWORK/FTPC_NOD.PNG", SRC_PROGS .. "/network/ftpc/ftpc_nod.png"},
{"NETWORK/FTPD.INI", "common/network/ftpd.ini"}, {"NETWORK/FTPD.INI", "common/network/ftpd.ini"},
{"NETWORK/KNMAP", "common/network/knmap"}, {"NETWORK/KNMAP", "common/network/knmap"},
{"NETWORK/USERS.INI", "common/network/users.ini"}, {"NETWORK/USERS.INI", "common/network/users.ini"},
@@ -75,7 +73,7 @@ img_files = {
-- For russian build, add russian-only files. -- For russian build, add russian-only files.
if build_type == "ru_RU" then tup.append_table(img_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"}, {"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy_ru"},
{"GAMES/BASEKURS.KLA", build_type .. "/games/basekurs.kla"}, {"GAMES/BASEKURS.KLA", build_type .. "/games/basekurs.kla"},
{"File Managers/KFAR.INI", build_type .. "/File Managers/kfar.ini"}, {"File Managers/KFAR.INI", build_type .. "/File Managers/kfar.ini"},
@@ -86,7 +84,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, {
{"SETTINGS/SYSPANEL.INI", "ru_RU/settings/syspanel.ini"}, {"SETTINGS/SYSPANEL.INI", "ru_RU/settings/syspanel.ini"},
}) elseif build_type == "en_US" then tup.append_table(img_files, { }) elseif build_type == "en_US" then tup.append_table(img_files, {
{"WELCOME.HTM", VAR_DATA .. "/" .. build_type .. "/welcome.htm.kpack"}, {"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"}, {"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy"},
{"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
{"GAMES/DESCENT", "common/games/descent"}, {"GAMES/DESCENT", "common/games/descent"},
@@ -95,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/MYKEY.INI", SRC_PROGS .. "/system/MyKey/trunk/mykey.ini"},
{"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"}, {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
}) elseif build_type == "es_ES" then tup.append_table(img_files, { }) 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"}, {"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy"},
{"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
{"GAMES/DESCENT", "common/games/descent"}, {"GAMES/DESCENT", "common/games/descent"},
@@ -104,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/MYKEY.INI", SRC_PROGS .. "/system/MyKey/trunk/mykey.ini"},
{"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"}, {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
}) elseif build_type == "it_IT" then tup.append_table(img_files, { }) 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"}, {"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy"},
{"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
{"GAMES/DESCENT", "common/games/descent"}, {"GAMES/DESCENT", "common/games/descent"},
@@ -113,7 +111,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, {
{"SETTINGS/GAMES.INI", "common/settings/games.ini"}, {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
{"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"}, {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
}) else tup.append_table(img_files, { }) 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"}, {"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy"},
{"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
{"GAMES/DESCENT", "common/games/descent"}, {"GAMES/DESCENT", "common/games/descent"},
@@ -185,20 +183,20 @@ extra_files = {
{"kolibrios/develop/oberon07/doc/", "../programs/develop/oberon07/doc/*"}, {"kolibrios/develop/oberon07/doc/", "../programs/develop/oberon07/doc/*"},
{"kolibrios/develop/oberon07/lib/KolibriOS/", "../programs/develop/oberon07/lib/KolibriOS/*"}, {"kolibrios/develop/oberon07/lib/KolibriOS/", "../programs/develop/oberon07/lib/KolibriOS/*"},
{"kolibrios/develop/oberon07/samples/", SRC_PROGS .. "/develop/oberon07/samples/*"}, {"kolibrios/develop/oberon07/samples/", SRC_PROGS .. "/develop/oberon07/samples/*"},
{"kolibrios/develop/tcc/lib/", SRC_PROGS .. "/develop/ktcc/trunk/bin/lib/*"}, {"kolibrios/develop/tcc/lib/", SRC_PROGS .. "/develop/ktcc/bin/lib/*"},
{"kolibrios/develop/tcc/include/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/include/*"}, {"kolibrios/develop/tcc/include/", SRC_PROGS .. "/develop/ktcc/libc.obj/include/*"},
{"kolibrios/develop/tcc/include/clayer/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/include/clayer/*"}, {"kolibrios/develop/tcc/include/clayer/", SRC_PROGS .. "/develop/ktcc/libc.obj/include/clayer/*"},
{"kolibrios/develop/tcc/include/cryptal/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/include/cryptal/*"}, {"kolibrios/develop/tcc/include/cryptal/", SRC_PROGS .. "/develop/ktcc/libc.obj/include/cryptal/*"},
{"kolibrios/develop/tcc/include/sys/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/include/sys/*"}, {"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/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/libc.obj/samples/*.c"},
{"kolibrios/develop/tcc/samples/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/samples/*.sh"}, {"kolibrios/develop/tcc/samples/", SRC_PROGS .. "/develop/ktcc/libc.obj/samples/*.sh"},
{"kolibrios/develop/tcc/samples/clayer/", SRC_PROGS .. "/develop/ktcc/trunk/libc.obj/samples/clayer/*"}, {"kolibrios/develop/tcc/samples/clayer/", SRC_PROGS .. "/develop/ktcc/libc.obj/samples/clayer/*"},
{"kolibrios/develop/utils/SPEDump", SRC_PROGS .. "/develop/SPEDump/SPEDump.kex"}, {"kolibrios/develop/utils/SPEDump", SRC_PROGS .. "/develop/SPEDump/SPEDump.kex"},
{"kolibrios/emul/", "common/emul/*"}, {"kolibrios/emul/", "common/emul/*"},
{"kolibrios/emul/dosbox/", "common/emul/DosBox/*"}, {"kolibrios/emul/dosbox/", "common/emul/DosBox/*"},
{"kolibrios/emul/e80/readme.txt", SRC_PROGS .. "/emulator/e80/trunk/readme.txt"}, {"kolibrios/emul/e80/readme.txt", SRC_PROGS .. "/emulator/e80/readme.txt"},
{"kolibrios/emul/e80/keyboard.png", SRC_PROGS .. "/emulator/e80/trunk/keyboard.png"}, {"kolibrios/emul/e80/keyboard.png", SRC_PROGS .. "/emulator/e80/keyboard.png"},
{"kolibrios/emul/fceu/fceu", SRC_PROGS .. "/emulator/fceu/fceu"}, {"kolibrios/emul/fceu/fceu", SRC_PROGS .. "/emulator/fceu/fceu"},
{"kolibrios/emul/fceu/FCEU ReadMe.txt", SRC_PROGS .. "/emulator/fceu/FCEU ReadMe.txt"}, {"kolibrios/emul/fceu/FCEU ReadMe.txt", SRC_PROGS .. "/emulator/fceu/FCEU ReadMe.txt"},
{"kolibrios/emul/chip8/chip8", VAR_PROGS .. "/emulator/chip8/chip8"}, {"kolibrios/emul/chip8/chip8", VAR_PROGS .. "/emulator/chip8/chip8"},
@@ -286,7 +284,7 @@ extra_files = {
{"kolibrios/netsurf/res/", "common/network/netsurf/res/*"}, {"kolibrios/netsurf/res/", "common/network/netsurf/res/*"},
{"kolibrios/res/skins/", "../skins/authors.txt"}, {"kolibrios/res/skins/", "../skins/authors.txt"},
{"kolibrios/res/templates/", "common/templates/*"}, {"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/templates/NES/", "common/templates/NES/*"},
{"kolibrios/res/wallpapers/", "common/wallpapers/*"}, {"kolibrios/res/wallpapers/", "common/wallpapers/*"},
{"kolibrios/res/system/", build_type .. "/settings/kolibri.lbl"}, {"kolibrios/res/system/", build_type .. "/settings/kolibri.lbl"},
@@ -341,7 +339,7 @@ if build_type == "ru_RU" then tup.append_table(extra_files, {
{"kolibrios/games/WHOWTBAM/", build_type .. "/games/appdata.dat"}, {"kolibrios/games/WHOWTBAM/", build_type .. "/games/appdata.dat"},
{"kolibrios/media/zsea/zsea_keys.txt", SRC_PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"}, {"kolibrios/media/zsea/zsea_keys.txt", SRC_PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
{"kolibrios/res/guide/", build_type .. "/docs/guide/*"}, {"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, { }) else tup.append_table(extra_files, {
{"Docs/Config.txt", build_type .. "/docs/Config.txt"}, {"Docs/Config.txt", build_type .. "/docs/Config.txt"},
{"Docs/Copying.txt", build_type .. "/docs/Copying.txt"}, {"Docs/Copying.txt", build_type .. "/docs/Copying.txt"},
@@ -355,7 +353,7 @@ if build_type == "ru_RU" then tup.append_table(extra_files, {
{"kolibrios/games/ataka", "common/games/ataka/ataka_en"}, {"kolibrios/games/ataka", "common/games/ataka/ataka_en"},
{"kolibrios/games/sstartrek/SStarTrek", "common/games/sstartrek/SStarTrek_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/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 }) end
--[[ --[[
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso. Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
@@ -411,7 +409,8 @@ tup.append_table(img_files, {
{"HACONFIG", VAR_PROGS .. "/other/ha/HACONFIG"}, {"HACONFIG", VAR_PROGS .. "/other/ha/HACONFIG"},
{"ACLOCK", VAR_PROGS .. "/demos/aclock/aclock"}, {"ACLOCK", VAR_PROGS .. "/demos/aclock/aclock"},
{"APM", VAR_PROGS .. "/system/apm/apm"}, {"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"}, {"CALENDAR", VAR_PROGS .. "/system/calendar/trunk/calendar"},
{"COLRDIAL", VAR_PROGS .. "/system/colrdial/color_dialog"}, {"COLRDIAL", VAR_PROGS .. "/system/colrdial/color_dialog"},
{"CROPFLAT", VAR_PROGS .. "/system/cropflat/cropflat"}, {"CROPFLAT", VAR_PROGS .. "/system/cropflat/cropflat"},
@@ -429,21 +428,21 @@ tup.append_table(img_files, {
{"KPACK", VAR_PROGS .. "/other/kpack/trunk/kpack"}, {"KPACK", VAR_PROGS .. "/other/kpack/trunk/kpack"},
{"LAUNCHER", VAR_PROGS .. "/system/launcher/trunk/launcher"}, {"LAUNCHER", VAR_PROGS .. "/system/launcher/trunk/launcher"},
{"LOADDRV", VAR_PROGS .. "/system/loaddrv/loaddrv"}, {"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"}, {"MGB", VAR_PROGS .. "/testing/mgb/trunk/mgb"},
{"MOUSEMUL", VAR_PROGS .. "/system/mousemul/trunk/mousemul"}, {"MOUSEMUL", VAR_PROGS .. "/system/mousemul/trunk/mousemul"},
{"MADMOUSE", VAR_PROGS .. "/other/madmouse/madmouse"}, {"MADMOUSE", VAR_PROGS .. "/other/madmouse/madmouse"},
{"MYKEY", VAR_PROGS .. "/system/MyKey/trunk/MyKey"}, {"MYKEY", VAR_PROGS .. "/system/MyKey/trunk/MyKey"},
{"PCIDEV", VAR_PROGS .. "/testing/pcidev/trunk/PCIDEV"}, {"PCIDEV", VAR_PROGS .. "/testing/pcidev/trunk/PCIDEV"},
{"RDSAVE", VAR_PROGS .. "/system/rdsave/trunk/rdsave"}, {"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"}, {"SEARCHAP", VAR_PROGS .. "/system/searchap/searchap"},
{"SCRSHOOT", VAR_PROGS .. "/media/scrshoot/scrshoot"}, {"SCRSHOOT", VAR_PROGS .. "/media/scrshoot/scrshoot"},
{"SETUP", VAR_PROGS .. "/system/setup/trunk/setup"}, {"SETUP", VAR_PROGS .. "/system/setup/trunk/setup"},
{"SKINCFG", VAR_PROGS .. "/system/skincfg/trunk/skincfg"}, {"SKINCFG", VAR_PROGS .. "/system/skincfg/trunk/skincfg"},
{"TERMINAL", VAR_PROGS .. "/system/terminal/terminal"}, {"TERMINAL", VAR_PROGS .. "/system/terminal/terminal"},
{"TEST", VAR_PROGS .. "/testing/protection/trunk/test"}, {"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"}, {"TINFO", VAR_PROGS .. "/system/tinfo/tinfo"},
{"TIMER", VAR_PROGS .. "/other/Timer/Timer"}, {"TIMER", VAR_PROGS .. "/other/Timer/Timer"},
{"UNZ", VAR_PROGS .. "/fs/unz/unz"}, {"UNZ", VAR_PROGS .. "/fs/unz/unz"},
@@ -472,21 +471,21 @@ tup.append_table(img_files, {
{"DEVELOP/DBGBOARD", VAR_PROGS .. "/system/dbgboard/dbgboard"}, {"DEVELOP/DBGBOARD", VAR_PROGS .. "/system/dbgboard/dbgboard"},
{"DEVELOP/CEDIT", SRC_PROGS .. "/develop/cedit/CEDIT"}, {"DEVELOP/CEDIT", SRC_PROGS .. "/develop/cedit/CEDIT"},
{"DEVELOP/CHARSETS", VAR_PROGS .. "/develop/charsets/charsets"}, {"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/ENTROPYV", VAR_PROGS .. "/develop/entropyview/entropyview"},
{"DEVELOP/FASM", VAR_PROGS .. "/develop/fasm/1.73/fasm"}, {"DEVELOP/FASM", VAR_PROGS .. "/develop/fasm/1.73/fasm"},
{"DEVELOP/GENFILES", VAR_PROGS .. "/testing/genfiles/GenFiles"}, {"DEVELOP/GENFILES", VAR_PROGS .. "/testing/genfiles/GenFiles"},
{"DEVELOP/PIPET", VAR_PROGS .. "/other/pipet/pipet"}, {"DEVELOP/PIPET", VAR_PROGS .. "/other/pipet/pipet"},
{"DEVELOP/H2D2B", VAR_PROGS .. "/develop/h2d2b/trunk/h2d2b"}, {"DEVELOP/H2D2B", VAR_PROGS .. "/develop/h2d2b/h2d2b"},
{"DEVELOP/HEED", VAR_PROGS .. "/develop/heed/trunk/heed"}, {"DEVELOP/HEED", VAR_PROGS .. "/develop/heed/heed"},
{"DEVELOP/MTDBG", VAR_PROGS .. "/develop/mtdbg/mtdbg"}, {"DEVELOP/MTDBG", VAR_PROGS .. "/develop/mtdbg/mtdbg"},
{"DEVELOP/MSTATE", VAR_PROGS .. "/develop/mstate/mstate"}, {"DEVELOP/MSTATE", VAR_PROGS .. "/develop/mstate/mstate"},
{"DEVELOP/SCANCODE", VAR_PROGS .. "/develop/scancode/trunk/scancode"}, {"DEVELOP/SCANCODE", VAR_PROGS .. "/develop/scancode/scancode"},
{"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/trunk/circle"}, {"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/circle"},
{"DEVELOP/EXAMPLES/COLORREF", VAR_PROGS .. "/demos/colorref/trunk/colorref"}, {"DEVELOP/EXAMPLES/COLORREF", VAR_PROGS .. "/demos/colorref/trunk/colorref"},
{"DEVELOP/EXAMPLES/CONGET", VAR_PROGS .. "/develop/libraries/console_coff/examples/test_gets"}, {"DEVELOP/EXAMPLES/CONGET", VAR_PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
{"DEVELOP/EXAMPLES/CSLIDE", VAR_PROGS .. "/demos/cslide/trunk/cslide"}, {"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/KFAR", VAR_PROGS .. "/fs/kfar/trunk/kfar"},
{"File Managers/OPENDIAL", VAR_PROGS .. "/fs/opendial/opendial"}, {"File Managers/OPENDIAL", VAR_PROGS .. "/fs/opendial/opendial"},
{"LOD", VAR_PROGS .. "/fs/lod/lod"}, {"LOD", VAR_PROGS .. "/fs/lod/lod"},
@@ -507,7 +506,7 @@ tup.append_table(img_files, {
{"GAMES/TETRIS", VAR_PROGS .. "/games/tetris/tetris"}, {"GAMES/TETRIS", VAR_PROGS .. "/games/tetris/tetris"},
{"GAMES/C4", VAR_PROGS .. "/games/c4/c4"}, {"GAMES/C4", VAR_PROGS .. "/games/c4/c4"},
{"LIB/ARCHIVER.OBJ", VAR_PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"}, {"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/BUF2D.OBJ", VAR_PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
{"LIB/CONSOLE.OBJ", VAR_PROGS .. "/develop/libraries/console_coff/console.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"}, {"LIB/CNV_PNG.OBJ", VAR_PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
@@ -524,10 +523,10 @@ tup.append_table(img_files, {
{"LIB/RASTERWORKS.OBJ", VAR_PROGS .. "/develop/libraries/fontRasterWorks_unicode/RasterWorks.obj"}, {"LIB/RASTERWORKS.OBJ", VAR_PROGS .. "/develop/libraries/fontRasterWorks_unicode/RasterWorks.obj"},
{"LIB/SORT.OBJ", VAR_PROGS .. "/develop/libraries/sorter/sort.obj"}, {"LIB/SORT.OBJ", VAR_PROGS .. "/develop/libraries/sorter/sort.obj"},
{"LIB/TINYGL.OBJ", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.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/FILLSCR", VAR_PROGS .. "/media/FillScr/fillscr"},
{"MEDIA/KIV", VAR_PROGS .. "/media/kiv/trunk/kiv"}, {"MEDIA/KIV", VAR_PROGS .. "/media/kiv/kiv"},
{"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/trunk/listplay"}, {"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/listplay"},
{"MEDIA/MIDAMP", VAR_PROGS .. "/media/midamp/trunk/midamp"}, {"MEDIA/MIDAMP", VAR_PROGS .. "/media/midamp/trunk/midamp"},
{"MEDIA/MP3INFO", VAR_PROGS .. "/media/mp3info/mp3info"}, {"MEDIA/MP3INFO", VAR_PROGS .. "/media/mp3info/mp3info"},
{"MEDIA/PALITRA", VAR_PROGS .. "/media/palitra/trunk/palitra"}, {"MEDIA/PALITRA", VAR_PROGS .. "/media/palitra/trunk/palitra"},
@@ -605,6 +604,7 @@ tup.append_table(extra_files, {
{"kolibrios/3D/voxel_utilites/VOX_CREATOR" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_creator"}, {"kolibrios/3D/voxel_utilites/VOX_CREATOR" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_creator"},
{"kolibrios/3D/voxel_utilites/VOX_MOVER" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_mover"}, {"kolibrios/3D/voxel_utilites/VOX_MOVER" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_mover"},
{"kolibrios/3D/voxel_utilites/VOX_TGL" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_tgl"}, {"kolibrios/3D/voxel_utilites/VOX_TGL" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_tgl"},
{"kolibrios/demos/flag", VAR_PROGS .. "/demos/flag/flag"},
{"kolibrios/demos/life3", VAR_PROGS .. "/games/life3/life3"}, {"kolibrios/demos/life3", VAR_PROGS .. "/games/life3/life3"},
{"kolibrios/demos/qjulia", VAR_PROGS .. "/demos/qjulia/trunk/qjulia"}, {"kolibrios/demos/qjulia", VAR_PROGS .. "/demos/qjulia/trunk/qjulia"},
{"kolibrios/develop/koldbg", VAR_PROGS .. "/develop/koldbg/koldbg"}, {"kolibrios/develop/koldbg", VAR_PROGS .. "/develop/koldbg/koldbg"},
@@ -628,7 +628,6 @@ tup.append_table(extra_files, {
{"kolibrios/media/zsea/plugins/rotate.obj", VAR_PROGS .. "/media/zsea/plugins/rotate/rotate.obj"}, {"kolibrios/media/zsea/plugins/rotate.obj", VAR_PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
{"kolibrios/media/zsea/plugins/scaling.obj", VAR_PROGS .. "/media/zsea/plugins/scaling/scaling.obj"}, {"kolibrios/media/zsea/plugins/scaling.obj", VAR_PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
{"kolibrios/utils/AMDtemp", VAR_PROGS .. "/system/amd_temp_view/AMDtemp"}, {"kolibrios/utils/AMDtemp", VAR_PROGS .. "/system/amd_temp_view/AMDtemp"},
{"kolibrios/utils/calcplus", VAR_PROGS .. "/other/calcplus/calcplus"},
{"kolibrios/utils/kfm/kfm", VAR_PROGS .. "/fs/kfm/trunk/kfm"}, {"kolibrios/utils/kfm/kfm", VAR_PROGS .. "/fs/kfm/trunk/kfm"},
{"kolibrios/utils/tedit/t_edit", VAR_PROGS .. "/other/t_edit/t_edit"}, {"kolibrios/utils/tedit/t_edit", VAR_PROGS .. "/other/t_edit/t_edit"},
{"kolibrios/3D/blocks/block.bin", VAR_PROGS .. "/bcc32/games/blocks/block.bin"} {"kolibrios/3D/blocks/block.bin", VAR_PROGS .. "/bcc32/games/blocks/block.bin"}
@@ -642,7 +641,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, {
}) end }) end
if build_type == "ru_RU" then tup.append_table(extra_files, { 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"}, {"kolibrios/games/Dungeons/Dungeons", VAR_PROGS .. "/games/Dungeons/Dungeons"},
}) end }) end
@@ -746,14 +745,14 @@ if tup.getconfig('NO_GCC') ~= 'full' then
tup.append_table(img_files, { tup.append_table(img_files, {
{"GAMES/REVERSI", VAR_PROGS .. "/games/reversi/reversi"}, {"GAMES/REVERSI", VAR_PROGS .. "/games/reversi/reversi"},
{"LIB/BASE64.OBJ", VAR_PROGS .. "/develop/libraries/base64/base64.obj"}, {"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/ICONV.OBJ", VAR_PROGS .. "/develop/libraries/iconv/iconv.obj"},
-- {"LIB/MTAR.OBJ", VAR_PROGS .. "/develop/libraries/microtar/mtar.obj"}, -- {"LIB/MTAR.OBJ", VAR_PROGS .. "/develop/libraries/microtar/mtar.obj"},
}) })
tup.append_table(extra_files, { tup.append_table(extra_files, {
-- {"kolibrios/3D/cubeline", VAR_PROGS .. "/demos/cubeline/trunk/cubeline"}, -- {"kolibrios/3D/cubeline", VAR_PROGS .. "/demos/cubeline/trunk/cubeline"},
{"kolibrios/3D/gears", VAR_PROGS .. "/demos/gears/gears"}, {"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/emul/uarm/", VAR_CONTRIB .. "/other/uarm/uARM"},
{"kolibrios/games/2048", VAR_PROGS .. "/games/2048/2048"}, {"kolibrios/games/2048", VAR_PROGS .. "/games/2048/2048"},
{"kolibrios/games/checkers", VAR_PROGS .. "/games/checkers/checkers"}, {"kolibrios/games/checkers", VAR_PROGS .. "/games/checkers/checkers"},
@@ -773,7 +772,7 @@ tup.append_table(extra_files, {
{"kolibrios/utils/minizip/minizip", VAR_PROGS .. "/fs/minizip/minizip"}, {"kolibrios/utils/minizip/minizip", VAR_PROGS .. "/fs/minizip/minizip"},
{"kolibrios/utils/minizip/miniunz", VAR_PROGS .. "/fs/minizip/miniunz"}, {"kolibrios/utils/minizip/miniunz", VAR_PROGS .. "/fs/minizip/miniunz"},
{"kolibrios/develop/c--/c--", VAR_PROGS .. "/develop/cmm/cmm"}, {"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/sqlite3/sqlite3", VAR_CONTRIB .. "/sdk/sources/sqlite3/shell/sqlite3"},
{"kolibrios/develop/utils/objconv", VAR_PROGS .. "/develop/objconv/objconv"}, {"kolibrios/develop/utils/objconv", VAR_PROGS .. "/develop/objconv/objconv"},
{"kolibrios/drivers/sensors/k10temp.sys", VAR_DRVS .. "/sensors/k10temp/k10temp.sys"}, {"kolibrios/drivers/sensors/k10temp.sys", VAR_DRVS .. "/sensors/k10temp/k10temp.sys"},

View File

@@ -29,7 +29,6 @@ Dicty=/k/utils/DICTY.KEX,79
fNav=/k/utils/fNav/fNav,93 fNav=/k/utils/fNav/fNav,93
CncEditor=/k/utils/cnc_editor/cnc_editor,15 CncEditor=/k/utils/cnc_editor/cnc_editor,15
Life=/k/demos/life2,13 Life=/k/demos/life2,13
Calc+=/k/utils/calcplus,4
TinyBasic=/k/develop/TinyBasic/TinyBasic,91 TinyBasic=/k/develop/TinyBasic/TinyBasic,91
THashView=/k/utils/thashview,124 THashView=/k/utils/thashview,124
Notes=/k/utils/notes,117 Notes=/k/utils/notes,117

View File

@@ -235,8 +235,8 @@ ico=58
x=68 x=68
y=68 y=68
[21] [21]
name=CALC name=CALC+
path=CALC path=CALCPLUS
param= param=
ico=4 ico=4
x=204 x=204

View File

@@ -92,6 +92,7 @@
59 Screen keyboard |zkey 59 Screen keyboard |zkey
#10 **** DATA PROCESSING #10 **** DATA PROCESSING
16 Calculator |calc 16 Calculator |calc
16 Calculator+ |calcplus
03 Tinypad |tinypad 03 Tinypad |tinypad
28 CodeEdit |develop/cedit 28 CodeEdit |develop/cedit
21 Table processor |table 21 Table processor |table

View File

@@ -235,8 +235,8 @@ ico=58
x=68 x=68
y=68 y=68
[21] [21]
name=CALC name=CALC+
path=CALC path=CALCPLUS
param= param=
ico=4 ico=4
x=204 x=204

View File

@@ -96,6 +96,7 @@
24 NDN * |/kolibrios/utils/ndn/ndn 24 NDN * |/kolibrios/utils/ndn/ndn
#11 **** PROCESO DE DATOS #11 **** PROCESO DE DATOS
16 Calculadora |calc 16 Calculadora |calc
16 Calculadora+ |calcplus
16 Tinypad |tinypad 16 Tinypad |tinypad
16 CodeEdit |develop/cedit 16 CodeEdit |develop/cedit
16 Procesador de tablas |table 16 Procesador de tablas |table

View File

@@ -235,8 +235,8 @@ ico=58
x=68 x=68
y=68 y=68
[21] [21]
name=CALC name=CALC+
path=CALC path=CALCPLUS
param= param=
ico=4 ico=4
x=204 x=204

View File

@@ -80,6 +80,7 @@
65 NDN * |/kolibrios/utils/ndn/ndn 65 NDN * |/kolibrios/utils/ndn/ndn
#11 **** DATA PROCESSING **** #11 **** DATA PROCESSING ****
16 Kalkulaator |calc 16 Kalkulaator |calc
16 Kalkulaator+ |calcplus
16 Teksti redaktor |tinypad 16 Teksti redaktor |tinypad
16 CodeEdit |develop/cedit 16 CodeEdit |develop/cedit
16 Tabelarvutus |table 16 Tabelarvutus |table

View File

@@ -235,8 +235,8 @@ ico=58
x=68 x=68
y=68 y=68
[21] [21]
name=CALC name=CALC+
path=CALC path=CALCPLUS
param= param=
ico=4 ico=4
x=204 x=204

View File

@@ -79,6 +79,7 @@
65 NDN * |/kolibrios/utils/ndn/ndn 65 NDN * |/kolibrios/utils/ndn/ndn
#11 **** DATA PROCESSING #11 **** DATA PROCESSING
16 Calcolatrice |calc 16 Calcolatrice |calc
16 Calcolatrice+ |calcplus
16 Tinypad |tinypad 16 Tinypad |tinypad
16 CodeEdit |develop/cedit 16 CodeEdit |develop/cedit
16 Table Processor |table 16 Table Processor |table

View File

@@ -235,8 +235,8 @@ ico=58
x=68 x=68
y=68 y=68
[21] [21]
name=CALC name=CALC+
path=CALC path=CALCPLUS
param= param=
ico=4 ico=4
x=204 x=204

View File

@@ -90,6 +90,7 @@
59 <20><><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |zkey 59 <20><><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |zkey
#10 **** <20><><EFBFBD><EFBFBD> #10 **** <20><><EFBFBD><EFBFBD>
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |calc 16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |calc
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+ |calcplus
03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Tinypad |tinypad 03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Tinypad |tinypad
28 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CodeEdit |develop/cedit 28 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CodeEdit |develop/cedit
21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |table 21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |table
@@ -119,7 +120,7 @@
45 <20><><EFBFBD><EFBFBD><20><><EFBFBD><E0A8AD><EFBFBD><EFBFBD><EFBFBD> |easyshot 45 <20><><EFBFBD><EFBFBD><20><><EFBFBD><E0A8AD><EFBFBD><EFBFBD><EFBFBD> |easyshot
29 FB2 <20><><EFBFBD><E2A0AB> |fb2read 29 FB2 <20><><EFBFBD><E2A0AB> |fb2read
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> |aclock 16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> |aclock
21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |period 21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |/kolibrios/utils/period
59 <20><EFBFBD><E0A5AD><EFBFBD><EFBFBD> KJ|ABuIIIA |games/klavisha 59 <20><EFBFBD><E0A5AD><EFBFBD><EFBFBD> KJ|ABuIIIA |games/klavisha
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> |demos/bcdclk 16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> |demos/bcdclk
53 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |timer 53 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |timer

View File

@@ -1,7 +1,7 @@
KTCC=kos32-tcc KTCC=kos32-tcc
KPACK = kpack KPACK = kpack
KLIBC = ../../../programs/develop/ktcc/trunk/libc.obj KLIBC = ../../../programs/develop/ktcc/libc.obj
CFLAGS = -I $(KLIBC)/include CFLAGS = -I $(KLIBC)/include
LDFLAGS = -nostdlib -L$(KLIBC)/lib $(KLIBC)/lib/crt0.o LDFLAGS = -nostdlib -L$(KLIBC)/lib $(KLIBC)/lib/crt0.o

View File

@@ -668,6 +668,8 @@ socket_accept:
DEBUGF DEBUG_NETWORK_VERBOSE, "SOCKET_accept: socknum=%u sockaddr=%x length=%u\n", ecx, edx, esi DEBUGF DEBUG_NETWORK_VERBOSE, "SOCKET_accept: socknum=%u sockaddr=%x length=%u\n", ecx, edx, esi
push edx esi
call socket_num_to_ptr call socket_num_to_ptr
test eax, eax test eax, eax
jz .invalid jz .invalid
@@ -696,6 +698,24 @@ socket_accept:
mov ebx, [ebx + APPDATA.tid] mov ebx, [ebx + APPDATA.tid]
mov [eax + SOCKET.TID], ebx mov [eax + SOCKET.TID], ebx
pop esi edx
test edx, edx
jz .skip_sockaddr
mov word[edx], 0 ; unknown domain
cmp esi, 8 ; domain + port + ipv4
jb .skip_sockaddr
mov word[edx], AF_INET4
mov esi, edx
mov edx, [eax + IP_SOCKET.RemoteIP]
mov [esi + sockaddr.ip], edx
mov dx, [eax + TCP_SOCKET.RemotePort]
mov [esi + sockaddr.port], dx
.skip_sockaddr:
; Return socket number to caller ; Return socket number to caller
mov eax, [eax + SOCKET.Number] mov eax, [eax + SOCKET.Number]
mov [esp + SYSCALL_STACK.eax], eax mov [esp + SYSCALL_STACK.eax], eax
@@ -711,16 +731,19 @@ socket_accept:
.wouldblock: .wouldblock:
mov dword[esp + SYSCALL_STACK.ebx], EWOULDBLOCK mov dword[esp + SYSCALL_STACK.ebx], EWOULDBLOCK
mov dword[esp + SYSCALL_STACK.eax], -1 mov dword[esp + SYSCALL_STACK.eax], -1
pop esi edx
ret ret
.invalid: .invalid:
mov dword[esp + SYSCALL_STACK.ebx], EINVAL mov dword[esp + SYSCALL_STACK.ebx], EINVAL
mov dword[esp + SYSCALL_STACK.eax], -1 mov dword[esp + SYSCALL_STACK.eax], -1
pop esi edx
ret ret
.notsupp: .notsupp:
mov dword[esp + SYSCALL_STACK.ebx], EOPNOTSUPP mov dword[esp + SYSCALL_STACK.ebx], EOPNOTSUPP
mov dword[esp + SYSCALL_STACK.eax], -1 mov dword[esp + SYSCALL_STACK.eax], -1
pop esi edx
ret ret
;-----------------------------------------------------------------; ;-----------------------------------------------------------------;

View File

@@ -692,6 +692,15 @@ struct TinyGLContext
long int dx, dy, x, y; long int dx, dy, x, y;
}; };
struct GLUquadricObj
{
GLenum DrawStyle; // GLU_FILL, LINE, SILHOUETTE, or POINT
GLenum Orientation; // GLU_INSIDE or GLU_OUTSIDE
GLboolean TextureFlag; // Generate texture coords?
GLenum Normals; // GLU_NONE, GLU_FLAT, or GLU_SMOOTH
void (__stdcall* ErrorFunc)(GLenum err); // Error handler callback function
};
// //
// tinygl - import table // tinygl - import table
// //
@@ -748,7 +757,7 @@ void (__stdcall* glEdgeFlag)(int flag) = (void (__stdcall*)(int))&"glEdgeFlag";
void (__stdcall* glMatrixMode)(int mode) = (void (__stdcall*)(int))&"glMatrixMode"; void (__stdcall* glMatrixMode)(int mode) = (void (__stdcall*)(int))&"glMatrixMode";
void (__stdcall* glLoadMatrixf)(const float* m) = (void (__stdcall*)(const float*))&"glLoadMatrixf"; void (__stdcall* glLoadMatrixf)(const float* m) = (void (__stdcall*)(const float*))&"glLoadMatrixf";
void (__stdcall* glLoadIdentity)() = (void (__stdcall*)())&"glLoadIdentity"; void (__stdcall* glLoadIdentity)() = (void (__stdcall*)())&"glLoadIdentity";
//void (__stdcall* glMultMatrixf)(...) = (void (__stdcall*)(...))&"glMultMatrixf"; void (__stdcall* glMultMatrixf)(const GLfloat *m) = (void (__stdcall*)(const GLfloat*))&"glMultMatrixf";
void (__stdcall* glPushMatrix)() = (void (__stdcall*)())&"glPushMatrix"; void (__stdcall* glPushMatrix)() = (void (__stdcall*)())&"glPushMatrix";
void (__stdcall* glPopMatrix)() = (void (__stdcall*)())&"glPopMatrix"; void (__stdcall* glPopMatrix)() = (void (__stdcall*)())&"glPopMatrix";
void (__stdcall* glRotatef)(float angle, float x, float y, float z) = (void (__stdcall*)(float, float, float, float))&"glRotatef"; void (__stdcall* glRotatef)(float angle, float x, float y, float z) = (void (__stdcall*)(float, float, float, float))&"glRotatef";
@@ -763,7 +772,7 @@ void (__stdcall* glEndList)() = (void (__stdcall*)())&"glEndList";
void (__stdcall* glCallList)(unsigned int list) = (void (__stdcall*)(unsigned int))&"glCallList"; void (__stdcall* glCallList)(unsigned int list) = (void (__stdcall*)(unsigned int))&"glCallList";
void (__stdcall* glClear)(int mask) = (void (__stdcall*)(int))&"glClear"; void (__stdcall* glClear)(int mask) = (void (__stdcall*)(int))&"glClear";
void (__stdcall* glClearColor)(float r, float g, float b, float a) = (void (__stdcall*)(float, float, float, float))&"glClearColor"; void (__stdcall* glClearColor)(float r, float g, float b, float a) = (void (__stdcall*)(float, float, float, float))&"glClearColor";
//void (__stdcall* glClearDepth)(...) = (void (__stdcall*)(...))&"glClearDepth"; void (__stdcall* glClearDepth)(double depth) = (void (__stdcall*)(double))&"glClearDepth";
void (__stdcall* glRenderMode)(int mode) = (void (__stdcall*)(int))&"glRenderMode"; void (__stdcall* glRenderMode)(int mode) = (void (__stdcall*)(int))&"glRenderMode";
//void (__stdcall* glSelectBuffer)(...) = (void (__stdcall*)(...))&"glSelectBuffer"; //void (__stdcall* glSelectBuffer)(...) = (void (__stdcall*)(...))&"glSelectBuffer";
//void (__stdcall* glInitNames)(...) = (void (__stdcall*)(...))&"glInitNames"; //void (__stdcall* glInitNames)(...) = (void (__stdcall*)(...))&"glInitNames";
@@ -799,18 +808,22 @@ void (__stdcall* glColorPointer)(GLint size, GLenum type, GLsizei stride, const
void (__stdcall* glNormalPointer)(GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLenum, GLsizei, const GLvoid*))&"glNormalPointer"; void (__stdcall* glNormalPointer)(GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLenum, GLsizei, const GLvoid*))&"glNormalPointer";
void (__stdcall* glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLint, GLenum, GLsizei, const GLvoid*))&"glTexCoordPointer"; void (__stdcall* glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLint, GLenum, GLsizei, const GLvoid*))&"glTexCoordPointer";
//void (__stdcall* glPolygonOffset)(...) = (void (__stdcall*)(...))&"glPolygonOffset"; //void (__stdcall* glPolygonOffset)(...) = (void (__stdcall*)(...))&"glPolygonOffset";
//void (__stdcall* glOrtho)(...) = (void (__stdcall*)(...))&"glOrtho"; void (__stdcall* glOrtho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) = (void (__stdcall*)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble))&"glOrtho";
//void (__stdcall* glDebug)(...) = (void (__stdcall*)(...))&"glDebug"; //void (__stdcall* glDebug)(...) = (void (__stdcall*)(...))&"glDebug";
//void (__stdcall* glInit)(...) = (void (__stdcall*)(...))&"glInit"; //void (__stdcall* glInit)(...) = (void (__stdcall*)(...))&"glInit";
//void (__stdcall* glClose)(...) = (void (__stdcall*)(...))&"glClose"; //void (__stdcall* glClose)(...) = (void (__stdcall*)(...))&"glClose";
//void (__stdcall* gluPerspective)(...) = (void (__stdcall*)(...))&"gluPerspective"; void (__stdcall* gluPerspective)(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar) = (void (__stdcall*)(GLdouble, GLdouble, GLdouble, GLdouble))&"gluPerspective";
//void (__stdcall* gluNewQuadric)(...) = (void (__stdcall*)(...))&"gluNewQuadric"; GLUquadricObj* (__stdcall* gluNewQuadric)() = (GLUquadricObj* (__stdcall*)())&"gluNewQuadric";
//void (__stdcall* gluDeleteQuadric)(...) = (void (__stdcall*)(...))&"gluDeleteQuadric"; void (__stdcall* gluDeleteQuadric)(GLUquadricObj *state) = (void (__stdcall*)(GLUquadricObj*))&"gluDeleteQuadric";
//void (__stdcall* gluQuadricDrawStyle)(...) = (void (__stdcall*)(...))&"gluQuadricDrawStyle"; void (__stdcall* gluQuadricDrawStyle)(GLUquadricObj *quadObject, GLenum drawStyle) = (void (__stdcall*)(GLUquadricObj*, GLenum))&"gluQuadricDrawStyle";
//void (__stdcall* gluQuadricOrientation)(...) = (void (__stdcall*)(...))&"gluQuadricOrientation"; void (__stdcall* gluQuadricOrientation)(GLUquadricObj *quadObject, GLenum orientation) = (void (__stdcall*)(GLUquadricObj*, GLenum))&"gluQuadricOrientation";
//void (__stdcall* gluQuadricTexture)(...) = (void (__stdcall*)(...))&"gluQuadricTexture"; void (__stdcall* gluQuadricTexture)(GLUquadricObj *quadObject, GLboolean textureCoords) = (void (__stdcall*)(GLUquadricObj*, GLboolean))&"gluQuadricTexture";
//void (__stdcall* gluCylinder)(...) = (void (__stdcall*)(...))&"gluCylinder"; void (__stdcall* gluCylinder)(GLUquadricObj *qobj,
//void (__stdcall* gluSphere)(...) = (void (__stdcall*)(...))&"gluSphere"; GLdouble baseRadius, GLdouble topRadius, GLdouble height, GLint slices, GLint stacks) = (void (__stdcall*)(GLUquadricObj*, GLdouble, GLdouble, GLdouble, GLint, GLint))&"gluCylinder";
void (__stdcall* gluDisk)(GLUquadricObj *qobj,
GLdouble innerRadius, GLdouble outerRadius, GLint slices, GLint loops) = (void (__stdcall*)(GLUquadricObj*, GLdouble, GLdouble, GLint, GLint))&"gluDisk";
void (__stdcall* gluSphere)(GLUquadricObj *qobj,
GLdouble radius, GLint slices, GLint stacks) = (void (__stdcall*)(GLUquadricObj*, GLdouble, GLint, GLint))&"gluSphere";
void (__stdcall* kosglMakeCurrent)(long l, long t, long w, long h, TinyGLContext*) = (void (__stdcall*)(long, long, long, long, TinyGLContext*))&"kosglMakeCurrent"; void (__stdcall* kosglMakeCurrent)(long l, long t, long w, long h, TinyGLContext*) = (void (__stdcall*)(long, long, long, long, TinyGLContext*))&"kosglMakeCurrent";
void (__stdcall* kosglSwapBuffers)() = (void (__stdcall*)())&"kosglSwapBuffers"; void (__stdcall* kosglSwapBuffers)() = (void (__stdcall*)())&"kosglSwapBuffers";
asm{ asm{

View File

@@ -13,12 +13,12 @@ rem
set __value= set __value=
set __res= set __res=
shift shift
:__allowed :__allowed
set __values=%1 %__values% set __values=%1 %__values%
shift shift
if not "%1"=="" goto __allowed if not "%1"=="" goto __allowed
set /P __res="> set /P __res=">
:Check_Value :Check_Value
for %%a in (%__values%) do if %%a==%__res% set __value=%__res% 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\calendar\trunk\calendar.asm %BIN%\calendar
fasm system\board\trunk\board.asm %BIN%\develop\board fasm system\board\trunk\board.asm %BIN%\develop\board
fasm system\commouse\trunk\commouse.asm %BIN%\commouse 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\cpuid\trunk\cpuid.asm %BIN%\cpuid
fasm system\skincfg\trunk\skincfg.asm %BIN%\skincfg fasm system\skincfg\trunk\skincfg.asm %BIN%\skincfg
fasm system\docpack\trunk\docpack.asm %BIN%\docpack fasm system\docpack\trunk\docpack.asm %BIN%\docpack
@@ -88,20 +88,20 @@ echo Building develop
echo * echo *
fasm develop\cmd\trunk\cmd.asm %BIN%\cmd fasm develop\cmd\trunk\cmd.asm %BIN%\cmd
fasm develop\fasm\trunk\fasm.asm %BIN%\develop\fasm fasm develop\fasm\trunk\fasm.asm %BIN%\develop\fasm
fasm develop\h2d2b\trunk\h2d2b.asm %BIN%\develop\h2d2b fasm develop\h2d2b\h2d2b.asm %BIN%\develop\h2d2b
fasm develop\heed\trunk\heed.asm %BIN%\demos\heed fasm develop\heed\heed.asm %BIN%\demos\heed
rem fasm develop\hexview\trunk\hexview.asm hexview 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 fasm develop\mtdbg\mtdbg.asm %BIN%\develop\mtdbg
rem fasm develop\param\trunk\param.asm param rem fasm develop\param\trunk\param.asm param
fasm develop\scancode\trunk\scancode.asm %BIN%\develop\scancode fasm develop\scancode\scancode.asm %BIN%\develop\scancode
fasm develop\tinypad\trunk\tinypad.asm %BIN%\tinypad fasm develop\tinypad\tinypad.asm %BIN%\tinypad
fasm develop\cObj\trunk\cObj.asm %BIN%\develop\cObj fasm develop\cObj\cObj.asm %BIN%\develop\cObj
echo * echo *
echo Building systems libraries echo Building systems libraries
echo * 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\console\console.asm %BIN%\lib\console.obj
fasm develop\libraries\libs-dev\libgfx\libgfx.asm %BIN%\lib\libgfx.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 fasm develop\libraries\libs-dev\libimg\libimg.asm %BIN%\lib\libimg.obj
@@ -154,16 +154,16 @@ echo *
echo Building other echo Building other
echo * echo *
rem fasm other\archer\trunk\@rcher.asm %BIN%\@rcher 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\mhc\trunk\mhc.asm %BIN%\mhc
fasm other\period\trunk\period.asm %BIN%\period fasm other\period\period.asm %BIN%\period
fasm other\rtfread\trunk\rtfread.asm %BIN%\rtfread fasm other\rtfread\rtfread.asm %BIN%\rtfread
echo * echo *
echo Building media echo Building media
echo * echo *
rem media\ac97snd\trunk\ac97snd.asm ac97snd 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\cdp\trunk\cdp.asm %BIN%\cdp
fasm media\gifview\trunk\gifview.asm %BIN%\gifview fasm media\gifview\trunk\gifview.asm %BIN%\gifview
fasm media\iconedit\trunk\iconedit.asm %BIN%\iconedit fasm media\iconedit\trunk\iconedit.asm %BIN%\iconedit
@@ -231,38 +231,38 @@ echo *
echo Building depend application for fdd's nightbuild echo Building depend application for fdd's nightbuild
echo * echo *
echo __nightbuild fix yes >> config.inc 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\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 media\midamp\trunk\midamp.asm %BIN%\nightbuild\midamp
fasm develop\heed\trunk\heed.asm %BIN%\nightbuild\heed fasm develop\heed\heed.asm %BIN%\nightbuild\heed
fasm develop\tinypad\trunk\tinypad.asm %BIN%\nightbuild\tinypad fasm develop\tinypad\tinypad.asm %BIN%\nightbuild\tinypad
fasm system\skincfg\trunk\skincfg.asm %BIN%\nightbuild\skincfg fasm system\skincfg\trunk\skincfg.asm %BIN%\nightbuild\skincfg
fasm system\hdd_info\trunk\hdd_info.asm %BIN%\nightbuild\hdd_info fasm system\hdd_info\trunk\hdd_info.asm %BIN%\nightbuild\hdd_info
fasm system\mgb\trunk\mgb.asm %BIN%\nightbuild\mgb fasm system\mgb\trunk\mgb.asm %BIN%\nightbuild\mgb
fasm system\rdsave\trunk\rdsave.asm %BIN%\nightbuild\rdsave fasm system\rdsave\trunk\rdsave.asm %BIN%\nightbuild\rdsave
fasm other\kpack\trunk\kpack.asm %BIN%\nightbuild\kpack 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 ;restore
echo __CPU_type fix %res% > config.inc echo __CPU_type fix %res% > config.inc
erase lang.inc erase lang.inc
echo * echo *
echo Finished building echo Finished building
echo * echo *
kpack /nologo 2> nul kpack /nologo 2> nul
if "%errorlevel%"=="9009" ( if "%errorlevel%"=="9009" (
echo *** NOTICE *** 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 place "kpack" in accessible directory.
echo You can download that tool from http://diamondz.land.ru/ echo You can download that tool from http://diamondz.land.ru/
goto END goto END
) )
echo Kpack KolibriOS apps? echo Kpack KolibriOS apps?
echo echo
set /P res=[y/n]? set /P res=[y/n]?
@@ -273,7 +273,7 @@ echo Compressing system
echo * echo *
kpack %BIN%\calendar kpack %BIN%\calendar
kpack %BIN%\develop\board kpack %BIN%\develop\board
kpack %BIN%\cpu kpack %BIN%\cpu
kpack %BIN%\cpuid kpack %BIN%\cpuid
kpack %BIN%\skincfg kpack %BIN%\skincfg
kpack %BIN%\docpack kpack %BIN%\docpack

View File

@@ -85,6 +85,7 @@ struct TWebBrowser {
void tag_table(); void tag_table();
void tag_td(); void tag_td();
void tag_tr(); void tag_tr();
void reset_font_style();
}; };
#include "TWB\render.h" #include "TWB\render.h"
@@ -94,16 +95,16 @@ void TWebBrowser::SetPageDefaults()
{ {
t_html = t_body = link = false; t_html = t_body = link = false;
style.reset(); style.reset();
reset_font_style();
link_color_default = 0x0000FF; link_color_default = 0x0000FF;
link_color_active = 0xFF0000; link_color_active = 0xFF0000;
style.cur_line_h = list.item_h;
links.clear(); links.clear();
anchors.clear(); anchors.clear();
img_url.drop(); img_url.drop();
text_colors.drop(); text_colors.drop();
text_colors.add(0); text_colors.add(0);
if (secondrun) { if (secondrun) {
canvas.Init(list.x, list.y, list.w, math.max(list.visible, list.count)); canvas.Init(list.x, list.y, list.w, math.max(list.visible, list.count)+200);
canvas.Fill(0, bg_colors.get(0)); canvas.Fill(0, bg_colors.get(0));
} }
bg_colors.drop(); bg_colors.drop();
@@ -114,7 +115,6 @@ void TWebBrowser::SetPageDefaults()
draw_w = list.w - BODY_MARGIN - BODY_MARGIN; draw_w = list.w - BODY_MARGIN - BODY_MARGIN;
linebuf = 0; linebuf = 0;
redirect = '\0'; redirect = '\0';
list.SetFont(8, 14, 10011000b);
tag_table_reset(); tag_table_reset();
is_html = true; is_html = true;
if (!strstri(bufpointer, "<body")) { if (!strstri(bufpointer, "<body")) {

View File

@@ -49,14 +49,14 @@ void TWebBrowser::RenderLine(dword _line)
pc = text_colors.get_last(); pc = text_colors.get_last();
if (link) && (pc == text_colors.get(0)) pc = link_color_default; if (link) && (pc == text_colors.get(0)) pc = link_color_default;
canvas.WriteText(draw_x, draw_y, list.font_type, pc, _line, NULL); canvas.WriteText(draw_x, draw_y+1, list.font_type, pc, _line, NULL);
if (style.b) canvas.WriteText(draw_x+1, draw_y, list.font_type, pc, _line, NULL); if (style.b) canvas.WriteText(draw_x+1, draw_y+1, list.font_type, pc, _line, NULL);
if (style.s) canvas.DrawBar(draw_x, list.item_h / 2 - zoom + draw_y, pw, zoom, pc); if (style.s) canvas.DrawBar(draw_x, list.item_h / 2 - zoom + draw_y, pw, zoom, pc);
if (style.u) canvas.DrawBar(draw_x, list.item_h - zoom - zoom + draw_y, pw, zoom, pc); if (style.u) canvas.DrawBar(draw_x, draw_y + list.font_h, pw, zoom, pc);
if (link) { if (link) {
if (ESBYTE[_line]==' ') && (ESBYTE[_line+1]==NULL) {} else { if (ESBYTE[_line]==' ') && (ESBYTE[_line+1]==NULL) {} else {
canvas.DrawBar(draw_x, draw_y + list.item_h - calc(zoom*2)-1, pw, zoom, link_color_default); canvas.DrawBar(draw_x, draw_y + list.font_h, pw, zoom, link_color_default);
links.add_text(draw_x, draw_y + list.y, pw, list.item_h - calc(zoom*2)-1, zoom); links.add_text(draw_x, draw_y + list.y, pw, list.font_h, zoom);
} }
} }
_SKIP_DRAW: _SKIP_DRAW:

View File

@@ -208,9 +208,20 @@ void TWebBrowser::tag_li()
void TWebBrowser::tag_hr() void TWebBrowser::tag_hr()
{ {
dword hrcol = 0x00777777; dword hrcol = 0x00777777;
if (tag.get_value_of("color")) hrcol = GetColor(tag.value); dword hr_width = draw_w-BODY_MARGIN-BODY_MARGIN;
dword hr_size = 1;
if (tag.get_value_of("color")) {
hrcol = GetColor(tag.value);
}
if (tag.get_value_of("width")) && (!strchr(tag.value, '%')) {
hr_width = math.min(hr_width, tag.get_number_of("width"));
}
if (tag.get_number_of("size")) {
hr_size = math.min(500, tag.number);
}
if (draw_x != left_gap) NewLine(); if (draw_x != left_gap) NewLine();
if (secondrun) canvas.DrawBar(5+left_gap, style.cur_line_h / 2 + draw_y - 1, draw_w-10, 1, hrcol); if (secondrun) canvas.DrawBar(left_gap, style.cur_line_h / 2 + draw_y - 1, hr_width, hr_size, hrcol);
draw_y += hr_size - 3;
draw_x++; draw_x++;
NewLine(); NewLine();
return; return;
@@ -235,6 +246,12 @@ void TWebBrowser::tag_q()
chrncat(#linebuf, '\"', sizeof(TWebBrowser.linebuf)); chrncat(#linebuf, '\"', sizeof(TWebBrowser.linebuf));
} }
void TWebBrowser::reset_font_style()
{
list.SetFont(BASIC_CHAR_W, 14, 10011000b);
style.cur_line_h = list.item_h = list.font_h + 5;
}
void TWebBrowser::tag_h1234_caption() void TWebBrowser::tag_h1234_caption()
{ {
if (ESBYTE[#tag.name+1]=='4') { if (ESBYTE[#tag.name+1]=='4') {
@@ -250,19 +267,18 @@ void TWebBrowser::tag_h1234_caption()
NewLine(); NewLine();
} }
if (tag.is("h1")) { if (tag.is("h1")) {
list.SetFont(BASIC_CHAR_W*2, 14+14, 10011001b); list.SetFont(BASIC_CHAR_W*2, 14+13, 10011001b);
style.b = true; style.b = true;
} else if (tag.is("h2")) { } else if (tag.is("h2")) {
list.SetFont(BASIC_CHAR_W*2, 14+14, 10011001b); list.SetFont(BASIC_CHAR_W*2, 14+13, 10011001b);
} else { } else {
list.SetFont(6*2, 9+7, 10001001b); list.SetFont(6*2, 9+8, 10001001b);
} }
style.cur_line_h = list.item_h = list.font_h + 2; style.cur_line_h = list.item_h = list.font_h + 3;
} else { } else {
if (tag.is("h1")) style.b = false; if (tag.is("h1")) style.b = false;
NewLine(); NewLine();
list.SetFont(BASIC_CHAR_W, 14, 10011000b); reset_font_style();
style.cur_line_h = list.item_h = BASIC_LINE_H;
} }
} }
} }
@@ -270,11 +286,15 @@ void TWebBrowser::tag_h1234_caption()
void TWebBrowser::tag_kosicon() void TWebBrowser::tag_kosicon()
{ {
dword imgbuf[44]; dword imgbuf[44];
dword maxicon;
dword shared_i18 = memopen("ICONS18", NULL, SHM_READ); dword shared_i18 = memopen("ICONS18", NULL, SHM_READ);
maxicon = EDX / 18 / 18 / 4;
if (shared_i18) && (tag.get_number_of("n")) { if (shared_i18) && (tag.get_number_of("n")) {
if (draw_x + 18 > canvas.bufw) NewLine(); if (tag.number < maxicon) {
canvas.DrawImage(draw_x, draw_y-2, 18, 18, 18*18*4*tag.number+shared_i18); if (draw_x + 18 > canvas.bufw) NewLine();
draw_x += 22; canvas.DrawImage(draw_x, draw_y-1, 18, 18, 18*18*4*tag.number+shared_i18);
draw_x += 22;
}
} }
} }

View File

@@ -571,10 +571,10 @@ void OpenPage(dword _open_URL)
//INTERNAL PAGE //INTERNAL PAGE
history.add(#new_url); history.add(#new_url);
WB1.custom_encoding = -1; WB1.custom_encoding = -1;
if (streq(#new_url, URL_SERVICE_HOMEPAGE)) LoadInternalPage(#buildin_page_home, sizeof(buildin_page_home)-1); if (streq(#new_url, URL_SERVICE_HOMEPAGE)) LoadInternalPage(#buildin_page_home, sizeof(buildin_page_home));
else if (streq(#new_url, URL_SERVICE_TEST)) LoadInternalPage(#buildin_page_test, sizeof(buildin_page_test)-1); else if (streq(#new_url, URL_SERVICE_TEST)) LoadInternalPage(#buildin_page_test, sizeof(buildin_page_test));
else if (streq(#new_url, URL_SERVICE_HISTORY)) ShowHistory(); else if (streq(#new_url, URL_SERVICE_HISTORY)) ShowHistory();
else LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error)-1); else LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error));
} else if (!strncmp(#new_url,"http:",5)) || (!strncmp(#new_url,"https:",6)) { } else if (!strncmp(#new_url,"http:",5)) || (!strncmp(#new_url,"https:",6)) {
//WEB PAGE //WEB PAGE
@@ -589,7 +589,7 @@ void OpenPage(dword _open_URL)
if (!http.transfer) { if (!http.transfer) {
history.add(#new_url); history.add(#new_url);
LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error)-1); LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error));
} }
} else { } else {
//LOCAL PAGE //LOCAL PAGE
@@ -712,7 +712,7 @@ void EventSubmitOmnibox()
void LoadInternalPage(dword _bufdata, _in_bufsize){ void LoadInternalPage(dword _bufdata, _in_bufsize){
if (!_bufdata) || (!_in_bufsize) { if (!_bufdata) || (!_in_bufsize) {
LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error)-1); LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error));
} else { } else {
WB1.list.first = 0; //scroll page to the top WB1.list.first = 0; //scroll page to the top
DrawOmnibox(); DrawOmnibox();

View File

@@ -112,4 +112,4 @@ char editbox_icons[] = FROM "res/editbox_icons.raw";
#define DEFAULT_URL URL_SERVICE_HOMEPAGE #define DEFAULT_URL URL_SERVICE_HOMEPAGE
char version[]="WebView 3.85"; char version[]="WebView 3.91";

View File

@@ -1,7 +1,7 @@
#ifdef LANG_RUS #ifdef LANG_RUS
#define HISTORY_HEADER "<html><title><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></title><body><b><3E><><EFBFBD><EFBFBD><EFBFBD><E9A5AD><EFBFBD> <20><><EFBFBD><E0A0AD><EFBFBD></b><br>" #define HISTORY_HEADER "<html><title><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></title><body bgcolor=#fff><h3><3E><><EFBFBD><EFBFBD><EFBFBD><E9A5AD><EFBFBD> <20><><EFBFBD><E0A0AD><EFBFBD></h3><br>"
#else #else
#define HISTORY_HEADER "<html><title>History</title><body><b>Visited pages</b><br>" #define HISTORY_HEADER "<html><title>History</title><body bgcolor=#fff><h3>Visited pages</h3><br>"
#endif #endif
@@ -13,7 +13,7 @@ ShowHistory()
for (i=0; i<history.items.count-1; i++) //if (cache.type.get(i) == PAGE) for (i=0; i<history.items.count-1; i++) //if (cache.type.get(i) == PAGE)
{ {
strcat(history_pointer, "<a href='"); strcat(history_pointer, "<kosicon n=3><a href='");
strcat(history_pointer, history.items.get(i)); strcat(history_pointer, history.items.get(i));
strcat(history_pointer, "'>"); strcat(history_pointer, "'>");
strcat(history_pointer, history.items.get(i)); strcat(history_pointer, history.items.get(i));

View File

@@ -1,17 +1,49 @@
<html> <html><head><title>New tab</title></head>
<head> <body bgcolor=#fff>
<title>Homepage</title>
</head>
<body><pre>Welcome to WebView a Text-Based Browser.
KolibriOS Bookmarks: <table><tr><td width=20><td width=220><pre>
1. <a href=//kolibrios.org>Homepage</a> _____________________
2. <a href="//builds.kolibrios.org">Night-builds</a> |# : : #|
3. <a href="//ftp.kolibrios.org">FTP Server</a> | : WebView : |
| : for : |
| : KolibriOS : |
| : : |
| :_______________: |
| ____________ |
| | __ | |
| || | | |
\_____||__|________|__|<font color=#DDD>lc</font>
<font bg=#F8F15B>By the way,</font> <font bg=#F8F15B> web <font bg=#FF5A7E color=#fff> 1.0 <font bg=#47D018> compatable
<font bg=#3CE7FF> </font></font></font></font>
<td>
</pre>
<kosicon n=58><a href=//kolibrios.org>Homepage</a> &nbsp;
<kosicon n=50><a href="//builds.kolibrios.org">Night-builds</a> &nbsp;
<kosicon n=50><a href="//ftp.kolibrios.org">FTP Server</a>
<pre>
By the way,
<font color="#555555">&bull; You can check for browser updates from the main menu. <font color="#555555">&bull; You can check for browser updates from the main menu.
&bull; To run a web search, type a text in the adress box and press Ctrl+Enter. &bull; To run a web search, type a text in the adress box and press Ctrl+Enter.
&bull; Pressing F6 moves a text cursor to the omnibox. &bull; Pressing F6 moves a text cursor to the omnibox.
&bull; Click on a label in the bottom right corner to change the encoding of a page. &bull; You can manually change the encoding of a page by clicking on a label in the bottom right corner.
</font>
~+
* +
' |
() .-.,="``"=. - o -
'=/_ \ |
* | '=._ |
\ `=./`, '
. '=.__.=' `=' *
+ +
O * ' .<font color=#DDD>jgs</font>

View File

@@ -1,15 +1,49 @@
<html><head><meta charset="cp-866"> <html><head><title><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></title></head>
<title><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AD><EFBFBD></title></head> <body bgcolor=#fff>
<body><pre><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD> WebView!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> KolibriOS:<ol> <table><tr><td width=20><td width=220><pre>
<li><a href=//kolibrios.org><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><></a> _____________________
<li><a href="//builds.kolibrios.org"><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᡮન</a> |# : : #|
<li><a href="//ftp.kolibrios.org">FTP <20><><EFBFBD></a></ol> | : WebView : |
| : for : |
| : KolibriOS : |
| : : |
| :_______________: |
| ____________ |
| | __ | |
| || | | |
\_____||__|________|__|<font color=#DDD>lc</font>
<font bg=#F8F15B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,</font> <font bg=#F8F15B> web <font bg=#FF5A7E color=#fff> 1.0 <font bg=#47D018> compatable
<font bg=#3CE7FF> </font></font></font></font>
<td>
</pre>
<kosicon n=58><a href=//kolibrios.org><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><></a> &nbsp;
<kosicon n=50><a href="//builds.kolibrios.org"><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᡮન</a> &nbsp;
<kosicon n=50><a href="//ftp.kolibrios.org">FTP <20><><EFBFBD></a>
<pre>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<font color="#555555">&bull; <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <font color="#555555">&bull; <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
&bull; <20><><EFBFBD> <20><><EFBFBD><20> Google <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+Enter &bull; <20><><EFBFBD> <20><><EFBFBD><20> Google <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+Enter
&bull; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> F6 <20><><EFBFBD><EFBFBD><><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. &bull; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> F6 <20><><EFBFBD><EFBFBD><><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
&bull; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><E0A0AD><EFBFBD>, <20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><><EFBFBD><EFBFBD>. &bull; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD><E0A0AD><EFBFBD>, <20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><><EFBFBD><EFBFBD>.
~+
* +
' |
() .-.,="``"=. - o -
'=/_ \ |
* | '=._ |
\ `=./`, '
. '=.__.=' `=' *
+ +
O * ' .<font color=#DDD>jgs</font>

View File

@@ -5,12 +5,19 @@
<title>Тест Acid 0.1</title> <title>Тест Acid 0.1</title>
</head> </head>
<body bgcolor="#000000" link="#0066FF" text="#FFFFFF"> <body bgcolor="#000000" link="#0066FF" text="#FFFFFF">
<h1 align=center>Это тестовая страница для проверки WebViewer</h1> <h1 align=center>Тест Acid 0.1</h1>
<br /> <br>
<p>WebViewer является текстовым браузером и поддерживает все популярные кодировки (cp1251, koi-8, cp866, unicode) <b>Это тестовая страница для проверки текстового браузера <s>HTML Viewer</s> WebView</b>
и некоторые теги. Поддержка таблииц (&lt;table&gt;), CSS, Javascript'a и Контактика пока не реализована :)
<p>Из кодировок поддерживаются: CP866(DOS), CP1251(Windows), CP1252(Latin legacy), KOI8, и конечно UTF8. CSS и Javascript пока не реализованы (ахахаха). Поддержка тега &lt;table&gt; крайне базовая, поддержки вложенных таблиц нет.
</p> </p>
<br />
<h3>История</h3>
Ранее программа называлась <b >HTMLv (HTML Viewer)</b> и изначально задумывалась как <q>Центр справки и поддержки</q>. Чтобы не изобретать велосипед и одновременно исполнить мечту многих, форматом просматриваемых страниц был выбран html.
Первоначальный автор Veliant, затем разработка была подхвачена дизайнером Leency. Это была моя вторая программа после файлового менеджера Eolite.<br>
<span> <br />
<b> <b>
<font color="#FF0000">K</font> <font color="#FF0000">K</font>
@@ -33,7 +40,8 @@
</b> </b>
<br> <br>
<p> <table>
<td>
<bg bgcolor=#333> <bg bgcolor=#333>
Небольшой список:<ol> Небольшой список:<ol>
<li><q>Этот текст в кавычках</q></li> <li><q>Этот текст в кавычках</q></li>
@@ -46,17 +54,14 @@
</p> </p>
<br> <br>
<pre>
"Осень уже пришла!"-
Шепнул мне на ухо ветер,
Подкравшись к подушке моей.
Басе
</pre>
<!-- комментарий: этого текста здесь <нет> --> <!-- комментарий: этого текста здесь <нет> -->
<br> <br>
<img alt="нет картинки, просто alt">
<img src = http://wiby.org/about/wibyplex.gif>
<a href="http://kolibrios.org/i/logo.png"><img id="2.1.4" src="http://kolibrios.org/i/logo.png" alt="logo"><br>Открыть</a><br> <a href="http://kolibrios.org/i/logo.png"><img id="2.1.4" src="http://kolibrios.org/i/logo.png" alt="logo"><br>Открыть</a><br>
<br> <br>
@@ -65,10 +70,25 @@
<a href='/sys/index.htm'>Незакрытый тег а - index.htm<br> <a href='/sys/index.htm'>Незакрытый тег а - index.htm<br>
<a href="/sys/calc">/sys/calc</a><br> <a href="/sys/calc">/sys/calc</a><br>
<a href="#2.1.4">#2.1.4</a><br> <a href="#2.1.4">#2.1.4</a><br>
<a href="http://bash.im">http://bash.im</a><br> <a href="http://kolibrios.org">http://kolibrios.org</a><br>
<a href="mailto:leency@mail.ru">Mail to Leency</a><br> <a href="mailto:leency@mail.ru">Mail to Leency</a><br>
<br> <br>
<br>
<h1><a href=#>Link H1</a> <u>Underline H1</u></h1>
<h2><a href=#>Link H2</a> <u>Underline H2</u></h2>
<h3><a href=#>Link H3</a> <u>Underline H2</u></h3>
<a href=#>Link</a> <u>Underline</u>
<td>
<pre>
"Осень уже пришла!"-
Шепнул мне на ухо ветер,
Подкравшись к подушке моей.
Басе
</pre><br>
В этом тексте есть переход на следующую строку, но браузер В этом тексте есть переход на следующую строку, но браузер
его должен проигнорировать. Еще много пробелов. А тут есть его должен проигнорировать. Еще много пробелов. А тут есть
@@ -80,8 +100,19 @@
&#1082;&#1086;&#1088;&#1087;&#1091;&#1089; &#1085;&#1072; &#1090;&#1077;&#1088;&#1088;&#1080;&#1090;&#1086;&#1088;&#1080;&#1080; &#1053;&#1058;&#1059; «&#1061;&#1055;&#1048;» &#1082;&#1086;&#1088;&#1087;&#1091;&#1089; &#1085;&#1072; &#1090;&#1077;&#1088;&#1088;&#1080;&#1090;&#1086;&#1088;&#1080;&#1080; &#1053;&#1058;&#1059; «&#1061;&#1055;&#1048;»
</p> </p>
<pre><font color="#000">
<font bg=#FFED00 style="background-color:#FFED00"> Заметки </font>
<font bg=#FFFBCE style="background-color:#FFFBCE"> </font>
<font bg=#FFFBCE style="background-color:#FFFBCE"> Речка на Жукова </font>
<font bg=#FFFBCE style="background-color:#FFFBCE"> Heroes 3 </font>
<font bg=#FFFBCE style="background-color:#FFFBCE"> Рисостерон, куринабол </font>
<font bg=#FFFBCE style="background-color:#FFFBCE"> </font>
</font></pre>
</table>
<hr color="#758999"> <hr color="#758999">
<center>Zhitomyr 2008-2015</center> <center>Zhytomyr 2008-2025</center>
</body> </body>

View File

@@ -0,0 +1,2 @@
if tup.getconfig("NO_FASM") ~= "" then return end
tup.rule("flag.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "flag")

View File

@@ -0,0 +1,306 @@
; SPDX-License-Identifier: GPL-2.0-only
; Flag - demo program shows a flag with the inscription 'KolibriOS'
; Copyright (C) 2025 KolibriOS team
use32
org 0
db 'MENUET01'
dd 1,start,i_end,mem,stacktop,0,cur_dir_path
include '../../proc32.inc'
include '../../macros.inc'
include '../../KOSfuncs.inc'
include '../../load_lib.mac'
include '../../dll.inc'
include '../../develop/libraries/TinyGL/asm_fork/kosgl.inc'
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
include '../../develop/libraries/TinyGL/asm_fork/examples/fps.inc'
@use_library
align 4
start:
load_library name_tgl, library_path, system_path, import_tinygl
cmp eax,SF_TERMINATE_PROCESS
jz button.exit
mcall SF_SET_EVENTS_MASK, 0x27
; *** init ***
stdcall [kosglMakeCurrent], 0,15,600,380,ctx1
stdcall [glMatrixMode], GL_MODELVIEW
call [glLoadIdentity]
stdcall [glClearColor], 0.549, 0.549, 0.588, 1.0
stdcall [glEnable], GL_LIGHTING
stdcall [glLightf], GL_LIGHT0, GL_SPOT_EXPONENT, 0.0
stdcall [glLightf], GL_LIGHT0, GL_SPOT_CUTOFF, 180.0
stdcall [glEnable], GL_LIGHT0
stdcall [glLightfv], GL_LIGHT0, GL_POSITION, lightpos
stdcall [glLightfv], GL_LIGHT0, GL_SPOT_DIRECTION, lightdirect
stdcall [glEnable], GL_COLOR_MATERIAL
glpush p3
stdcall [glClearDepth]
stdcall [glEnable], GL_CULL_FACE
stdcall [glEnable], GL_DEPTH_TEST
fninit
stdcall reshape, 600,380
; *** end init ***
align 4
red_win:
call draw_window
mcall SF_THREAD_INFO, procinfo,-1
mov eax,dword[procinfo.box.height]
cmp eax,120
jge @f
mov eax,120 ;min size
@@:
sub eax,43
mov ebx,dword[procinfo.box.width]
cmp ebx,200
jge @f
mov ebx,200
@@:
sub ebx,10
stdcall reshape, ebx,eax
align 16
still:
call draw_3d
cmp dword[stop],1
je @f
stdcall Fps, 365,4
mov dword[esp-4],eax
fild dword[esp-4]
fmul dword[delt_3]
fchs
fadd dword[dangle]
fstp dword[dangle] ;dangle -= 0.01*Fps(x,y)
mcall SF_WAIT_EVENT_TIMEOUT, 1
jmp .end0
align 4
@@:
mcall SF_WAIT_EVENT
.end0:
cmp al, EV_REDRAW
jz red_win
cmp al, EV_KEY
jz key
cmp al, EV_BUTTON
jz button
jmp still
; new window size or exposure
align 4
proc reshape, width:dword, height:dword
locals
dxy dq ?
endl
stdcall [glViewport], 0, 0, [width], [height]
stdcall [glMatrixMode], GL_PROJECTION
call [glLoadIdentity]
fild dword[width]
fidiv dword[height]
fstp qword[dxy] ;dxy = width/height
glpush p4
glpush p3
glpush dxy
glpush p1
call [gluPerspective] ;28.0, width/height, 1.0, 40.0
stdcall [glMatrixMode], GL_MODELVIEW
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT
ret
endp
align 4
draw_window:
pushad
mcall SF_REDRAW,SSF_BEGIN_DRAW
mcall SF_CREATE_WINDOW, (50 shl 16)+609,(30 shl 16)+425,0x33404040,,title1
call [kosglSwapBuffers]
;Title
mcall SF_DRAW_TEXT, (338 shl 16)+4, 0xc0c0c0, fps, fps.end-fps
mcall SF_DRAW_TEXT, (8 shl 16)+4, 0xc0c0c0, title2, title2.end-title2
mcall SF_REDRAW,SSF_END_DRAW
popad
ret
align 4
key:
mcall SF_GET_KEY
cmp ah,27 ;Esc
je button.exit
cmp ah,112 ;P
jne @f
xor dword[stop],1
jmp still
@@:
jmp still
align 4
button:
mcall SF_GET_BUTTON
cmp ah,1
jne still
.exit:
mcall SF_TERMINATE_PROCESS
align 4
title1: db 'TinyGL in KolibriOS'
.end: db 0
title2: db 'ESC - exit, P - pause'
.end: db 0
fps: db 'FPS:'
.end: db 0
align 16
proc draw_3d uses ebx ecx edx esi edi
locals
z dd ?
endl
call [glLoadIdentity]
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT
stdcall [glTranslatef], 0.0, 0.0, -2.0
stdcall [glRotatef], 10.0, 0.0, 0.0, 1.0
stdcall [glRotatef], 43.0, 0.0, 1.0, 0.0
stdcall [glTranslatef], -0.6, -0.2, -0.1
mov edi, logo+9*41 ;edi = logo[9][0]
mov esi, 41 ;esi = i
align 4
.cycle0: ;for(int i=0;i<41;i++)
stdcall [glTranslatef], 0.045, 0.0, 0.0
call [glPushMatrix]
fld dword[angle]
fsin
fmul dword[delt_1]
fstp dword[z] ;= 0.08*sin(angle)
fld dword[angle]
fadd dword[delt_2]
fstp dword[angle] ;angle += 0.2
mov ecx, 9
mov ebx, edi
; ecx = j
.cycle1: ;for(int j=9;j>=0;j--)
cmp byte[ebx],0 ;if(logo[j][i])
je @f
push 0.0 ;b
push 0.0 ;g
push 1.0 ;r
jmp .end_c2
@@:
push 0.945 ;b
push 0.855 ;g
push 0.859 ;r
.end_c2:
call [glColor3f]
stdcall [glTranslatef], 0.0, 0.045, 0.0
stdcall [glBegin], GL_QUADS
stdcall [glVertex3f], 0.0, -0.04,[z]
stdcall [glVertex3f], 0.04,-0.04,[z]
stdcall [glVertex3f], 0.04, 0.0, [z]
stdcall [glVertex3f], 0.0, 0.0, [z]
call [glEnd]
add ebx, -41
dec ecx
jnz .cycle1
call [glPopMatrix]
inc edi ;edi = logo[9][i]
dec esi
jnz .cycle0
mov edx,dword[dangle]
mov dword[angle],edx
call [kosglSwapBuffers]
ret
endp
align 4
p1 dq 28.0
p3 dq 1.0
p4 dq 40.0
delt_1 dd 0.08
delt_2 dd 0.2
delt_3 dd 0.01
lightpos dd 2.0, 0.0, -2.5, 1.0
lightdirect dd 0.0, 0.0, -0.7
angle dd 0.0
dangle dd 0.0
stop dd 0
;[10][41]
logo db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1,1,1,0,0,0,1,1,1,0,0,0,\
0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,\
0,0,1,0,1,0,0,0,0,1,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,0,\
0,0,1,1,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,\
0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,\
0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,1,0,0,0,1,1,1,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
;--------------------------------------------------
align 4
import_tinygl:
macro E_LIB n
{
if defined sz_#n
n dd sz_#n
end if
}
include '../../develop/libraries/TinyGL/asm_fork/export.inc'
dd 0,0
macro E_LIB n
{
if used n
sz_#n db `n,0
end if
}
include '../../develop/libraries/TinyGL/asm_fork/export.inc'
;--------------------------------------------------
system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0
;--------------------------------------------------
align 16
i_end:
ctx1 TinyGLContext
procinfo process_information
cur_dir_path rb 4096
library_path rb 4096
rb 4096
stacktop:
mem:

View File

@@ -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")

View File

@@ -1,6 +0,0 @@
@erase lang.inc
@echo lang fix en_US >lang.inc
@fasm magnify.asm magnify
@kpack magnify
@erase lang.inc
@pause

View File

@@ -1,6 +0,0 @@
@erase lang.inc
@echo lang fix ru_RU >lang.inc
@fasm magnify.asm magnify
@kpack magnify
@erase lang.inc
@pause

View File

@@ -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
;---------------------------------------------------------------------

View File

@@ -1,325 +1,329 @@
use32 ; SPDX-License-Identifier: NOASSERTION
org 0x0 ;
db 'MENUET01'
dd 0x01,start,i_end,e_end,e_end,0,0
use32
include '../../../proc32.inc' org 0x0
include '../../../macros.inc' db 'MENUET01'
dd 0x01,start,i_end,e_end,e_end,0,0
BUTTON_SIDE = 28 ; button are squares
BUTTON_SPACE = 34 ; space between cols and rows include '../../proc32.inc'
BUTTON_ID_SHIFT = 2 ; button_id = character + BUTTON_ID_SHIFT include '../../macros.inc'
TABLE_BEGIN_X = 2
TABLE_BEGIN_Y = 2 BUTTON_SIDE = 28 ; button are squares
PANEL_Y = BUTTON_SPACE*8+TABLE_BEGIN_Y+TABLE_BEGIN_Y BUTTON_SPACE = 34 ; space between cols and rows
BUTTON_ID_SHIFT = 2 ; button_id = character + BUTTON_ID_SHIFT
FOCUS_SQUARE_COLOR = 0x000080FF TABLE_BEGIN_X = 2
SWITCHER_BLINK_COLOR = 0x00808080 TABLE_BEGIN_Y = 2
PANEL_Y = BUTTON_SPACE*8+TABLE_BEGIN_Y+TABLE_BEGIN_Y
FONT_SMALL = 0x01000000
FONT_BIG = 0x10000000 FOCUS_SQUARE_COLOR = 0x000080FF
SWITCHER_BLINK_COLOR = 0x00808080
start: FONT_SMALL = 0x01000000
still: FONT_BIG = 0x10000000
mcall 10
dec eax
jz redraw start:
dec eax still:
jz key mcall 10
dec eax
button: jz redraw
mcall 17 dec eax
shr eax, 8 jz key
cmp eax, 1 button:
je quit mcall 17
cmp ax, 0xFFAA ; page switcher shr eax, 8
je .switch_page ; any button with a character
cmp ax, 0xEEBB ; page switcher cmp eax, 1
je .switch_font je quit
.change_focus: cmp ax, 0xFFAA ; page switcher
mov bl, [symbol_focused] je .switch_page ; any button with a character
mov [symbol_unfocused], bl cmp ax, 0xEEBB ; page switcher
sub ax, BUTTON_ID_SHIFT ; get the corresponding character je .switch_font
mov [symbol_focused], al .change_focus:
stdcall draw_table, 0 mov bl, [symbol_focused]
call draw_codes mov [symbol_unfocused], bl
jmp still sub ax, BUTTON_ID_SHIFT ; get the corresponding character
.switch_font: mov [symbol_focused], al
cmp [font_type], FONT_SMALL stdcall draw_table, 0
jne @f call draw_codes
mov [font_type], FONT_BIG jmp still
jmp redraw .switch_font:
@@: mov [font_type], FONT_SMALL cmp [font_type], FONT_SMALL
jmp redraw jne @f
.switch_page: mov [font_type], FONT_BIG
movzx bx, [symbol_start] jmp redraw
add bx, BUTTON_ID_SHIFT @@: mov [font_type], FONT_SMALL
mov cx, 128 ; half of page jmp redraw
mov edx, 0x80000000 .switch_page:
mov dx, bx movzx bx, [symbol_start]
@@: mcall 8 add bx, BUTTON_ID_SHIFT
inc edx mov cx, 128 ; half of page
dec cx mov edx, 0x80000000
jnz @b mov dx, bx
@@: mcall 8
@@: add [symbol_start], 128 ; change page inc edx
add [symbol_focused], 128 dec cx
stdcall draw_table, 1 ; 1 means redraw the whole table jnz @b
call draw_codes
stdcall draw_page_switcher, 1 ; 1 means dark color, for blinking @@: add [symbol_start], 128 ; change page
mcall 5, 10 add [symbol_focused], 128
stdcall draw_page_switcher, 0 ; 0 means usual light color stdcall draw_table, 1 ; 1 means redraw the whole table
jmp still call draw_codes
stdcall draw_page_switcher, 1 ; 1 means dark color, for blinking
redraw: mcall 5, 10
mcall 9, proc_info, -1 stdcall draw_page_switcher, 0 ; 0 means usual light color
jmp still
mcall 12, 1
redraw:
mcall 48, 4 ; get skin height mcall 9, proc_info, -1
mov ecx, 200*0x10000+PANEL_Y+33
add ecx, eax mcall 12, 1
mov ebx, 200*0x10000+BUTTON_SPACE*16+TABLE_BEGIN_X+TABLE_BEGIN_X+9
mcall 0, , , 0x34AAAaaa, 0x80000000, window_title mcall 48, 4 ; get skin height
test [proc_info.wnd_state], 0x04 mov ecx, 200*0x10000+PANEL_Y+33
jnz @f add ecx, eax
mov ebx, 200*0x10000+BUTTON_SPACE*16+TABLE_BEGIN_X+TABLE_BEGIN_X+9
stdcall draw_table, 1 mcall 0, , , 0x34AAAaaa, 0x80000000, window_title
call draw_codes test [proc_info.wnd_state], 0x04
stdcall draw_page_switcher, 0 jnz @f
stdcall draw_font_switcher
stdcall draw_table, 1
@@: call draw_codes
mcall 12, 2 stdcall draw_page_switcher, 0
jmp still stdcall draw_font_switcher
key: @@:
mcall 2 mcall 12, 2
cmp ah, 0x09 ; TAB key jmp still
je button.switch_page
key:
cmp ah, 0xB0 ; left mcall 2
jne @f cmp ah, 0x09 ; TAB key
mov bl, [symbol_focused] je button.switch_page
mov [symbol_unfocused], bl
dec bl cmp ah, 0xB0 ; left
and bl, 0x0f jne @f
and [symbol_focused], 0xf0 mov bl, [symbol_focused]
or [symbol_focused], bl mov [symbol_unfocused], bl
stdcall draw_table, 0 dec bl
call draw_codes and bl, 0x0f
jmp still and [symbol_focused], 0xf0
or [symbol_focused], bl
@@: cmp ah, 0xB1 ; down stdcall draw_table, 0
jne @f call draw_codes
mov bl, [symbol_focused] jmp still
mov [symbol_unfocused], bl
add bl, 16 @@: cmp ah, 0xB1 ; down
and bl, 0x70 jne @f
and [symbol_focused], 0x8f mov bl, [symbol_focused]
or [symbol_focused], bl mov [symbol_unfocused], bl
stdcall draw_table, 0 add bl, 16
call draw_codes and bl, 0x70
jmp still and [symbol_focused], 0x8f
or [symbol_focused], bl
@@: cmp ah, 0xB2 ; up stdcall draw_table, 0
jne @f call draw_codes
mov bl, [symbol_focused] jmp still
mov [symbol_unfocused], bl
sub bl, 16 @@: cmp ah, 0xB2 ; up
and bl, 0x70 jne @f
and [symbol_focused], 0x8f mov bl, [symbol_focused]
or [symbol_focused], bl mov [symbol_unfocused], bl
stdcall draw_table, 0 sub bl, 16
call draw_codes and bl, 0x70
jmp still and [symbol_focused], 0x8f
or [symbol_focused], bl
@@: cmp ah, 0xB3 ; righ stdcall draw_table, 0
jne @f call draw_codes
mov bl, [symbol_focused] jmp still
mov [symbol_unfocused], bl
inc bl @@: cmp ah, 0xB3 ; righ
and bl, 0x0f jne @f
and [symbol_focused], 0xf0 mov bl, [symbol_focused]
or [symbol_focused], bl mov [symbol_unfocused], bl
stdcall draw_table, 0 inc bl
call draw_codes and bl, 0x0f
jmp still and [symbol_focused], 0xf0
jne @f or [symbol_focused], bl
stdcall draw_table, 0
@@: call draw_codes
jmp still jmp still
jne @f
@@:
proc draw_table _full_redraw jmp still
mov al, [symbol_start]
mov [symbol_current], al
proc draw_table _full_redraw
.next_button:
mov al, [symbol_start]
xor edi, edi ; character focus flag mov [symbol_current], al
mov al, [symbol_current]
cmp al, [symbol_focused] .next_button:
jne @f
inc edi xor edi, edi ; character focus flag
@@: cmp [_full_redraw], 1 mov al, [symbol_current]
je .draw cmp al, [symbol_focused]
cmp al, [symbol_focused] jne @f
je .draw inc edi
cmp al, [symbol_unfocused] ; previously focused, should redraw to clear focus @@: cmp [_full_redraw], 1
je .draw je .draw
jmp .skip ; skip button if it isn't (un)focused cmp al, [symbol_focused]
je .draw
.draw: cmp al, [symbol_unfocused] ; previously focused, should redraw to clear focus
call draw_button je .draw
.skip: jmp .skip ; skip button if it isn't (un)focused
mov bl, [symbol_start]
add bl, 127 ; end of current page .draw:
cmp [symbol_current], bl ; the last on page? call draw_button
jne @f .skip:
mov [button_x], TABLE_BEGIN_X mov bl, [symbol_start]
mov [button_y], TABLE_BEGIN_Y add bl, 127 ; end of current page
ret cmp [symbol_current], bl ; the last on page?
@@: inc [symbol_current] jne @f
add [button_x], BUTTON_SPACE mov [button_x], TABLE_BEGIN_X
cmp [button_x], BUTTON_SPACE*16+TABLE_BEGIN_X ; the last in row? mov [button_y], TABLE_BEGIN_Y
jne .next_button ret
add [button_y], BUTTON_SPACE ; next row @@: inc [symbol_current]
mov [button_x], TABLE_BEGIN_X add [button_x], BUTTON_SPACE
jmp .next_button cmp [button_x], BUTTON_SPACE*16+TABLE_BEGIN_X ; the last in row?
ret jne .next_button
endp add [button_y], BUTTON_SPACE ; next row
mov [button_x], TABLE_BEGIN_X
jmp .next_button
proc draw_button ret
mov edx, 0x80000000 endp
mov dl, [symbol_current]
add edx, BUTTON_ID_SHIFT
mov esi, 0xFFFfff proc draw_button
mcall 8, <[button_x],BUTTON_SIDE>, <[button_y],BUTTON_SIDE> mov edx, 0x80000000
and edx, 0x7FFFFFFF mov dl, [symbol_current]
or edx, 0x20000000 add edx, BUTTON_ID_SHIFT
mcall mov esi, 0xFFFfff
mcall 8, <[button_x],BUTTON_SIDE>, <[button_y],BUTTON_SIDE>
test edi, edi ; is focused? and edx, 0x7FFFFFFF
jz .symbol ; draw only character, not selection square or edx, 0x20000000
.focus_frame: ; draw a blue square (selection), 8 segments mcall
mov esi, [button_x]
mov edi, [button_y] test edi, edi ; is focused?
jz .symbol ; draw only character, not selection square
mov bx, si .focus_frame: ; draw a blue square (selection), 8 segments
shl ebx, 16 mov esi, [button_x]
mov bx, si mov edi, [button_y]
add bx, BUTTON_SIDE
mov cx, di mov bx, si
shl ecx, 16 shl ebx, 16
mov cx, di mov bx, si
mcall 38, , , FOCUS_SQUARE_COLOR add bx, BUTTON_SIDE
add ecx, 0x00010001 mov cx, di
mcall shl ecx, 16
add ecx, (BUTTON_SIDE-2)*0x10000+(BUTTON_SIDE-2) mov cx, di
mcall mcall 38, , , FOCUS_SQUARE_COLOR
add ecx, 0x00010001 add ecx, 0x00010001
mcall mcall
add ecx, (BUTTON_SIDE-2)*0x10000+(BUTTON_SIDE-2)
mov bx, si mcall
shl ebx, 16 add ecx, 0x00010001
mov bx, si mcall
mov cx, di
shl ecx, 16 mov bx, si
mov cx, di shl ebx, 16
add ecx, 2*0x10000+(BUTTON_SIDE-2) mov bx, si
mcall 38, , , mov cx, di
add ebx, 0x00010001 shl ecx, 16
mcall mov cx, di
add ebx, (BUTTON_SIDE-2)*0x10000+(BUTTON_SIDE-2) add ecx, 2*0x10000+(BUTTON_SIDE-2)
mcall mcall 38, , ,
add ebx, 0x00010001 add ebx, 0x00010001
mcall mcall
add ebx, (BUTTON_SIDE-2)*0x10000+(BUTTON_SIDE-2)
.symbol: mcall
mov ebx, [button_x] add ebx, 0x00010001
add ebx, 9 mcall
shl ebx, 16
add ebx, [button_y] .symbol:
add ebx, 7 mov ebx, [button_x]
mov ecx, [font_type] add ebx, 9
mcall 4, , , symbol_current, 1 shl ebx, 16
add ebx, [button_y]
ret add ebx, 7
endp mov ecx, [font_type]
mcall 4, , , symbol_current, 1
proc draw_page_switcher _blinking ret
endp
mcall 8, , , 0x8000FFAA
mov esi, 0xCCCccc
cmp [_blinking], 1 ; blinking? proc draw_page_switcher _blinking
jne @f
mov esi, SWITCHER_BLINK_COLOR mcall 8, , , 0x8000FFAA
@@: mcall , <2,98>, <PANEL_Y+1,23>, 0x0000FFAA mov esi, 0xCCCccc
cmp [_blinking], 1 ; blinking?
mov ecx, 0x81000000 jne @f
mov edx, string_000_127 mov esi, SWITCHER_BLINK_COLOR
cmp [symbol_start], 0 ; first page? @@: mcall , <2,98>, <PANEL_Y+1,23>, 0x0000FFAA
je @f
mov edx, string_128_255 ; ok, the second one mov ecx, 0x81000000
@@: mcall 4, <10,PANEL_Y+6>, mov edx, string_000_127
mcall , <278,PANEL_Y+6>, 0x81000000, string_ASCII_CODE cmp [symbol_start], 0 ; first page?
je @f
ret mov edx, string_128_255 ; ok, the second one
endp @@: mcall 4, <10,PANEL_Y+6>,
mcall , <278,PANEL_Y+6>, 0x81000000, string_ASCII_CODE
proc draw_font_switcher
ret
mcall 8, <120,136>, <PANEL_Y+1,23>, 0x0000EEBB endp
mov edx, string_font_small proc draw_font_switcher
cmp [font_type], FONT_SMALL
je @f mcall 8, <120,136>, <PANEL_Y+1,23>, 0x0000EEBB
mov edx, string_font_big
@@: mcall 4, <130,PANEL_Y+6>,,,10 mov edx, string_font_small
cmp [font_type], FONT_SMALL
ret je @f
endp mov edx, string_font_big
@@: mcall 4, <130,PANEL_Y+6>,,,10
proc draw_codes ret
endp
movzx ecx, [symbol_focused]
mcall 47, 0x00030000, , <339,PANEL_Y+6>, 0x41000000, 0xAAAaaa
mcall , 0x00020100, , <508,PANEL_Y+6>, proc draw_codes
ret movzx ecx, [symbol_focused]
endp mcall 47, 0x00030000, , <339,PANEL_Y+6>, 0x41000000, 0xAAAaaa
mcall , 0x00020100, , <508,PANEL_Y+6>,
quit: ret
mcall -1 endp
szZ window_title ,'ASCIIVju' quit:
szZ string_000_127 ,'000-127' mcall -1
szZ string_128_255 ,'128-255'
szZ string_font_small ,'Font1 6x9 '
szZ string_font_big ,'Font2 8x14' szZ window_title ,'ASCIIVju'
szZ string_ASCII_CODE ,'Code: Hex-Code:' szZ string_000_127 ,'000-127'
szZ string_128_255 ,'128-255'
button_x dd 2 szZ string_font_small ,'Font1 6x9 '
button_y dd 2 szZ string_font_big ,'Font2 8x14'
szZ string_ASCII_CODE ,'Code: Hex-Code:'
font_type dd FONT_SMALL
button_x dd 2
symbol_current db 0 button_y dd 2
symbol_start db 0
font_type dd FONT_SMALL
symbol_unfocused db 0
symbol_focused db 0 symbol_current db 0
i_end: symbol_start db 0
proc_info process_information
rb 0x400 ;stack symbol_unfocused db 0
e_end: symbol_focused db 0
i_end:
proc_info process_information
rb 0x400 ;stack
e_end:

View File

@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end 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") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())

Binary file not shown.

View File

@@ -28,7 +28,7 @@ IMPORT
RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar; RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar;
CONST CONST
HEADER = "CEdit (27-feb-2025)"; HEADER = "CEdit (30-apr-2025)";
ShellFilter = ""; ShellFilter = "";
EditFilter = "sh|inc|txt|asm|ob07|c|cpp|h|pas|pp|lua|ini|json"; EditFilter = "sh|inc|txt|asm|ob07|c|cpp|h|pas|pp|lua|ini|json";
@@ -1320,7 +1320,7 @@ BEGIN
|menuBoard: |menuBoard:
K.Run("/sys/develop/board", "") K.Run("/sys/develop/board", "")
|menuSysFunc: |menuSysFunc:
K.Run("/sys/docpack", "f") K.Run("/sys/docpack", "e")
|menuLineNumbers: |menuLineNumbers:
T.toggleNumbers; T.toggleNumbers;
Ini.setInt("settings", "line_numbers", ORD(T.lineNumbers)) Ini.setInt("settings", "line_numbers", ORD(T.lineNumbers))

View File

@@ -1,2 +1,4 @@
if tup.getconfig("NO_FASM") ~= "" then return end if tup.getconfig("NO_FASM") ~= "" then return end
tup.rule("charsets.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "charsets") HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../.." or tup.getconfig("HELPERDIR")
tup.include(HELPERDIR .. "/use_fasm.lua")
tup.rule("charsets.asm", FASM .. " -dlang=" .. tup.getconfig("LANG") .. " %f %o" .. tup.getconfig("KPACK_CMD"), "%B")

View File

@@ -31,3 +31,19 @@ Development history
- Renamed to Charsets Viewer/Charsets - Renamed to Charsets Viewer/Charsets
- Symbol highlight UI tweaks - Symbol highlight UI tweaks
- Fixed rolled up bug - Fixed rolled up bug
30.03.2025 - 0.4.0
- Localization for all system languages
- Display all character scales
- Abolity to copy character codes
- Block on charpage 00 for CP866
- New character code half markers
- Navigation using keys (see hotkeys.txt)
03.04.2025 - 0.4.1
- Fixed bug with codes color subscription
04.04.2025 - 0.4.2
- Fixed bug with resetting UTF charpage to zero on double charset swap to CP866
- Improved charpage blocking for CP866 UX
- Improved char codes copying UI

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,12 @@
Control hotkeys
- Navigate inside charpage:
- Arrows
- Num2/4/6/8
- Navigation between charpages:
- PgDN, PgUP - previous/next page
- Num0, Home - reset page to zero
- Change symbol scale:
- Num- and Num+

View File

@@ -1,125 +1,131 @@
;Ž¯â¨¬¨§¨à®¢ ­­ë© ª®¬¯®­¥­â CheckBox (ˆá室­ë© ¢ à¨ ­â ®â Maxxxx32) ; SPDX-License-Identifier: NOASSERTION
;Ž¯â¨¬¨§¨à®¢ ­ ¢ë¢®¤ áâப¨, ­ ¤¯¨á¨ ¤«ï CheckBox'a + ⥯¥àì ¯à¨ ¯à®¢¥àª¥ ­¥ ;¯à®¨á室¨â ¯®¤áç¥â ª®«-¢  ᨬ¢®«®¢ ¢ áâப¥ ;
;Ž¯â¨¬¨§ æ¨ï ª®¬ ­¤.
;21.02.2007 ¬®¤¥à­¨§ æ¨ï ¨ ¯®¤¤¥à¦ª  ¤¢ãå à §­ëå ¢ à¨ ­â®¢ á ¨á¯®«ì§®¢ ­¨¥¬ á¨á 梥⮢ ¨ áâ à®© á奬®© ; Text encoded with Code Page 866 - Cyrillic
;19.02.2007 ®¡é¥¥ ã«ãç襭¨¥ ª®¤ , 㬥­ì襭¨¥ à §¬¥à  ¨ ¨á¯®«ì§®¢ ­¨¥ á¨á⥬­ëå æ¢¥â®¢ ¤«ï ®â®¡à ¦¥­¨ï checkbox
;22.08.2006 ¯à®¨§¢¥¤¥­  ®¯â¨¬¨§ æ¨ï ª®¬ ­¤, ¯à¨­ïâë ¢® ¢­¨¬ ­¨¥ § ¬¥ç ­¨ï DIAMOND' .
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru ;Ž¯â¨¬¨§¨à®¢ ­­ë© ª®¬¯®­¥­â CheckBox (ˆá室­ë© ¢ à¨ ­â ®â Maxxxx32)
;Ž¯â¨¬¨§¨à®¢ ­ ¢ë¢®¤ áâப¨, ­ ¤¯¨á¨ ¤«ï CheckBox'a + ⥯¥àì ¯à¨ ¯à®¢¥àª¥ ­¥ ;¯à®¨á室¨â ¯®¤áç¥â ª®«-¢  ᨬ¢®«®¢ ¢ áâப¥
;§ £®«®¢®ª ¯à¨«®¦¥­¨ï ;Ž¯â¨¬¨§ æ¨ï ª®¬ ­¤.
use32 ; âà ­á«ïâ®à, ¨á¯®«ì§ãî騩 32 à §à來ëå ª®¬ ­¤ë ;21.02.2007 ¬®¤¥à­¨§ æ¨ï ¨ ¯®¤¤¥à¦ª  ¤¢ãå à §­ëå ¢ à¨ ­â®¢ á ¨á¯®«ì§®¢ ­¨¥¬ á¨á 梥⮢ ¨ áâ à®© á奬®©
org 0x0 ; ¡ §®¢ë©  ¤à¥á ª®¤ , ¢á¥£¤  0x0 ;19.02.2007 ®¡é¥¥ ã«ãç襭¨¥ ª®¤ , 㬥­ì襭¨¥ à §¬¥à  ¨ ¨á¯®«ì§®¢ ­¨¥ á¨á⥬­ëå æ¢¥â®¢ ¤«ï ®â®¡à ¦¥­¨ï checkbox
db 'MENUET01' ; ¨¤¥­â¨ä¨ª â®à ¨á¯®«­ï¥¬®£® ä ©«  (8 ¡ ©â) ;22.08.2006 ¯à®¨§¢¥¤¥­  ®¯â¨¬¨§ æ¨ï ª®¬ ­¤, ¯à¨­ïâë ¢® ¢­¨¬ ­¨¥ § ¬¥ç ­¨ï DIAMOND' .
dd 0x1 ; ¢¥àá¨ï ä®à¬ â  § £®«®¢ª  ¨á¯®«­ï¥¬®£® ä ©«  ;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru
dd start ;  ¤à¥á, ­  ª®â®àë© á¨á⥬  ¯¥à¥¤ ñâ ã¯à ¢«¥­¨¥
; ¯®á«¥ § £à㧪¨ ¯à¨«®¦¥­¨ï ¢ ¯ ¬ïâì ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï
dd i_end ; à §¬¥à ¯à¨«®¦¥­¨ï use32 ; âà ­á«ïâ®à, ¨á¯®«ì§ãî騩 32 à §à來ëå ª®¬ ­¤ë
dd i_end ; Ž¡ê¥¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ïâ¨, ¤«ï á⥪  ®â¢¥¤¥¬ 0å100 ¡ ©â ¨ ¢ë஢­¨¬ ­  £à­¨æã 4 ¡ ©â  org 0x0 ; ¡ §®¢ë©  ¤à¥á ª®¤ , ¢á¥£¤  0x0
dd i_end ; à á¯®«®¦¨¬ ¯®§¨æ¨î á⥪  ¢ ®¡« á⨠¯ ¬ïâ¨, áà §ã §  ⥫®¬ ¯à®£à ¬¬ë. ‚¥à設  á⥪  ¢ ¤¨ ¯ §®­¥ ¯ ¬ïâ¨, 㪠§ ­­®¬ ¢ëè¥ db 'MENUET01' ; ¨¤¥­â¨ä¨ª â®à ¨á¯®«­ï¥¬®£® ä ©«  (8 ¡ ©â)
dd 0x0,0x0 ; 㪠§ â¥«ì ­  áâபã á ¯ à ¬¥âà ¬¨. 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 ;¨á¯®«ì§ãï ¬ ªà®áë ¢­¥á⨠¯à®æ¥¤ãàë ¤«ï à¨á®¢ ­¨ï 祪 ¡®ªá  ;------------------
;Ž¡« áâì ª®¤  include '..\..\..\macros.inc'
align 4 include 'check.inc' ;¢ª«îç¨âì ä ©« check.inc
start: ;’®çª  ¢å®¤  ¢ ¯à®£à ¬¬ã ; version_ch ;­¥®¡å®¤¨¬ë© ¬ ªà®á ¤«ï ¢ª«î祭¨ï "áâ à®©" ¢¥àᨨ check_box
mov eax,48 ;¯®«ãç¨âì á¨á⥬­ë¥ æ¢¥â  version_ch1 ;­¥®¡å®¤¨¬ë© ¬ ªà®á ¤«ï ¢ª«î祭¨ï new ¢¥àᨨ check_box1
mov ebx,3 ;<3B>¥¤®¯ãá⨬® ¢ª«î祭¨¥ ¤¢ãå ¬ ªà®á¢® version_ch1 ¨ version_ch - ®­¨ ¢§ ¬®¨áª«îç îâ ¤àã£- ¤à£ã£ .
mov ecx,sc use_check_box ;¨á¯®«ì§ãï ¬ ªà®áë ¢­¥á⨠¯à®æ¥¤ãàë ¤«ï à¨á®¢ ­¨ï 祪 ¡®ªá 
mov edx,sizeof.system_colors ;Ž¡« áâì ª®¤ 
mcall align 4
start: ;’®çª  ¢å®¤  ¢ ¯à®£à ¬¬ã
mov eax,40 ;ãáâ ­®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩ mov eax,48 ;¯®«ãç¨âì á¨á⥬­ë¥ 梥â 
mov ebx,0x25 ;á¨á⥬  ¡ã¤¥â ॠ£¨à®¢ âì ⮫쪮 ­  á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥,­ ¦ â  ª­®¯ª , ®¯à¥¤¥«ñ­­ ï à ­¥¥, ᮡë⨥ ®â ¬ëè¨ (çâ®-â® á«ã稫®áì - ­ ¦ â¨¥ ­  ª­®¯ªã ¬ëè¨ ¨«¨ ¯¥à¥¬¥é¥­¨¥; á¡à á뢠¥âáï ¯à¨ ¯à®ç⥭¨¨) mov ebx,3
mcall mov ecx,sc
red_win: mov edx,sizeof.system_colors
call draw_window ;¯¥à¢®­ ç «ì­® ­¥®¡å®¤¨¬® ­ à¨á®¢ âì ®ª­® mcall
still: ;®á­®¢­®© ®¡à ¡®â稪
mov eax,10 ;ަ¨¤ âì ᮡëâ¨ï mov eax,40 ;ãáâ ­®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩
mcall ;®¦¨¤ âì ᮡë⨥ ¢ â¥ç¥­¨¥ 2 ¬¨««¨á¥ªã­¤ mov ebx,0x25 ;á¨á⥬  ¡ã¤¥â ॠ£¨à®¢ âì ⮫쪮 ­  á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥,­ ¦ â  ª­®¯ª , ®¯à¥¤¥«ñ­­ ï à ­¥¥, ᮡë⨥ ®â ¬ëè¨ (çâ®-â® á«ã稫®áì - ­ ¦ â¨¥ ­  ª­®¯ªã ¬ëè¨ ¨«¨ ¯¥à¥¬¥é¥­¨¥; á¡à á뢠¥âáï ¯à¨ ¯à®ç⥭¨¨)
mcall
cmp al,0x1 ;¥á«¨ ¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­  red_win:
jz red_win call draw_window ;¯¥à¢®­ ç «ì­® ­¥®¡å®¤¨¬® ­ à¨á®¢ âì ®ª­®
cmp al,0x3 ;¥á«¨ ­ ¦ â  ª­®¯ª  â® ¯¥à¥©â¨ still: ;®á­®¢­®© ®¡à ¡®â稪
jz button mov eax,10 ;ަ¨¤ âì ᮡëâ¨ï
mouse_check_boxes check_boxes,check_boxes_end ;¯à®¢¥àª  祪 ¡®ªá  mcall ;®¦¨¤ âì ᮡë⨥ ¢ â¥ç¥­¨¥ 2 ¬¨««¨á¥ªã­¤
jmp still ;¥á«¨ ­¨ç¥£® ¨§ ¯¥à¥ç¨á«¥­­®£® â® á­®¢  ¢ 横«
button: cmp al,0x1 ;¥á«¨ ¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
or eax,-1 ;¢ eax,-1 - 5 ,¡ ©â®¢ ã ­ á ¦¥ ⮫쪮 3 ¢ë©â¨ jz red_win
mcall ;¤ «¥¥ ¢ë¯®«­ï¥âáï ¢ë室 ¨§ ¯à®£à ¬¬ë cmp al,0x3 ;¥á«¨ ­ ¦ â  ª­®¯ª  â® ¯¥à¥©â¨
jz button
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mouse_check_boxes check_boxes,check_boxes_end ;¯à®¢¥àª  祪 ¡®ªá 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> jmp still ;¥á«¨ ­¨ç¥£® ¨§ ¯¥à¥ç¨á«¥­­®£® â® á­®¢  ¢ 横«
draw_window: ;à¨á®¢ ­¨¥ ®ª­  ¯à¨«®¦¥­¨ï button:
mov eax,12 ;¢ ॣ¨áâà ¢­¥á⨠§­ ç¥­¨¥ = 12 or eax,-1 ;¢ eax,-1 - 5 ,¡ ©â®¢ ã ­ á ¦¥ ⮫쪮 3 ¢ë©â¨
mov ebx,1 ;¯à¨á¢®¨âì 1 mcall ;¤ «¥¥ ¢ë¯®«­ï¥âáï ¢ë室 ¨§ ¯à®£à ¬¬ë
mcall
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
xor eax,eax ;®¡­ã«¨âì eax ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
mov ebx,50*65536+180 ;[ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x] draw_window: ;à¨á®¢ ­¨¥ ®ª­  ¯à¨«®¦¥­¨ï
mov ecx,30*65536+100 ;[ª®®à¤¨­ â  ¯® ®á¨ y]*65536 + [à §¬¥à ¯® ®á¨ y] mov eax,12 ;¢ ॣ¨áâà ¢­¥á⨠§­ ç¥­¨¥ = 12
mov edx,[sc.work] ; color of work area RRGGBB,8->color gl mov ebx,1 ;¯à¨á¢®¨âì 1
or edx,0xb3000000 mcall
mov edi,hed
mcall ;­ à¨á®¢ âì ®ª­® ¯à¨«®¦¥­¨ï xor eax,eax ;®¡­ã«¨âì eax
mov ebx,50*65536+180 ;[ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x]
draw_check_boxes check_boxes,check_boxes_end ;à¨á®¢ ­¨¥ 祪¡®ªá®¢ mov ecx,30*65536+100 ;[ª®®à¤¨­ â  ¯® ®á¨ y]*65536 + [à §¬¥à ¯® ®á¨ y]
mov edx,[sc.work] ; color of work area RRGGBB,8->color gl
mov eax,12 ;”ã­ªæ¨ï 12 - ­ ç âì/§ ª®­ç¨âì ¯¥à¥à¨á®¢ªã ®ª­ . or edx,0xb3000000
mov ebx,2 ;<3B>®¤äã­ªæ¨ï 2 - § ª®­ç¨âì ¯¥à¥à¨á®¢ªã ®ª­ . mov edi,hed
mcall mcall ;­ à¨á®¢ âì ®ª­® ¯à¨«®¦¥­¨ï
ret
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> draw_check_boxes check_boxes,check_boxes_end ;à¨á®¢ ­¨¥ 祪¡®ªá®¢
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;DATA ¤ ­­ë¥ mov eax,12 ;”ã­ªæ¨ï 12 - ­ ç âì/§ ª®­ç¨âì ¯¥à¥à¨á®¢ªã ®ª­ .
;”®à¬ â ¤ ­­ëå 祪 ¡®ªá : mov ebx,2 ;<3B>®¤äã­ªæ¨ï 2 - § ª®­ç¨âì ¯¥à¥à¨á®¢ªã ®ª­ .
;10 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® å mcall
;30 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® ã ret
;0 - 梥⠧ «¨¢ª¨ ¢­ãâਠ祪 ¡®ªá  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;0xfffffff - 梥â à ¬ª¨ 祪 ¡®ªá  ¥á«¨ ­ã¦­® â ª ¨á¯®«ì§ãîâáï á¨â¥¬­ë¥ æ¢¥â  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;0 - 梥â ⥪áâ  ­ ¤¯¨á¨ ¥á«¨ ­ã¦­® â ª ¨á¯®«ì§ãîâáï á¨â¥¬­ë¥ æ¢¥â  ;DATA ¤ ­­ë¥
;ch_text.1 - 㪠§ â¥«ì ­  ­ ç «® áâப¨ ;”®à¬ â ¤ ­­ëå 祪 ¡®ªá :
;ch_text.e1-ch_text.1 - ¤«¨­  áâப¨ ;10 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® å
; ;30 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® ã
align 4 ;0 - 梥⠧ «¨¢ª¨ ¢­ãâਠ祪 ¡®ªá 
check_boxes: ;0xfffffff - 梥â à ¬ª¨ 祪 ¡®ªá  ¥á«¨ ­ã¦­® â ª ¨á¯®«ì§ãîâáï á¨â¥¬­ë¥ 梥â 
;ch1 check_box 10,15,0xffffff,0,0,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en ;0 - 梥â ⥪áâ  ­ ¤¯¨á¨ ¥á«¨ ­ã¦­® â ª ¨á¯®«ì§ãîâáï á¨â¥¬­ë¥ 梥â 
;ch2 check_box 10,30,0xffffff,0,0,ch_text.2,ch_text.e2-ch_text.2 ;ch_text.1 - 㪠§ â¥«ì ­  ­ ç «® áâப¨
;ch3 check_box 10,45,0xffffff,0,0,ch_text.3,ch_text.e3-ch_text.3 ;ch_text.e1-ch_text.1 - ¤«¨­  áâப¨
;
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> align 4
;DATA ¤ ­­ë¥ ¤«ï check_box1 - ¨á¯®«ì§ã¥â á¨á⥬­ë¥ æ¢¥â  check_boxes:
;”®à¬ â ¤ ­­ëå 祪 ¡®ªá : ;ch1 check_box 10,15,0xffffff,0,0,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en
;10 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® å ;ch2 check_box 10,30,0xffffff,0,0,ch_text.2,ch_text.e2-ch_text.2
;30 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® ã ;ch3 check_box 10,45,0xffffff,0,0,ch_text.3,ch_text.e3-ch_text.3
;ch_text.1 - 㪠§ â¥«ì ­  ­ ç «® áâப¨
;ch_text.e1-ch_text.1 - ¤«¨­  áâப¨ ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;DATA ¤ ­­ë¥ ¤«ï check_box1 - ¨á¯®«ì§ã¥â á¨á⥬­ë¥ 梥â 
; ;”®à¬ â ¤ ­­ëå 祪 ¡®ªá :
ch1 check_box1 10,15,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en ;10 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® å
ch2 check_box1 10,30,ch_text.2,ch_text.e2-ch_text.2 ;30 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® ã
ch3 check_box1 10,45,ch_text.3,ch_text.e3-ch_text.3 ;ch_text.1 - 㪠§ â¥«ì ­  ­ ç «® áâப¨
check_boxes_end: ;ch_text.e1-ch_text.1 - ¤«¨­  áâப¨
ch_text: ;ᮯ஢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢ ;
.1 db 'Check_Box #1' ch1 check_box1 10,15,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en
.e1: ch2 check_box1 10,30,ch_text.2,ch_text.e2-ch_text.2
.2 db 'Check_Box #2' ch3 check_box1 10,45,ch_text.3,ch_text.e3-ch_text.3
.e2: check_boxes_end:
.3 db 'Check_Box #3'
.e3: ch_text: ;ᮯ஢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢
.1 db 'Check_Box #1'
hed db 'Checkbox [21.02.2007]',0 ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï .e1:
align 16 .2 db 'Check_Box #2'
sc system_colors .e2:
rb 0x100 .3 db 'Check_Box #3'
i_end: ;ª®­¥æ ª®¤  .e3:
hed db 'Checkbox [21.02.2007]',0 ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï
align 16
sc system_colors
rb 0x100
i_end: ;ª®­¥æ ª®¤ 

View File

@@ -1,3 +1,7 @@
; SPDX-License-Identifier: NOASSERTION
;
; ;
; SHAPED WINDOW - BASIC EXAMPLE ; SHAPED WINDOW - BASIC EXAMPLE
; ;
@@ -16,7 +20,7 @@ use32
dd E_END ; esp dd E_END ; esp
dd 0, 0 ; no params, no path dd 0, 0 ; no params, no path
include '..\..\..\..\macros.inc' include '..\..\..\macros.inc'

View File

@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end 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") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())

View File

@@ -1,126 +1,128 @@
; ; SPDX-License-Identifier: NOASSERTION
; CPU SPEED INDICATIOR ;
;
; Compile with FASM ;
; ; CPU SPEED INDICATIOR
;
use32 ; Compile with FASM
org 0x0 ;
db 'MENUET01' ; 8 byte id use32
dd 0x01 ; header version org 0x0
dd START ; start of code
dd I_END ; size of image db 'MENUET01' ; 8 byte id
dd 0x1000 ; memory for app dd 0x01 ; header version
dd 0x1000 ; esp dd START ; start of code
dd 0x0,0x0 ; I_Param , I_Icon dd I_END ; size of image
dd 0x1000 ; memory for app
include 'lang.inc' dd 0x1000 ; esp
include '..\..\..\..\macros.inc' dd 0x0,0x0 ; I_Param , I_Icon
START: ; start of execution include 'lang.inc'
include '..\..\..\macros.inc'
mov eax,18
mov ebx,5 START: ; start of execution
mcall
mov eax,18
xor edx,edx mov ebx,5
mov ebx,1000000 mcall
div ebx
mov ebx,10 xor edx,edx
mov edi,text+19 mov ebx,1000000
mov ecx,5 div ebx
newnum: mov ebx,10
xor edx,edx mov edi,text+19
mov ebx,10 mov ecx,5
div ebx newnum:
add dl,48 xor edx,edx
mov [edi],dl mov ebx,10
sub edi,1 div ebx
loop newnum add dl,48
mov [edi],dl
mov eax,48 sub edi,1
mov ebx,3 loop newnum
mov ecx,sc
mov edx,sizeof.system_colors mov eax,48
mcall mov ebx,3
mov ecx,sc
red: mov edx,sizeof.system_colors
call draw_window ; at first, draw the window mcall
still: red:
call draw_window ; at first, draw the window
mov eax,10 ; wait here for event
mcall still:
cmp eax,1 ; redraw request ? mov eax,10 ; wait here for event
jz red mcall
cmp eax,2 ; key in buffer ?
jz key cmp eax,1 ; redraw request ?
cmp eax,3 ; button in buffer ? jz red
jz button cmp eax,2 ; key in buffer ?
jz key
jmp still cmp eax,3 ; button in buffer ?
jz button
key: ; key
mov eax,2 ; just read it and ignore jmp still
mcall
jmp still key: ; key
mov eax,2 ; just read it and ignore
button: ; button mcall
mov eax,17 ; get id jmp still
mcall
button: ; button
cmp ah,1 ; button id=1 ? mov eax,17 ; get id
jnz still mcall
or eax,-1 ; close this program
mcall cmp ah,1 ; button id=1 ?
jnz still
or eax,-1 ; close this program
; ********************************************* mcall
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
draw_window: ; *********************************************
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw draw_window:
mcall
mov eax,12 ; function 12:tell os about windowdraw
; DRAW WINDOW mov ebx,1 ; 1, start of draw
mov eax,0 ; function 0 : define and draw window mcall
mov ebx,100*65536+200 ; [x start] *65536 + [x size]
mov ecx,100*65536+65 ; [y start] *65536 + [y size] ; DRAW WINDOW
mov edx,[sc.work] ; color of work area RRGGBB,8->color glide mov eax,0 ; function 0 : define and draw window
or edx,0x33000000 ; color of grab bar RRGGBB,8->color mov ebx,100*65536+200 ; [x start] *65536 + [x size]
mov edi,title ; WINDOW LABEL mov ecx,100*65536+65 ; [y start] *65536 + [y size]
mcall 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
mov ebx,20*65536+14 ; draw info text with function 4 mcall
mov ecx,[sc.work_text]
mov edx,text
mov esi,24 mov ebx,20*65536+14 ; draw info text with function 4
mov eax,4 mov ecx,[sc.work_text]
mcall mov edx,text
mov esi,24
mov eax,12 ; function 12:tell os about windowdraw mov eax,4
mov ebx,2 ; 2, end of draw mcall
mcall
mov eax,12 ; function 12:tell os about windowdraw
ret mov ebx,2 ; 2, end of draw
mcall
; DATA AREA ret
text: ; DATA AREA
db 'CPU RUNNING AT MHZ'
title db 'CPU SPEED',0 text:
db 'CPU RUNNING AT MHZ'
I_END:
title db 'CPU SPEED',0
sc system_colors
I_END:
sc system_colors

View File

@@ -1,68 +1,74 @@
;<EFBFBD> á¯à®áâà ­ï¥âáï ¯® «¨æ¥­§¨¨ GPL SEE YOU File FAQ.txt and HISTORY. Good Like! ; SPDX-License-Identifier: NOASSERTION
;Ž¯â¨¬¨§¨à®¢ ­­ë© ª®¬¯®­¥­â EditBox (ˆá室­ë© ¢ à¨ ­â ®â Maxxxx32) ;
;Ž¯â¨¬¨§ æ¨ï ª®¬ ­¤.
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru ; Text encoded with Code Page 866 - Cyrillic
;§ £®«®¢®ª ¯à¨«®¦¥­¨ï
include '..\..\..\..\macros.inc'
include 'editbox.inc' ;<3B> á¯à®áâà ­ï¥âáï ¯® «¨æ¥­§¨¨ GPL SEE YOU File FAQ.txt and HISTORY. Good Like!
KOS_APP_START ;Ž¯â¨¬¨§¨à®¢ ­­ë© ª®¬¯®­¥­â EditBox (ˆá室­ë© ¢ à¨ ­â ®â Maxxxx32)
align 4 ;Ž¯â¨¬¨§ æ¨ï ª®¬ ­¤.
use_edit_box ;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru
;Ž¡« áâì ª®¤  ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï
code ;’®çª  ¢å®¤  ¢ ¯à®£à ¬¬ã include '..\..\..\macros.inc'
mcall 40,0x27 ;ãáâ ­®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩ include 'editbox.inc'
;á¨á⥬  ¡ã¤¥â ॠ£¨à®¢ âì ⮫쪮 ­  á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥,­ ¦ â  ª­®¯ª , ®¯à¥¤¥«ñ­­ ï à ­¥¥, ᮡë⨥ ®â ¬ëè¨ (çâ®-â® á«ã稫®áì - ­ ¦ â¨¥ ­  ª­®¯ªã ¬ëè¨ ¨«¨ ¯¥à¥¬¥é¥­¨¥; á¡à á뢠¥âáï ¯à¨ ¯à®ç⥭¨¨) ¨ ­ ¦ â¨¥ ª« ¢¨è¨ KOS_APP_START
red_win: align 4
call draw_window ;¯¥à¢®­ ç «ì­® ­¥®¡å®¤¨¬® ­ à¨á®¢ âì ®ª­® use_edit_box
align 4 ;Ž¡« áâì ª®¤ 
still: ;®á­®¢­®© ®¡à ¡®â稪 code ;’®çª  ¢å®¤  ¢ ¯à®£à ¬¬ã
mcall 10 ;ަ¨¤ âì ᮡëâ¨ï mcall 40,0x27 ;ãáâ ­®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩
dec eax ;á¨á⥬  ¡ã¤¥â ॠ£¨à®¢ âì ⮫쪮 ­  á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥,­ ¦ â  ª­®¯ª , ®¯à¥¤¥«ñ­­ ï à ­¥¥, ᮡë⨥ ®â ¬ëè¨ (çâ®-â® á«ã稫®áì - ­ ¦ â¨¥ ­  ª­®¯ªã ¬ëè¨ ¨«¨ ¯¥à¥¬¥é¥­¨¥; á¡à á뢠¥âáï ¯à¨ ¯à®ç⥭¨¨) ¨ ­ ¦ â¨¥ ª« ¢¨è¨
jz red_win red_win:
dec eax call draw_window ;¯¥à¢®­ ç «ì­® ­¥®¡å®¤¨¬® ­ à¨á®¢ âì ®ª­®
jz key align 4
dec eax still: ;®á­®¢­®© ®¡à ¡®â稪
jz button mcall 10 ;ަ¨¤ âì ᮡëâ¨ï
mouse_edit_boxes editboxes,editboxes_end dec eax
jmp still ;¥á«¨ ­¨ç¥£® ¨§ ¯¥à¥ç¨á«¥­­®£® â® á­®¢  ¢ 横« jz red_win
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; dec eax
button: jz key
mcall 17 ;¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª« ¢¨è¨ dec eax
test ah,ah ;¥á«¨ ¢ ah 0, â® ¯¥à¥©â¨ ­  ®¡à ¡®â稪 ᮡë⨩ still jz button
jz still mouse_edit_boxes editboxes,editboxes_end
mcall -1 jmp still ;¥á«¨ ­¨ç¥£® ¨§ ¯¥à¥ç¨á«¥­­®£® â® á­®¢  ¢ 横«
key: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mcall 2 ;§ £à㧨¬ §­ ç¥­¨¥ 2 ¢ ॣ¨áâ®à eax ¨ ¯®«ã稬 ª®¤ ­ ¦ â®© ª« ¢¨è¨ button:
key_edit_boxes editboxes,editboxes_end mcall 17 ;¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª« ¢¨è¨
jmp still test ah,ah ;¥á«¨ ¢ ah 0, â® ¯¥à¥©â¨ ­  ®¡à ¡®â稪 ᮡë⨩ still
jz still
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mcall -1
align 4 key:
draw_window: ;à¨á®¢ ­¨¥ ®ª­  ¯à¨«®¦¥­¨ï mcall 2 ;§ £à㧨¬ §­ ç¥­¨¥ 2 ¢ ॣ¨áâ®à eax ¨ ¯®«ã稬 ª®¤ ­ ¦ â®© ª« ¢¨è¨
mcall 12,1 key_edit_boxes editboxes,editboxes_end
mcall 0,(50*65536+390),(30*65536+200),0xb3AABBCC,0x805080DD,hed jmp still
draw_edit_boxes editboxes,editboxes_end ;à¨á®¢ ­¨¥ edit box'®¢
mcall 12,2 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ret align 4
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> draw_window: ;à¨á®¢ ­¨¥ ®ª­  ¯à¨«®¦¥­¨ï
;DATA ¤ ­­ë¥ mcall 12,1
editboxes: mcall 0,(50*65536+390),(30*65536+200),0xb3AABBCC,0x805080DD,hed
edit1 edit_box 168,5,10,0xffffff,0x6a9480,0,0,0,99,ed_buffer.2,ed_figure_only draw_edit_boxes editboxes,editboxes_end ;à¨á®¢ ­¨¥ edit box'®¢
edit2 edit_box 250,5,30,0xffffff,0x6a9480,0,0xAABBCC,0,308,hed,ed_focus,53,53 mcall 12,2
edit3 edit_box 35,5,50,0xffffff,0x6a9480,0,0,0,9,ed_buffer.3,ed_figure_only ret
edit4 edit_box 16,5,70,0xffffff,0x6a9480,0,0,0,1,ed_buffer.4,ed_figure_only ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
editboxes_end: ;DATA ¤ ­­ë¥
data_of_code dd 0 editboxes:
mouse_flag dd 0x0 edit1 edit_box 168,5,10,0xffffff,0x6a9480,0,0,0,99,ed_buffer.2,ed_figure_only
hed db 'EDITBOX optimization and retype <Lrz> date 23.07.2008',0 edit2 edit_box 250,5,30,0xffffff,0x6a9480,0,0xAABBCC,0,308,hed,ed_focus,53,53
rb 256 edit3 edit_box 35,5,50,0xffffff,0x6a9480,0,0,0,9,ed_buffer.3,ed_figure_only
ed_buffer: edit4 edit_box 16,5,70,0xffffff,0x6a9480,0,0,0,1,ed_buffer.4,ed_figure_only
;.1: rb 514;256 editboxes_end:
.2: rb 101 data_of_code dd 0
.3: rb 11 mouse_flag dd 0x0
.4: rb 3 hed db 'EDITBOX optimization and retype <Lrz> date 23.07.2008',0
;¤¢  § ¯ á­ëå ¡ ©â  ­¥®¡å®¤¨¬ë ¤«ï ⮣® çâ® ¡ë ­¥ ¯¥¯¥à¥¯¨á âì á«¥¤ãî騥© ¡ ©âë, ¢ ª®­æ¥ ¡ãä¥à  0 rb 256
buffer_end: ed_buffer:
align 16 ;.1: rb 514;256
KOS_APP_END .2: rb 101
udata .3: rb 11
.4: rb 3
;¤¢  § ¯ á­ëå ¡ ©â  ­¥®¡å®¤¨¬ë ¤«ï ⮣® çâ® ¡ë ­¥ ¯¥¯¥à¥¯¨á âì á«¥¤ãî騥© ¡ ©âë, ¢ ª®­æ¥ ¡ãä¥à  0
buffer_end:
align 16
KOS_APP_END
udata

View File

@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end 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") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())

View File

@@ -1,3 +1,7 @@
; SPDX-License-Identifier: NOASSERTION
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ;
; MENU / DIALOG EXAMPLE ; MENU / DIALOG EXAMPLE
@@ -18,7 +22,7 @@ use32
dd 0x0 , 0x0 ; I_Param , I_Icon dd 0x0 , 0x0 ; I_Param , I_Icon
include 'lang.inc' include 'lang.inc'
include '..\..\..\..\macros.inc' include '..\..\..\macros.inc'
include 'dialogs1.inc' include 'dialogs1.inc'
menu_history dd 0x0 menu_history dd 0x0

View File

@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end 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") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())

View File

@@ -1,3 +1,8 @@
; SPDX-License-Identifier: NOASSERTION
;
; Text encoded with Code Page 866 - Cyrillic
; ;
; MENU EXAMPLE ; MENU EXAMPLE
; ;
@@ -13,11 +18,11 @@
dd mem, stacktop, file_name, sys_path dd mem, stacktop, file_name, sys_path
include 'lang.inc' include 'lang.inc'
include '../../../../macros.inc' include '../../../macros.inc'
include '../../../../proc32.inc' include '../../../proc32.inc'
include '../../../../KOSfuncs.inc' include '../../../KOSfuncs.inc'
include '../../../../load_lib.mac' include '../../../load_lib.mac'
include '../../../../dll.inc' include '../../../dll.inc'
KMENUITEM_NORMAL equ 0 KMENUITEM_NORMAL equ 0
KMENUITEM_SUBMENU equ 1 KMENUITEM_SUBMENU equ 1
@@ -94,7 +99,7 @@ start: ; start of execution
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_Help, [main_menu_Help] stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_Help, [main_menu_Help]
stdcall [ksubmenu_add], [main_menu], eax stdcall [ksubmenu_add], [main_menu], eax
red: red:
call draw_window ; draw window call draw_window ; draw window
stdcall [kmainmenu_draw], [main_menu] stdcall [kmainmenu_draw], [main_menu]
@@ -108,7 +113,7 @@ still:
cmp eax,3 cmp eax,3
jz button jz button
cmp eax,6 cmp eax,6
jne @f jne @f
call mouse call mouse
jmp still jmp still
@@: @@:

View File

@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end 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") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())

View File

@@ -1,4 +1,7 @@
include "..\..\..\..\macros.inc" ; SPDX-License-Identifier: NOASSERTION
;
include "..\..\..\macros.inc"
initipc: initipc:
mov eax,9 mov eax,9
@@ -218,4 +221,3 @@ stripc: times 84 db 0
fill_symbol db 0 fill_symbol db 0
prc: times 52 db 0 prc: times 52 db 0

View File

@@ -1,3 +1,9 @@
; SPDX-License-Identifier: NOASSERTION
;
; Text encoded with Code Page 866 - Cyrillic
; Hello, World! - Programm example for CMD shell ; Hello, World! - Programm example for CMD shell
; Compile with FASM ; Compile with FASM
; ;

View File

@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end 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") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())

View File

@@ -1,412 +1,415 @@
; ; SPDX-License-Identifier: NOASSERTION
; Example for Inter Process Communication ;
;
; Compile with FASM ;
; ; Example for Inter Process Communication
include 'lang.inc' ;
include '..\..\..\..\macros.inc' ; Compile with FASM
;
use32 include 'lang.inc'
org 0x0 include '..\..\..\macros.inc'
db 'MENUET01' ; 8 byte id use32
dd 0x01 ; header version org 0x0
dd START ; start of code
dd I_END ; size of image db 'MENUET01' ; 8 byte id
dd 0x60000 ; memory for app dd 0x01 ; header version
dd 0x60000 ; esp dd START ; start of code
dd 0x0 , 0x0 ; I_Param , I_Icon dd I_END ; size of image
dd 0x60000 ; memory for app
START: ; start of execution dd 0x60000 ; esp
dd 0x0 , 0x0 ; I_Param , I_Icon
mov eax,60 ; IPC START: ; start of execution
mov ebx,1 ; define receive area
mov ecx,received_messages ; pointer to start
mov edx,1000 ; size of area mov eax,60 ; IPC
mcall mov ebx,1 ; define receive area
mov ecx,received_messages ; pointer to start
mov eax,40 ; WANTED EVENTS mov edx,1000 ; size of area
mov ebx,01000111b ; IPC 7 + defaults mcall
mcall
mov eax,40 ; WANTED EVENTS
mov [received_messages+8],dword 0*256+0 mov ebx,01000111b ; IPC 7 + defaults
mov [received_messages+12],dword 0 mcall
red: mov [received_messages+8],dword 0*256+0
call draw_window ; at first, draw the window mov [received_messages+12],dword 0
still: red:
call draw_window ; at first, draw the window
mov eax,23 ; wait here for event
mov ebx,50 still:
mcall
mov eax,23 ; wait here for event
cmp eax,1 ; redraw request ? mov ebx,50
je red mcall
cmp eax,2 ; key in buffer ?
je key cmp eax,1 ; redraw request ?
cmp eax,3 ; button in buffer ? je red
je button cmp eax,2 ; key in buffer ?
je key
cmp eax,7 ; IPC ? cmp eax,3 ; button in buffer ?
jne no_ipc je button
call display_ipc_messages
jmp still cmp eax,7 ; IPC ?
no_ipc: jne no_ipc
call display_ipc_messages
jmp still jmp still
no_ipc:
key: ; key
mov eax,2 ; just read it and ignore jmp still
mcall
jmp still key: ; key
mov eax,2 ; just read it and ignore
button: ; button mcall
mov eax,17 ; get id jmp still
mcall
button: ; button
cmp ah,1 ; button id=1 ? mov eax,17 ; get id
jne noclose mcall
mov eax,-1 ; close this program
mcall cmp ah,1 ; button id=1 ?
noclose: jne noclose
mov eax,-1 ; close this program
cmp ah,2 mcall
jne no_read noclose:
call read_string
cmp ah,2
movzx eax,byte [message] jne no_read
sub eax,48 call read_string
imul eax,10
movzx ebx,byte [message+1] movzx eax,byte [message]
add eax,ebx sub eax,48
sub eax,48 imul eax,10
imul eax,10 movzx ebx,byte [message+1]
movzx ebx,byte [message+2] add eax,ebx
add eax,ebx sub eax,48
sub eax,48 imul eax,10
imul eax,10 movzx ebx,byte [message+2]
movzx ebx,byte [message+3] add eax,ebx
add eax,ebx sub eax,48
sub eax,48 imul eax,10
movzx ebx,byte [message+3]
mov [PID],eax add eax,ebx
sub eax,48
mov eax,60 ; IPC
mov ebx,2 ; send message mov [PID],eax
mov ecx,[PID]
mov edx,message+4 mov eax,60 ; IPC
mov esi,20;[message_size] mov ebx,2 ; send message
mcall mov ecx,[PID]
mov edx,message+4
jmp still mov esi,20;[message_size]
no_read: mcall
jmp still
cmp ah,3 no_read:
jne no_messages_pop ; pop the first out
call ipc_message_pop
jmp still cmp ah,3
no_messages_pop: jne no_messages_pop ; pop the first out
call ipc_message_pop
jmp still jmp still
no_messages_pop:
ipc_message_pop: jmp still
pusha
ipc_message_pop:
cmp [received_messages+4],dword 8
je already_empty pusha
mov [received_messages],byte 1 ; lock the area cmp [received_messages+4],dword 8
je already_empty
push dword [received_messages+4]
mov [received_messages],byte 1 ; lock the area
mov ecx,[received_messages+12]
push dword [received_messages+4]
sub [received_messages+4],ecx
sub [received_messages+4],dword 8 mov ecx,[received_messages+12]
mov edi,received_messages+8 sub [received_messages+4],ecx
mov esi,edi sub [received_messages+4],dword 8
add esi,ecx
add esi,8 mov edi,received_messages+8
mov esi,edi
pop ecx add esi,ecx
add esi,8
cld
rep movsb pop ecx
call display_ipc_messages cld
rep movsb
mov [received_messages],byte 0 ; free the area
call display_ipc_messages
already_empty:
mov [received_messages],byte 0 ; free the area
popa
ret already_empty:
popa
ret
display_ipc_messages:
pusha
display_ipc_messages:
mov eax,13
mov ebx,25*65536+245 pusha
mov ecx,105*65536+90
mov edx,0xdddddd mov eax,13
mcall mov ebx,25*65536+245
mov ecx,105*65536+90
cmp [received_messages+4],dword 8 ; empty list mov edx,0xdddddd
je ipma1 mcall
mov ebx,25*65536+105 ; draw info text with function 4 cmp [received_messages+4],dword 8 ; empty list
mov ecx,0x224466 je ipma1
mov edx,received_messages+8
mov esi,40 mov ebx,25*65536+105 ; draw info text with function 4
mov [counter],0 mov ecx,0x224466
newline2: mov edx,received_messages+8
pusha mov esi,40
mov ecx,[edx] mov [counter],0
and ecx,0xfff newline2:
mov edx,ebx pusha
mov eax,47 mov ecx,[edx]
mov ebx,4*65536 and ecx,0xfff
mov esi,0xff0000 mov edx,ebx
mcall mov eax,47
popa mov ebx,4*65536
pusha mov esi,0xff0000
mov esi,20 mcall
add edx,8 popa
add ebx,30*65536 pusha
mov eax,4 mov esi,20
mcall add edx,8
popa add ebx,30*65536
mov eax,4
add ebx,10 mcall
mov edi,[edx+4] popa
add edi,8
and edi,0xfff add ebx,10
add edx,edi mov edi,[edx+4]
add edi,8
mov edi,[received_messages+4] and edi,0xfff
add edi,received_messages add edx,edi
cmp edx,edi
jge ipma1 mov edi,[received_messages+4]
add edi,received_messages
inc [counter] cmp edx,edi
cmp [counter],8 jge ipma1
jbe newline2
inc [counter]
ipma1: cmp [counter],8
jbe newline2
popa
ret ipma1:
popa
counter dd 0x0 ret
; ********************************************* counter dd 0x0
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
draw_window: ; *********************************************
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw draw_window:
mcall
mov eax,12 ; function 12:tell os about windowdraw
; DRAW WINDOW mov ebx,1 ; 1, start of draw
mov eax,0 ; function 0 : define and draw window mcall
mov ebx,100*65536+290 ; [x start] *65536 + [x size]
mov ecx,100*65536+220 ; [y start] *65536 + [y size] ; DRAW WINDOW
mov edx,0x14ffffff ; color of work area RRGGBB,8->color gl mov eax,0 ; function 0 : define and draw window
mov edi,title ; WINDOW LABEL mov ebx,100*65536+290 ; [x start] *65536 + [x size]
mcall 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
mov eax,9 mcall
mov ebx,process_info
mov ecx,-1
mcall mov eax,9
mov ebx,process_info
mov eax,47 mov ecx,-1
mov ebx,4*65536 mcall
mov ecx,[process_info+30]
mov edx,180*65536+35 mov eax,47
mov esi,0x000000 mov ebx,4*65536
mcall mov ecx,[process_info+30]
mov edx,180*65536+35
mov eax,8 ; MESSAGE mov esi,0x000000
mov ebx,25*65536+87 mcall
mov ecx,50*65536+16
mov edx,2 mov eax,8 ; MESSAGE
mov esi,0x5588dd mov ebx,25*65536+87
mcall mov ecx,50*65536+16
mov edx,2
;mov eax,8 ; POP mov esi,0x5588dd
mov ebx,216*65536+53 mcall
mov ecx,80*65536+16
mov edx,3 ;mov eax,8 ; POP
mcall mov ebx,216*65536+53
mov ecx,80*65536+16
mov eax,4 mov edx,3
mov ebx,25*65536+35 ; draw info text with function 4 mcall
mov ecx,0x224466
mov edx,text mov eax,4
mov esi,40 mov ebx,25*65536+35 ; draw info text with function 4
newline: mov ecx,0x224466
mcall mov edx,text
add ebx,10 mov esi,40
add edx,40 newline:
cmp [edx],byte 'x' mcall
jne newline add ebx,10
add edx,40
call display_ipc_messages cmp [edx],byte 'x'
jne newline
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw call display_ipc_messages
mcall
mov eax,12 ; function 12:tell os about windowdraw
ret mov ebx,2 ; 2, end of draw
mcall
ret
read_string:
pusha
read_string:
mov [addr],dword message
mov [ya],55 pusha
mov [xa],120
mov [addr],dword message
mov ecx,20 mov [ya],55
mov edi,[addr] mov [xa],120
mov al,' '
cld mov ecx,20
rep stosb mov edi,[addr]
mov al,' '
call print_text cld
rep stosb
mov edi,[addr]
call print_text
f11:
mov eax,10 mov edi,[addr]
mcall
cmp eax,2 f11:
jz fbu mov eax,10
mcall
exit_readkey: cmp eax,2
jz fbu
popa
ret exit_readkey:
fbu: popa
mov eax,2 ret
mcall ; get key
shr eax,8 fbu:
mov eax,2
cmp eax,13 mcall ; get key
je exit_readkey shr eax,8
cmp eax,8 cmp eax,13
jnz nobs je exit_readkey
cmp edi,[addr]
jz f11 cmp eax,8
dec edi jnz nobs
mov [edi],byte ' ' cmp edi,[addr]
call print_text jz f11
jmp f11 dec edi
nobs: mov [edi],byte ' '
call print_text
cmp eax,31 jmp f11
jbe f11 nobs:
cmp eax,95
jb keyok cmp eax,31
sub eax,32 jbe f11
keyok: cmp eax,95
mov [edi],al jb keyok
sub eax,32
call print_text keyok:
mov [edi],al
inc edi
mov esi,[addr] call print_text
add esi,20
cmp esi,edi inc edi
jnz f11 mov esi,[addr]
add esi,20
popa cmp esi,edi
ret jnz f11
popa
ret
print_text:
mov eax,13
mov ebx,[xa] print_text:
shl ebx,16
add ebx,25*6 mov eax,13
mov ecx,[ya] mov ebx,[xa]
shl ecx,16 shl ebx,16
mov cx,8 add ebx,25*6
mov edx,0xffffff mov ecx,[ya]
mcall shl ecx,16
mov cx,8
mov eax,4 mov edx,0xffffff
mov ebx,[xa] mcall
shl ebx,16
add ebx,[ya] mov eax,4
mov ecx,0x000000 mov ebx,[xa]
mov edx,[addr] shl ebx,16
mov esi,25 add ebx,[ya]
mcall mov ecx,0x000000
mov edx,[addr]
ret mov esi,25
mcall
ret
; DATA AREA
ya dd 0x0
xa dd 0x0 ; DATA AREA
addr dd 0x0
ya dd 0x0
text: xa dd 0x0
db 'PROCESS ID FOR THIS APP : ' addr dd 0x0
db ' '
db ' PID:MESSAGE 0130 EXAMPLE MESSAGE ' text:
db ' ' db 'PROCESS ID FOR THIS APP : '
db ' ' db ' '
db 'RECEIVED: POP ' db ' PID:MESSAGE 0130 EXAMPLE MESSAGE '
db 'x' ; <- END MARKER, DO NOT DELETE db ' '
db ' '
db 'RECEIVED: POP '
title db 'IPC - START AT LEAST 2',0 db 'x' ; <- END MARKER, DO NOT DELETE
I_END:
title db 'IPC - START AT LEAST 2',0
PID: dd 0x0
message_size: dd 20 I_END:
received_messages: PID: dd 0x0
message_size: dd 20
db 0 ; lock byte
db 0,0,0 ; reserved received_messages:
dd 8 ; pointer to free msg position from received_messages
db 0 ; lock byte
; Sender PID db 0,0,0 ; reserved
; Msg length dd 8 ; pointer to free msg position from received_messages
; Msg data
; Sender PID
rb 0x1000 ; Msg length
message: times 70 db ? ; Msg data
process_info: times 256 dd ?
rb 0x1000
message: times 70 db ?
process_info: times 256 dd ?

View File

@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end 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") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())

View File

@@ -1,268 +1,271 @@
; ; SPDX-License-Identifier: NOASSERTION
; INFRARED ;
;
; Compile with FASM ;
; ; INFRARED
;
use32 ; Compile with FASM
;
org 0x0
use32
db 'MENUET01' ; 8 byte id
dd 1 ; required os org 0x0
dd START ; program start
dd I_END ; program image size db 'MENUET01' ; 8 byte id
dd 0x1000 ; required amount of memory dd 1 ; required os
dd 0x1000 ; esp = 0x7FFF0 dd START ; program start
dd 0, 0 dd I_END ; program image size
dd 0x1000 ; required amount of memory
dd 0x1000 ; esp = 0x7FFF0
include '..\..\..\..\macros.inc' dd 0, 0
START: ; start of execution
include '..\..\..\macros.inc'
set_variables:
START: ; start of execution
mov eax,46 ; reserve ports 0x3f0 - 0x3ff
mov ebx,0 set_variables:
mov ecx,0x3f0
mov edx,0x3ff mov eax,46 ; reserve ports 0x3f0 - 0x3ff
mcall mov ebx,0
mov ecx,0x3f0
mov eax,45 ; reserve irq 4 mov edx,0x3ff
mov ebx,0 mcall
mov ecx,4
mcall mov eax,45 ; reserve irq 4
mov ebx,0
mov eax,44 ; set read ports for irq 4 mov ecx,4
mov ebx,irqtable mcall
; mov ecx,4
mcall mov eax,44 ; set read ports for irq 4
mov ebx,irqtable
mov dh, 3 ; all ports have number 3xx hex ; mov ecx,4
mcall
mov dl, 0xf3+8
mov al, 0x80 mov dh, 3 ; all ports have number 3xx hex
out dx, al
mov dl, 0xf3+8
mov dl, 0xf1+8 mov al, 0x80
mov al, 0 out dx, al
out dx, al
mov dl, 0xf1+8
mov dl, 0xf0+8 mov al, 0
mov al, 0x30 / 4 out dx, al
out dx, al
mov dl, 0xf0+8
mov dl, 0xf3+8 mov al, 0x30 / 4
mov al, 3 out dx, al
out dx, al
mov dl, 0xf3+8
mov dl, 0xf4+8 mov al, 3
mov al, 0xB out dx, al
out dx, al
mov dl, 0xf4+8
mov dl, 0xf1+8 mov al, 0xB
mov al, 1 out dx, al
out dx, al
mov dl, 0xf1+8
mov eax,5 mov al, 1
mov ebx,100 out dx, al
mcall
mov eax,5
mov dl, 0xf8 mov ebx,100
mov al, 'I' mcall
out dx, al
mov dl, 0xf8
mov eax,5 mov al, 'I'
mov ebx,10 out dx, al
mcall
mov eax,5
mov al, 'R' mov ebx,10
out dx, al mcall
mov eax,40 ; get com 1 data with irq 4 mov al, 'R'
mov ebx,0000000000010000b shl 16 + 101b out dx, al
mcall
mov eax,40 ; get com 1 data with irq 4
red: mov ebx,0000000000010000b shl 16 + 101b
call draw_window mcall
still: red:
call draw_window
mov eax,10 ; wait here for event
mcall still:
dec eax
jz red mov eax,10 ; wait here for event
dec eax mcall
dec eax dec eax
jnz readir jz red
dec eax
button: ; button dec eax
mov al,17 ; get id jnz readir
mcall
button: ; button
; we have only one button, close mov al,17 ; get id
mcall
mov eax,45 ; free irq
mov ebx,1 ; we have only one button, close
mov ecx,4
mcall mov eax,45 ; free irq
mov ebx,1
mov eax,46 ; free ports 0x3f0-0x3ff mov ecx,4
mov ebx,1 mcall
mov ecx,0x3f0
mov edx,0x3ff mov eax,46 ; free ports 0x3f0-0x3ff
mcall mov ebx,1
mov ecx,0x3f0
or eax,-1 ; close this program mov edx,0x3ff
mcall mcall
pos dd 0x0 or eax,-1 ; close this program
mcall
cdplayer:
dd 7 pos dd 0x0
dd 0
dd 0 cdplayer:
dd 0 dd 7
dd 0 dd 0
db '/sys/CDP',0 dd 0
dd 0
readir: dd 0
mov eax,42 db '/sys/CDP',0
mov ebx,4
mcall readir:
mov eax,42
cmp ebx,80 mov ebx,4
jne nocd mcall
mov eax,70 cmp ebx,80
mov ebx,cdplayer jne nocd
mcall
mov eax,70
mov ebx,cdplayer
nocd: mcall
push ebx
mov eax,[pos] nocd:
add eax,1
cmp eax,10*20+1 push ebx
jb noeaxz mov eax,[pos]
mov esi,text+10*4 add eax,1
mov edi,text cmp eax,10*20+1
mov ecx,10*21*4 jb noeaxz
cld mov esi,text+10*4
rep movsb mov edi,text
mov eax,13 mov ecx,10*21*4
mov ebx,20*65536+260 cld
mov ecx,22*65536+220 rep movsb
mov edx,[wcolor] mov eax,13
mcall mov ebx,20*65536+260
mov eax,10*19+1 mov ecx,22*65536+220
noeaxz: mov edx,[wcolor]
mov [pos],eax mcall
pop ebx mov eax,10*19+1
and ebx,0xff noeaxz:
call draw_data mov [pos],eax
jmp still pop ebx
and ebx,0xff
call draw_data
jmp still
draw_data:
pusha
draw_data:
xchg eax,ebx
pusha
mov ecx,10
shl ebx,2 xchg eax,ebx
mov esi,3
newnum: mov ecx,10
xor edx,edx shl ebx,2
div ecx mov esi,3
add edx,48 newnum:
mov [ebx+text-1],dl xor edx,edx
dec ebx div ecx
dec esi add edx,48
jnz newnum mov [ebx+text-1],dl
dec ebx
call draw_text dec esi
jnz newnum
popa
call draw_text
ret
popa
irqtable: ret
dd 0x3f8+0x01000000 ; + 01 = read byte, 02 read word
dd 0 irqtable:
dd 0x3f8+0x01000000 ; + 01 = read byte, 02 read word
dd 0
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
draw_window: ; *********************************************
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw draw_window:
mcall
mov eax,12 ; function 12:tell os about windowdraw
; DRAW WINDOW mov ebx,1 ; 1, start of draw
mov eax,0 ; function 0 : define and draw window mcall
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+250 ; [y start] *65536 + [y size] ; DRAW WINDOW
mov edx,[wcolor] ; color of work area RRGGBB,8->color mov eax,0 ; function 0 : define and draw window
mov edi,labelt ; caption string mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mcall mov ecx,100*65536+250 ; [y start] *65536 + [y size]
mov edx,[wcolor] ; color of work area RRGGBB,8->color
; ; WINDOW LABEL mov edi,labelt ; caption string
; mov eax,4 ; function 4 : write text to window mcall
; mov ebx,8*65536+8 ; [x start] *65536 + [y start]
; mov ecx,0x00ffffff ; color of text RRGGBB ; ; WINDOW LABEL
; mov edx,labelt ; pointer to text beginning ; mov eax,4 ; function 4 : write text to window
; mov esi,labellen-labelt ; text length ; mov ebx,8*65536+8 ; [x start] *65536 + [y start]
; mcall ; mov ecx,0x00ffffff ; color of text RRGGBB
; mov edx,labelt ; pointer to text beginning
; CLOSE BUTTON ; mov esi,labellen-labelt ; text length
; mov eax,8 ; function 8 : define and draw button ; mcall
; mov ebx,(300-19)*65536+12 ; [x start] *65536 + [x size]
; mov ecx,5*65536+12 ; [y start] *65536 + [y size] ; CLOSE BUTTON
; mov edx,1 ; button id ; mov eax,8 ; function 8 : define and draw button
; mov esi,0x5599cc ; button color RRGGBB ; mov ebx,(300-19)*65536+12 ; [x start] *65536 + [x size]
; mcall ; mov ecx,5*65536+12 ; [y start] *65536 + [y size]
; mov edx,1 ; button id
draw_text: ; mov esi,0x5599cc ; button color RRGGBB
; mcall
mov ebx,25*65536+35 ; draw info text with function 4
mov ecx,0xffffff draw_text:
mov edx,text
mov esi,40 mov ebx,25*65536+35 ; draw info text with function 4
mov edi,20 mov ecx,0xffffff
newline: mov edx,text
mov eax,4 mov esi,40
mcall mov edi,20
add ebx,10 newline:
add edx,esi mov eax,4
dec edi mcall
jne newline add ebx,10
add edx,esi
mov eax,12 dec edi
mov ebx,2 jne newline
mcall
mov eax,12
ret mov ebx,2
mcall
; DATA AREA ret
wcolor dd 0x13000000
; DATA AREA
labelt db 'INFRARED RECEIVER FOR IRMAN IN COM 1',0
wcolor dd 0x13000000
text:
labelt db 'INFRARED RECEIVER FOR IRMAN IN COM 1',0
I_END:
text:
I_END:

View File

@@ -1,50 +1,56 @@
include '..\..\..\..\macros.inc' ; SPDX-License-Identifier: NOASSERTION
use32 ;
db 'MENUET01'
dd 1 ; Text encoded with Code Page Windows 1251 - Cyrillic
dd start
dd i_end
dd mem include '..\..\..\macros.inc'
dd mem use32
dd 0 db 'MENUET01'
dd 0 dd 1
dd start
start: dd i_end
push 66 dd mem
pop eax dd mem
push 4 dd 0
pop ebx dd 0
mov cl, 45h ; NumLock scancode
xor edx, edx start:
mcall push 66
mov al, 40 ; старшие биты уже обнулены pop eax
mov bl, 2 ; старшие биты уже обнулены push 4
mcall pop ebx
event: mov cl, 45h ; NumLock scancode
push 10 xor edx, edx
pop eax mcall
mcall mov al, 40 ; ñòàðøèå áèòû óæå îáíóëåíû
; у нас может быть только одно событие - нажата клавиша mov bl, 2 ; ñòàðøèå áèòû óæå îáíóëåíû
mov al, 2 mcall
mcall event:
cmp al, 2 push 10
jnz event pop eax
; у нас есть только одна горячая клавиша mcall
push 70 ; ó íàñ ìîæåò áûòü òîëüêî îäíî ñîáûòèå - íàæàòà êëàâèøà
pop eax mov al, 2
mov ebx, fileinfo mcall
mcall cmp al, 2
jmp event jnz event
; ó íàñ åñòü òîëüêî îäíà ãîðÿ÷àÿ êëàâèøà
fileinfo: push 70
dd 7 pop eax
dd 0 mov ebx, fileinfo
dd 0 mcall
dd 0 jmp event
dd 0
db '/sys/calc',0 fileinfo:
dd 7
i_end: dd 0
align 16 dd 0
rb 16 dd 0
mem: dd 0
db '/sys/calc',0
i_end:
align 16
rb 16
mem:

View File

@@ -1,130 +1,135 @@
;ª®¬¯®­¥­â OptionBox (®á­®¢ ­ ­  Checkbox) ; SPDX-License-Identifier: NOASSERTION
;Ž£à®¬­ ï ¡« £®¤ à­®áâì Maxxxx32, Diamond, Heavyiron ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§ ;
;ª®â®àëå ï ­¥ ᬮ£ ¡ë ­ ¯¨á âì íâ®â ª®¬¯®­¥­â.
;21.02.2007 ¬®¤¥à­¨§ æ¨ï ¨ ¯®¤¤¥à¦ª  ¤¢ãå à §­ëå ¢ à¨ ­â®¢ á ¨á¯®«ì§®¢ ­¨¥¬ á¨á 梥⮢ ¨ áâ à®© á奬®© ; Text encoded with Code Page 866 - Cyrillic
;19.02.2007 ®¡é¥¥ ã«ãç襭¨¥ ª®¤ , 㬥­ì襭¨¥ à §¬¥à  ¨ ¨á¯®«ì§®¢ ­¨¥ á¨á⥬­ëå æ¢¥â®¢ ¤«ï ®â®¡à ¦¥­¨ï optionkbox
;16.02.2007 ¤ â  á®§¤ ­¨ï ª®¬¯®­¥­â  ;ª®¬¯®­¥­â OptionBox (®á­®¢ ­ ­  Checkbox)
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru ;Ž£à®¬­ ï ¡« £®¤ à­®áâì Maxxxx32, Diamond, Heavyiron ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§
;ª®â®àëå ï ­¥ ᬮ£ ¡ë ­ ¯¨á âì íâ®â ª®¬¯®­¥­â.
;§ £®«®¢®ª ¯à¨«®¦¥­¨ï ;21.02.2007 ¬®¤¥à­¨§ æ¨ï ¨ ¯®¤¤¥à¦ª  ¤¢ãå à §­ëå ¢ à¨ ­â®¢ á ¨á¯®«ì§®¢ ­¨¥¬ á¨á 梥⮢ ¨ áâ à®© á奬®©
use32 ; âà ­á«ïâ®à, ¨á¯®«ì§ãî騩 32 à §à來ëå ª®¬ ­¤ë ;19.02.2007 ®¡é¥¥ ã«ãç襭¨¥ ª®¤ , 㬥­ì襭¨¥ à §¬¥à  ¨ ¨á¯®«ì§®¢ ­¨¥ á¨á⥬­ëå æ¢¥â®¢ ¤«ï ®â®¡à ¦¥­¨ï optionkbox
org 0x0 ; ¡ §®¢ë©  ¤à¥á ª®¤ , ¢á¥£¤  0x0 ;16.02.2007 ¤ â  á®§¤ ­¨ï ª®¬¯®­¥­â 
db 'MENUET01' ; ¨¤¥­â¨ä¨ª â®à ¨á¯®«­ï¥¬®£® ä ©«  (8 ¡ ©â) ;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru
dd 0x1 ; ¢¥àá¨ï ä®à¬ â  § £®«®¢ª  ¨á¯®«­ï¥¬®£® ä ©« 
dd start ;  ¤à¥á, ­  ª®â®àë© á¨á⥬  ¯¥à¥¤ ñâ ã¯à ¢«¥­¨¥ ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï
; ¯®á«¥ § £à㧪¨ ¯à¨«®¦¥­¨ï ¢ ¯ ¬ïâì use32 ; âà ­á«ïâ®à, ¨á¯®«ì§ãî騩 32 à §à來ëå ª®¬ ­¤ë
dd i_end ; à §¬¥à ¯à¨«®¦¥­¨ï org 0x0 ; ¡ §®¢ë©  ¤à¥á ª®¤ , ¢á¥£¤  0x0
dd (i_end+0x100) and not 3 ; Ž¡ê¥¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ïâ¨, ¤«ï á⥪  ®â¢¥¤¥¬ 0å100 ¡ ©â ¨ ¢ë஢­¨¬ ­  £à­¨æã 4 ¡ ©â  db 'MENUET01' ; ¨¤¥­â¨ä¨ª â®à ¨á¯®«­ï¥¬®£® ä ©«  (8 ¡ ©â)
dd (i_end+0x100) and not 3 ; à á¯®«®¦¨¬ ¯®§¨æ¨î á⥪  ¢ ®¡« á⨠¯ ¬ïâ¨, áà §ã §  ⥫®¬ ¯à®£à ¬¬ë. ‚¥à設  á⥪  ¢ ¤¨ ¯ §®­¥ ¯ ¬ïâ¨, 㪠§ ­­®¬ ¢ëè¥ dd 0x1 ; ¢¥àá¨ï ä®à¬ â  § £®«®¢ª  ¨á¯®«­ï¥¬®£® ä ©« 
dd 0x0,0x0 ; 㪠§ â¥«ì ­  áâபã á ¯ à ¬¥âà ¬¨. 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 include '..\..\..\macros.inc'
align 16 include 'optionbox.inc' ;¢ª«îç¨âì ä ©« opeck.inc
;Ž¡« áâì ª®¤ 
start: ;’®çª  ¢å®¤  ¢ ¯à®£à ¬¬ã version_op ;¢ à¨ ­â, ¯à¨ ª®â®à®¬ ¨á¯®«ì§ãîâáï æ¢¥â , ª®â®àë¥ § ¤ ¥â ¯®«ì§®¢ â¥«ì
mov eax,48 ;¯®«ãç¨âì á¨á⥬­ë¥ æ¢¥â  ; version_op1 ;æ¢¥â  ¡¥àãâáï ¨§ á¨á⥬ë
mov ebx,3 use_option_box ;¨á¯®«ì§ãï ¬ ªà®áë,¢­¥á⨠¯à®æ¥¤ãàë ¤«ï à¨á®¢ ­¨ï optionbox
mov ecx,sc align 16
mov edx,sizeof.system_colors ;Ž¡« áâì ª®¤ 
mcall start: ;’®çª  ¢å®¤  ¢ ¯à®£à ¬¬ã
mov eax,48 ;¯®«ãç¨âì á¨á⥬­ë¥ 梥â 
mov eax,40 ;ãáâ ­®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩ mov ebx,3
mov ebx,0x25 ;á¨á⥬  ¡ã¤¥â ॠ£¨à®¢ âì ⮫쪮 ­  á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥,­ ¦ â  ª­®¯ª , ®¯à¥¤¥«ñ­­ ï à ­¥¥, ᮡë⨥ ®â ¬ëè¨ (çâ®-â® á«ã稫®áì - ­ ¦ â¨¥ ­  ª­®¯ªã ¬ëè¨ ¨«¨ ¯¥à¥¬¥é¥­¨¥; á¡à á뢠¥âáï ¯à¨ ¯à®ç⥭¨¨) mov ecx,sc
mcall mov edx,sizeof.system_colors
red_win: mcall
call draw_window ;¯¥à¢®­ ç «ì­® ­¥®¡å®¤¨¬® ­ à¨á®¢ âì ®ª­®
still: ;®á­®¢­®© ®¡à ¡®â稪 mov eax,40 ;ãáâ ­®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩
mov eax,10 ;ަ¨¤ âì ᮡëâ¨ï mov ebx,0x25 ;á¨á⥬  ¡ã¤¥â ॠ£¨à®¢ âì ⮫쪮 ­  á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥,­ ¦ â  ª­®¯ª , ®¯à¥¤¥«ñ­­ ï à ­¥¥, ᮡë⨥ ®â ¬ëè¨ (çâ®-â® á«ã稫®áì - ­ ¦ â¨¥ ­  ª­®¯ªã ¬ëè¨ ¨«¨ ¯¥à¥¬¥é¥­¨¥; á¡à á뢠¥âáï ¯à¨ ¯à®ç⥭¨¨)
mcall ;®¦¨¤ âì ᮡë⨥ ¢ â¥ç¥­¨¥ 2 ¬¨««¨á¥ªã­¤ mcall
red_win:
cmp al,0x1 ;¥á«¨ ¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­  call draw_window ;¯¥à¢®­ ç «ì­® ­¥®¡å®¤¨¬® ­ à¨á®¢ âì ®ª­®
jz red_win still: ;®á­®¢­®© ®¡à ¡®â稪
cmp al,0x3 ;¥á«¨ ­ ¦ â  ª­®¯ª  â® ¯¥à¥©â¨ mov eax,10 ;ަ¨¤ âì ᮡëâ¨ï
jz button mcall ;®¦¨¤ âì ᮡë⨥ ¢ â¥ç¥­¨¥ 2 ¬¨««¨á¥ªã­¤
mouse_option_boxes option_boxes,option_boxes_end ;¯à®¢¥àª  祪 ¡®ªá 
jmp still ;¥á«¨ ­¨ç¥£® ¨§ ¯¥à¥ç¨á«¥­­®£® â® á­®¢  ¢ 横« cmp al,0x1 ;¥á«¨ ¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
button: jz red_win
; mov eax,17 ;¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª« ¢¨è¨ cmp al,0x3 ;¥á«¨ ­ ¦ â  ª­®¯ª  â® ¯¥à¥©â¨
; mcall jz button
; test ah,ah ;¥á«¨ ¢ ah 0, â® ¯¥à¥©â¨ ­  ®¡à ¡®â稪 ᮡë⨩ still mouse_option_boxes option_boxes,option_boxes_end ;¯à®¢¥àª  祪 ¡®ªá 
; jz still jmp still ;¥á«¨ ­¨ç¥£® ¨§ ¯¥à¥ç¨á«¥­­®£® â® á­®¢  ¢ 横«
or eax,-1 ;¢ eax,-1 - 5 ,¡ ©â®¢ ã ­ á ¦¥ ⮫쪮 3 ¢ë©â¨ button:
mcall ;¤ «¥¥ ¢ë¯®«­ï¥âáï ¢ë室 ¨§ ¯à®£à ¬¬ë ; mov eax,17 ;¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª« ¢¨è¨
; mcall
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; test ah,ah ;¥á«¨ ¢ ah 0, â® ¯¥à¥©â¨ ­  ®¡à ¡®â稪 ᮡë⨩ still
draw_window: ;à¨á®¢ ­¨¥ ®ª­  ¯à¨«®¦¥­¨ï ; jz still
mov eax,12 ;¢ ॣ¨áâà ¢­¥á⨠§­ ç¥­¨¥ = 12 or eax,-1 ;¢ eax,-1 - 5 ,¡ ©â®¢ ã ­ á ¦¥ ⮫쪮 3 ¢ë©â¨
mov ebx,1 ;¯à¨á¢®¨âì 1 mcall ;¤ «¥¥ ¢ë¯®«­ï¥âáï ¢ë室 ¨§ ¯à®£à ¬¬ë
mcall
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
xor eax,eax ;®¡­ã«¨âì eax draw_window: ;à¨á®¢ ­¨¥ ®ª­  ¯à¨«®¦¥­¨ï
mov ebx,50*65536+180 ;[ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x] mov eax,12 ;¢ ॣ¨áâà ¢­¥á⨠§­ ç¥­¨¥ = 12
mov ecx,30*65536+200 ;[ª®®à¤¨­ â  ¯® ®á¨ y]*65536 + [à §¬¥à ¯® ®á¨ y] mov ebx,1 ;¯à¨á¢®¨âì 1
mov edx,[sc.work] ; color of work area RRGGBB,8->color gl mcall
or edx,0xb3000000
mov edi,hed xor eax,eax ;®¡­ã«¨âì eax
mcall ;­ à¨á®¢ âì ®ª­® ¯à¨«®¦¥­¨ï mov ebx,50*65536+180 ;[ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x]
mov ecx,30*65536+200 ;[ª®®à¤¨­ â  ¯® ®á¨ y]*65536 + [à §¬¥à ¯® ®á¨ y]
draw_option_boxes option_boxes,option_boxes_end ;à¨á®¢ ­¨¥ 祪¡®ªá®¢ mov edx,[sc.work] ; color of work area RRGGBB,8->color gl
or edx,0xb3000000
mov eax,12 ;”ã­ªæ¨ï 12 - ­ ç âì/§ ª®­ç¨âì ¯¥à¥à¨á®¢ªã ®ª­ . mov edi,hed
mov ebx,2 ;<3B>®¤äã­ªæ¨ï 2 - § ª®­ç¨âì ¯¥à¥à¨á®¢ªã ®ª­ . mcall ;­ à¨á®¢ âì ®ª­® ¯à¨«®¦¥­¨ï
mcall
ret draw_option_boxes option_boxes,option_boxes_end ;à¨á®¢ ­¨¥ 祪¡®ªá®¢
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mov eax,12 ;”ã­ªæ¨ï 12 - ­ ç âì/§ ª®­ç¨âì ¯¥à¥à¨á®¢ªã ®ª­ .
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mov ebx,2 ;<3B>®¤äã­ªæ¨ï 2 - § ª®­ç¨âì ¯¥à¥à¨á®¢ªã ®ª­ .
;DATA ¤ ­­ë¥ mcall
;”®à¬ â ¤ ­­ëå 祪 ¡®ªá : ret
;10 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® å
;30 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® ã ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;0 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;0 - 梥â à ¬ª¨ 祪 ¡®ªá  ;DATA ¤ ­­ë¥
;0 - 梥â ⥪áâ  ­ ¤¯¨á¨ ;”®à¬ â ¤ ­­ëå 祪 ¡®ªá :
;op_text.1 - 㪠§ â¥«ì ­  ­ ç «® áâப¨ ;10 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® å
;option_group1 - íâ® ¯à¨§­ ª £à㯯ë, â.¥. íâ®â ª®¤ ¬®¦¥â ®¡à ¡ â뢠âì ¬­®£® £à㯯 ¨§ optibox ;30 - ª®®à¤¨­ â  祪 ¡®ªá  ¯® ã
;op_text.e1-op_text.1 - ¤«¨­  áâப¨ ;0
; ;0 - 梥â à ¬ª¨ 祪 ¡®ªá 
align 16 ;0 - 梥â ⥪áâ  ­ ¤¯¨á¨
option_boxes: ;op_text.1 - 㪠§ â¥«ì ­  ­ ç «® áâப¨
;op1 option_box1 option_group1,10,15,op_text.1,op_text.e1-op_text.1 ;option_group1 - íâ® ¯à¨§­ ª £à㯯ë, â.¥. íâ®â ª®¤ ¬®¦¥â ®¡à ¡ â뢠âì ¬­®£® £à㯯 ¨§ optibox
;op2 option_box1 option_group1,10,30,op_text.2,op_text.e2-op_text.2 ;op_text.e1-op_text.1 - ¤«¨­  áâப¨
;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 align 16
;op12 option_box1 option_group2,10,95,op_text.2,op_text.e2-op_text.2 option_boxes:
;op13 option_box1 option_group2,10,110,op_text.3,op_text.e3-op_text.3 ;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
;struc option_box point_gr,left,top,color,border_color,text_color,text,text_length ;op3 option_box1 option_group1,10,45,op_text.3,op_text.e3-op_text.3
op1 option_box option_group1,10,15,0xffffff,0,0,op_text.1,op_text.e1-op_text.1 ;op11 option_box1 option_group2,10,80,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 ;op12 option_box1 option_group2,10,95,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 ;op13 option_box1 option_group2,10,110,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 ;struc option_box point_gr,left,top,color,border_color,text_color,text,text_length
op13 option_box option_group2,10,110,0xffffff,0,0,op_text.3,op_text.e3-op_text.3 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
option_boxes_end: 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
op_text: ; ‘®¯à®¢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢ op12 option_box option_group2,10,95,0xffffff,0,0,op_text.2,op_text.e2-op_text.2
.1 db 'Option_Box #1' op13 option_box option_group2,10,110,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
.e1:
.2 db 'Option_Box #2' option_boxes_end:
.e2:
.3 db 'Option_Box #3' op_text: ; ‘®¯à®¢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢
.e3: .1 db 'Option_Box #1'
.e1:
option_group1 dd op1 ;㪠§ â¥«¨, ®­¨ ®â®¡à ¦ îâáï ¯® 㬮«ç ­¨î, ª®£¤  ¢ë¢®¤¨âáï .2 db 'Option_Box #2'
option_group2 dd op11 ;¯à¨«®¦¥­¨¥ .e2:
.3 db 'Option_Box #3'
hed db 'Optionbox [21.02.2007]',0 ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï .e3:
sc system_colors
i_end: ;ª®­¥æ ª®¤  option_group1 dd op1 ;㪠§ â¥«¨, ®­¨ ®â®¡à ¦ îâáï ¯® 㬮«ç ­¨î, ª®£¤  ¢ë¢®¤¨âáï
option_group2 dd op11 ;¯à¨«®¦¥­¨¥
hed db 'Optionbox [21.02.2007]',0 ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï
sc system_colors
i_end: ;ª®­¥æ ª®¤ 

View File

@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end 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") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())

Some files were not shown because too many files have changed in this diff Show More