Compare commits

...

10 Commits

Author SHA1 Message Date
5a217f6fb5 programs/media: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 34s
Build system / Build (pull_request) Successful in 5m39s
- Tidy `build_all.bat` build file; update paths; comment out absent programs.
2025-06-01 01:59:04 +01:00
76aa61e278 media/voxel_editor: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 24s
Build system / Build (pull_request) Successful in 5m29s
- Move source code from `trunk` into 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-06-01 01:29:45 +01:00
40534e92b4 media/startmus: Post-SVN tidy
- Move source code from `trunk` into 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-06-01 01:20:05 +01:00
6404b5d625 media/pic4: Post-SVN tidy
- Move source code from `trunk` into 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-06-01 01:17:22 +01:00
989a99d3dc media/log_el: Post-SVN tidy
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 36s
Build system / Build (pull_request) Successful in 6m1s
- Fix `t_edit` reliance on `log_el` images; Update ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-06-01 00:34:47 +01:00
35d798ead7 media/palitra: Post-SVN tidy
- Move source code from `trunk` into 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-06-01 00:23:41 +01:00
930b704c6c media/paint: Post-SVN tidy
Some checks failed
Build system / Check kernel codestyle (pull_request) Successful in 1m8s
Build system / Build (pull_request) Failing after 1m48s
- Move source code from `trunk` into root directory.
- Update ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-06-01 00:13:52 +01:00
38f7d72837 media/midiplay: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths.
2025-06-01 00:09:44 +01:00
8134ff9fb2 media/midamp: Post-SVN tidy
- Move source code from `trunk` into 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-06-01 00:03:55 +01:00
f638d8f296 media/log_el: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-31 23:53:35 +01:00
90 changed files with 8336 additions and 8267 deletions

View File

@@ -159,10 +159,10 @@ extra_files = {
{"kolibrios/3D/blocks/models/", "../programs/bcc32/games/blocks/models/*"}, {"kolibrios/3D/blocks/models/", "../programs/bcc32/games/blocks/models/*"},
{"kolibrios/3D/md2view/", "common/3d/md2view/*"}, {"kolibrios/3D/md2view/", "common/3d/md2view/*"},
{"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"}, {"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"},
{"kolibrios/3D/voxel_editor/VOX_EDITOR.INI", SRC_PROGS .. "/media/voxel_editor/trunk/vox_editor.ini"}, {"kolibrios/3D/voxel_editor/VOX_EDITOR.INI", SRC_PROGS .. "/media/voxel_editor/vox_editor.ini"},
{"kolibrios/3D/voxel_editor/HOUSE1.VOX", SRC_PROGS .. "/media/voxel_editor/trunk/house1.vox"}, {"kolibrios/3D/voxel_editor/HOUSE1.VOX", SRC_PROGS .. "/media/voxel_editor/house1.vox"},
{"kolibrios/3D/voxel_editor/HOUSE2.VOX", SRC_PROGS .. "/media/voxel_editor/trunk/house2.vox"}, {"kolibrios/3D/voxel_editor/HOUSE2.VOX", SRC_PROGS .. "/media/voxel_editor/house2.vox"},
{"kolibrios/3D/voxel_editor/SQUIRREL.VOX", SRC_PROGS .. "/media/voxel_editor/trunk/squirrel.vox"}, {"kolibrios/3D/voxel_editor/SQUIRREL.VOX", SRC_PROGS .. "/media/voxel_editor/squirrel.vox"},
{"kolibrios/3D/voxel_utilites/VOX_MOVER.INI" , SRC_PROGS .. "/media/voxel_editor/utilites/vox_mover.ini"}, {"kolibrios/3D/voxel_utilites/VOX_MOVER.INI" , SRC_PROGS .. "/media/voxel_editor/utilites/vox_mover.ini"},
{"kolibrios/3D/FONT8X9.BMP", SRC_PROGS .. "/fs/kfar/trunk/font8x9.bmp"}, {"kolibrios/3D/FONT8X9.BMP", SRC_PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
{"kolibrios/3D/TOOLB_1.PNG", SRC_PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/toolb_1.png"}, {"kolibrios/3D/TOOLB_1.PNG", SRC_PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/toolb_1.png"},
@@ -527,11 +527,11 @@ tup.append_table(img_files, {
{"MEDIA/FILLSCR", VAR_PROGS .. "/media/FillScr/fillscr"}, {"MEDIA/FILLSCR", VAR_PROGS .. "/media/FillScr/fillscr"},
{"MEDIA/KIV", VAR_PROGS .. "/media/kiv/kiv"}, {"MEDIA/KIV", VAR_PROGS .. "/media/kiv/kiv"},
{"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/listplay"}, {"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/listplay"},
{"MEDIA/MIDAMP", VAR_PROGS .. "/media/midamp/trunk/midamp"}, {"MEDIA/MIDAMP", VAR_PROGS .. "/media/midamp/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/palitra"},
{"MEDIA/PIANO", VAR_PROGS .. "/media/piano/piano"}, {"MEDIA/PIANO", VAR_PROGS .. "/media/piano/piano"},
{"MEDIA/STARTMUS", VAR_PROGS .. "/media/startmus/trunk/STARTMUS"}, {"MEDIA/STARTMUS", VAR_PROGS .. "/media/startmus/STARTMUS"},
{"NETWORK/PING", VAR_PROGS .. "/network/ping/ping"}, {"NETWORK/PING", VAR_PROGS .. "/network/ping/ping"},
{"NETWORK/NETCFG", VAR_PROGS .. "/network/netcfg/netcfg"}, {"NETWORK/NETCFG", VAR_PROGS .. "/network/netcfg/netcfg"},
{"NETWORK/NETSTAT", VAR_PROGS .. "/network/netstat/netstat"}, {"NETWORK/NETSTAT", VAR_PROGS .. "/network/netstat/netstat"},
@@ -600,7 +600,7 @@ tup.append_table(extra_files, {
{"kolibrios/3D/info3ds/INFO3DS", VAR_PROGS .. "/develop/info3ds/info3ds"}, {"kolibrios/3D/info3ds/INFO3DS", VAR_PROGS .. "/develop/info3ds/info3ds"},
{"kolibrios/3D/textures1", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/textures1"}, {"kolibrios/3D/textures1", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/textures1"},
{"kolibrios/3D/info3ds/INFO3DS_U", VAR_PROGS .. "/develop/info3ds/info3ds_u"}, {"kolibrios/3D/info3ds/INFO3DS_U", VAR_PROGS .. "/develop/info3ds/info3ds_u"},
{"kolibrios/3D/voxel_editor/VOXEL_EDITOR", VAR_PROGS .. "/media/voxel_editor/trunk/voxel_editor"}, {"kolibrios/3D/voxel_editor/VOXEL_EDITOR", VAR_PROGS .. "/media/voxel_editor/voxel_editor"},
{"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"},

View File

@@ -164,17 +164,16 @@ echo Building media
echo * echo *
rem media\ac97snd\trunk\ac97snd.asm ac97snd rem media\ac97snd\trunk\ac97snd.asm ac97snd
fasm media\animage\animage.asm %BIN%\animage fasm media\animage\animage.asm %BIN%\animage
fasm media\cdp\trunk\cdp.asm %BIN%\cdp rem fasm media\cdp\trunk\cdp.asm %BIN%\cdp
fasm media\gifview\trunk\gifview.asm %BIN%\gifview rem fasm media\gifview\trunk\gifview.asm %BIN%\gifview
fasm media\iconedit\trunk\iconedit.asm %BIN%\iconedit rem fasm media\iconedit\trunk\iconedit.asm %BIN%\iconedit
fasm media\jpegview\trunk\jpegview.asm %BIN%\jpegview rem fasm media\jpegview\trunk\jpegview.asm %BIN%\jpegview
fasm media\midamp\trunk\midamp.asm %BIN%\midamp fasm media\midamp\midamp.asm %BIN%\midamp
fasm media\midiplay\trunk\midiplay.asm %BIN%\midiplay fasm media\midiplay\midiplay.asm %BIN%\midiplay
fasm media\mixer\trunk\mixer.asm %BIN%\mixer rem fasm media\mixer\trunk\mixer.asm %BIN%\mixer
rem fasm media\mv\trunk\mv.asm %BIN%\mv
fasm media\mv\trunk\mv.asm %BIN%\mv fasm media\pic4\pic4.asm %BIN%\pic4
fasm media\pic4\trunk\pic4.asm %BIN%\pic4 rem fasm media\sb\trunk\sb.asm %BIN%\sb
fasm media\sb\trunk\sb.asm %BIN%\sb
fasm media\scrshoot\scrshoot.asm %BIN%\scrshoot fasm media\scrshoot\scrshoot.asm %BIN%\scrshoot
echo * echo *
@@ -234,7 +233,7 @@ echo __nightbuild fix yes >> config.inc
fasm media\kiv\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\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\midamp.asm %BIN%\nightbuild\midamp
fasm develop\heed\trunk\heed.asm %BIN%\nightbuild\heed fasm develop\heed\trunk\heed.asm %BIN%\nightbuild\heed
fasm develop\tinypad\trunk\tinypad.asm %BIN%\nightbuild\tinypad fasm develop\tinypad\trunk\tinypad.asm %BIN%\nightbuild\tinypad
fasm system\skincfg\trunk\skincfg.asm %BIN%\nightbuild\skincfg fasm system\skincfg\trunk\skincfg.asm %BIN%\nightbuild\skincfg

View File

@@ -1,5 +1,5 @@
if not exist bin mkdir bin if not exist bin mkdir bin
if not exist bin\font6x9.bmp @copy ..\..\..\fs\kfar\trunk\font6x9.bmp bin\font6x9.bmp if not exist bin\font6x9.bmp @copy ..\..\fs\kfar\trunk\font6x9.bmp bin\font6x9.bmp
@copy *.png bin\*.png @copy *.png bin\*.png
@copy *.txt bin\*.txt @copy *.txt bin\*.txt
@fasm.exe -m 16384 log_el.asm bin\log_el.kex @fasm.exe -m 16384 log_el.asm bin\log_el.kex

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 192 B

After

Width:  |  Height:  |  Size: 192 B

View File

Before

Width:  |  Height:  |  Size: 670 B

After

Width:  |  Height:  |  Size: 670 B

View File

Before

Width:  |  Height:  |  Size: 960 B

After

Width:  |  Height:  |  Size: 960 B

View File

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

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

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 673 B

After

Width:  |  Height:  |  Size: 673 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

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,9 +1,12 @@
; SPDX-License-Identifier: NOASSERTION
;
; ;
; Ok, this is the sceleton that MENUET 0.01 understands. ; Ok, this is the sceleton that MENUET 0.01 understands.
; Do not change the header bits for now. Compile with nasm. ; Do not change the header bits for now. Compile with nasm.
; ;
include '..\..\..\macros.inc' include '..\..\macros.inc'
use32 use32
org 0x0 org 0x0
@@ -295,6 +298,3 @@ errorlen2:
base db 0x0 base db 0x0
I_END: I_END:

View File

@@ -1,331 +1,337 @@
;********************************* ; SPDX-License-Identifier: NOASSERTION
;* * ;
;* PAINT 0.02 ¤«ï MenuetOS *
;* * ; Text encoded with Code Page 866 - Cyrillic
;* Š®¬¯¨«¨à®¢ âì FASM'®¬ *
;* *
;********************************* ;*********************************
;* *
;****************************************************************************** ;* PAINT 0.02 ¤«ï MenuetOS *
; <20>â㠯ணࠬ¬ã ­¥ ­ã¦­® á¥à쥧­® à áᬠâਢ âì - íâ® ¢á¥£® «¨èì ¯à¨¬¥à, ;* *
; ¢ ª®â®à®¬ ¯®ª § ­®, ª ª à ¡®â âì á ­¥ª®â®à묨 á¨á⥬­ë¬¨ äã­ªæ¨ï¬¨ Œ¥Ž‘, ;* Š®¬¯¨«¨à®¢ âì FASM'®¬ *
; ­® ­¨ª ª ­¥ ­®à¬ «ì­ë© £à ä¨ç¥áª¨© । ªâ®à. Š®¤ ¯à®£à ¬¬ë Ž—…<E28094>œ ¯à®á⮩, ;* *
; ¨ ®­  ¯à¥¤­ §­ ç¥­  ¤«ï â¥å, ªâ® ⮫쪮 ­ ç¨­ ¥â ¨§ãç âì  áᥬ¡«¥à, ;*********************************
; ¯®í⮬ã ï áâ६¨«áï ᤥ« âì ¥£® ª ª ¬®¦­® ¡®«¥¥ ¯®­ïâ­ë¬.
; ’¥¬ ­¥ ¬¥­¥¥, ª®¤ ¤®¢®«ì­® ­¥¯«®å® ®¯â¨¬¨§¨à®¢ ­, å®âï íâ® ­¥¬­®£® ;******************************************************************************
; ¬®¦¥â § âà㤭¨âì ¥£® ¯®­¨¬ ­¨¥. Ÿ ¯®áâ à «áï âé â¥«ì­® ¯à®ª®¬¬¥­â¨à®¢ âì ; <EFBFBD>â㠯ணࠬ¬ã ­¥ ­ã¦­® á¥à쥧­® à áᬠâਢ âì - íâ® ¢á¥£® «¨èì ¯à¨¬¥à,
; á«®¦­ë¥ ¬¥áâ . Šáâ â¨, ¨¤¥ï ¯à®£à ¬¬ë ¯à¨­ ¤«¥¦¨â ­¥ ¬­¥,   Sniper'ã, ¤«ï ; ¢ ª®â®à®¬ ¯®ª § ­®, ª ª à ¡®â âì á ­¥ª®â®à묨 á¨á⥬­ë¬¨ äã­ªæ¨ï¬¨ Œ¥Ž‘,
; ª®â®à®£® ¢®¡é¥¬-â® ¢á¥ ¨ ¯¨á «®áì. ; ­® ­¨ª ª ­¥ ­®à¬ «ì­ë© £à ä¨ç¥áª¨© । ªâ®à. Š®¤ ¯à®£à ¬¬ë Ž—…<E28094>œ ¯à®á⮩,
; “¤ ç¨ ¢ ¨§ã祭¨¨  á¬ ! ; ¨ ®­  ¯à¥¤­ §­ ç¥­  ¤«ï â¥å, ªâ® ⮫쪮 ­ ç¨­ ¥â ¨§ãç âì  áᥬ¡«¥à,
; ˆ¢ ­ <20>®¤¤ã¡­ë©, ivan-yar@bk.ru ; ¯®í⮬ã ï áâ६¨«áï ᤥ« âì ¥£® ª ª ¬®¦­® ¡®«¥¥ ¯®­ïâ­ë¬.
;****************************************************************************** ; ’¥¬ ­¥ ¬¥­¥¥, ª®¤ ¤®¢®«ì­® ­¥¯«®å® ®¯â¨¬¨§¨à®¢ ­, å®âï íâ® ­¥¬­®£®
; ¬®¦¥â § âà㤭¨âì ¥£® ¯®­¨¬ ­¨¥. Ÿ ¯®áâ à «áï âé â¥«ì­® ¯à®ª®¬¬¥­â¨à®¢ âì
; <EFBFBD>®¤ª«îç ¥¬ ­¥®¡å®¤¨¬ë¥ ¬ ªà®áë ; á«®¦­ë¥ ¬¥áâ . Šáâ â¨, ¨¤¥ï ¯à®£à ¬¬ë ¯à¨­ ¤«¥¦¨â ­¥ ¬­¥,   Sniper'ã, ¤«ï
include '../../../macros.inc' ; ª®â®à®£® ¢®¡é¥¬-â® ¢á¥ ¨ ¯¨á «®áì.
; “¤ ç¨ ¢ ¨§ã祭¨¨  á¬ !
;****************************************************************************** ; ˆ¢ ­ <20>®¤¤ã¡­ë©, ivan-yar@bk.ru
;******************************************************************************
; <20>€—€Ž <20><>Žƒ<C5BD>€ŒŒ
use32 ; <20>®¤ª«îç ¥¬ ­¥®¡å®¤¨¬ë¥ ¬ ªà®áë
org 0x0 include '../../macros.inc'
db 'MENUET01' ; 8 byte id
dd 0x01 ; title version ;******************************************************************************
dd START ; start of code
dd I_END ; size of image ; <20>€—€Ž <20><>Žƒ<C5BD>€ŒŒ
dd E_END ; memory for app use32
dd E_END ; esp org 0x0
dd 0x0,0x0 ; I_Param , I_Icon db 'MENUET01' ; 8 byte id
dd 0x01 ; title version
; Ž<>œ ŠŽ„€ dd START ; start of code
START: dd I_END ; size of image
mov eax,40 ; á®®¡é¨¬ á¨á⥬¥, ª ª¨¥ ᮡëâ¨ï ¡ã¤¥¬ ®¡à ¡ â뢠âì dd E_END ; memory for app
mov ebx,0100101b ; ¬ áª  ᮡë⨩ - ¯¥à¥à¨á®¢ª  (1) + ª­®¯ª  (3) + ¬ëèì (6 dd E_END ; esp
int 0x40 ; íâ  ª®¬ ­¤  ¢ë§ë¢ ¥â á¨á⥬­ãî äã­ªæ¨î dd 0x0,0x0 ; I_Param , I_Icon
mov [workarea.cx],5 ; ª®®à¤¨­ âë à ¡®ç¥© (ª«¨¥­â᪮©) ®¡« á⨠; Ž<>œ ŠŽ„€
mov [workarea.cy],30 ; ¤«ï à¨á®¢ ­¨ï START:
mov eax,40 ; á®®¡é¨¬ á¨á⥬¥, ª ª¨¥ ᮡëâ¨ï ¡ã¤¥¬ ®¡à ¡ â뢠âì
red: mov ebx,0100101b ; ¬ áª  ᮡë⨩ - ¯¥à¥à¨á®¢ª  (1) + ª­®¯ª  (3) + ¬ëèì (6
call draw_window ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­  int 0x40 ; íâ  ª®¬ ­¤  ¢ë§ë¢ ¥â á¨á⥬­ãî äã­ªæ¨î
still: ; ƒ<EFBFBD>‰ –ˆŠ‹ <20><>Žƒ<C5BD>€ŒŒ - –ˆŠ‹ Ž<><C5BD><EFBFBD>ŽŠˆ ŽŽ<C5BD>™…<E284A2>ˆ mov [workarea.cx],5 ; ª®®à¤¨­ âë à ¡®ç¥© (ª«¨¥­â᪮©) ®¡« áâ¨
mov [workarea.cy],30 ; ¤«ï à¨á®¢ ­¨ï
mov eax,10 ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï; ¯à®£à ¬¬  ®áâ ­ ¢«¨¢ ¥âáï ­ 
int 0x40 ; á«¥¤ãîé ï ª®¬ ­¤  ­¥ ¡ã¤¥â ¢ë¯®«­¥­  ¤® â¥å ¯®à, ¯®ª  red:
; ­¥ ¯à®¨§®©¤ñâ ᮡë⨥ call draw_window ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
; ⥯¥àì ॣ¨áâà eax ᮤ¥à¦¨â ­®¬¥à ᮡëâ¨ï still: ; ƒ<E282AC>‰ –ˆŠ‹ <20><>Žƒ<C5BD>€ŒŒ - –ˆŠ‹ Ž<><C5BD><EFBFBD>ŽŠˆ ŽŽ<C5BD>™…<E284A2>ˆ
; ¯®®ç¥à¥¤­® áà ¢­¨¬ ¥£® á® ¢á¥¬¨ ¢®§¬®¦­ë¬¨ §­ ç¥­¨ï¬¨, çâ®¡ë ¢ë§¢ âì
; ­ã¦­ë© ®¡à ¡®â稪 mov eax,10 ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï; ¯à®£à ¬¬  ®áâ ­ ¢«¨¢ ¥âáï ­ 
int 0x40 ; á«¥¤ãîé ï ª®¬ ­¤  ­¥ ¡ã¤¥â ¢ë¯®«­¥­  ¤® â¥å ¯®à, ¯®ª 
cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª­® ? ; ­¥ ¯à®¨§®©¤ñâ ᮡë⨥
je red ; ¥á«¨ ॣ¨áâà eax à ¢¥­ ¥¤¨­¨æ¥, â® ¯¥à¥å®¤¨¬ ­  ¬¥âªã red
cmp eax,3 ; ­ ¦ â  ª­®¯ª  ? ; ⥯¥àì ॣ¨áâà eax ᮤ¥à¦¨â ­®¬¥à ᮡëâ¨ï
je button ; ¯®®ç¥à¥¤­® áà ¢­¨¬ ¥£® á® ¢á¥¬¨ ¢®§¬®¦­ë¬¨ §­ ç¥­¨ï¬¨, çâ®¡ë ¢ë§¢ âì
cmp eax,6 ; ¬ëèì? ; ­ã¦­ë© ®¡à ¡®â稪
je mouse
cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª­® ?
jmp still ; ¥á«¨ ¯à®¨§®è«® ᮡë⨥, ª®â®à®¥ ¬ë ­¥ ®¡à ¡ â뢠¥¬, je red ; ¥á«¨ ॣ¨áâà eax à ¢¥­ ¥¤¨­¨æ¥, â® ¯¥à¥å®¤¨¬ ­  ¬¥âªã red
; ¯à®áâ® ¢®§¢à é ¥¬áï ª ­ ç «ã 横« , å®âï â ª®£® ¡ëâì cmp eax,3 ; ­ ¦ â  ª­®¯ª  ?
; ­¥ ¤®«¦­®! .¥. ¥á«¨ íâã ª®¬ ­¤ã ®âá ã¡à âì, â® je button
; ­¨ç¥£® áâà è­®£® ­¥ á«ãç¨âáï. cmp eax,6 ; ¬ëèì?
je mouse
;******************************************************************************
jmp still ; ¥á«¨ ¯à®¨§®è«® ᮡë⨥, ª®â®à®¥ ¬ë ­¥ ®¡à ¡ â뢠¥¬,
button: ; ®¡à ¡®â稪 ­ ¦ â¨ï ª­®¯ª¨ ¢ ®ª­¥ ¯à®£à ¬¬ë ; ¯à®áâ® ¢®§¢à é ¥¬áï ª ­ ç «ã 横« , å®âï â ª®£® ¡ëâì
mov eax,17 ; äã­ªæ¨ï N17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨ ; ­¥ ¤®«¦­®! .¥. ¥á«¨ íâã ª®¬ ­¤ã ®âá ã¡à âì, â®
int 0x40 ; ­¨ç¥£® áâà è­®£® ­¥ á«ãç¨âáï.
; ⥯¥àì ¢ ॣ¨áâॠah ᮤ¥à¦¨âáï ¨¤¥­â¨ä¨ª â®à. ;******************************************************************************
shr eax,8 ; ah -> al (ᤢ¨£ ­  8 ¡¨â ¢¯à ¢®) button: ; ®¡à ¡®â稪 ­ ¦ â¨ï ª­®¯ª¨ ¢ ®ª­¥ ¯à®£à ¬¬ë
mov eax,17 ; äã­ªæ¨ï N17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
dec al ; ¨¤¥­â¨ä¨ª â®à_ª­®¯ª¨--; int 0x40
jnz .noclose ; ¥á«¨ १ã«ìâ â ¯à¥¤ë¤ã饩 ª®¬ ­¤ë à ¢¥­ ­ã«î, § ªà뢠¥¬áï
; ¨­ ç¥ - ¨¤ñ¬ ­  ¬¥âªã noclose ; ⥯¥àì ¢ ॣ¨áâॠah ᮤ¥à¦¨âáï ¨¤¥­â¨ä¨ª â®à.
or eax,-1 ; ¢ë室 ¨§ ¯à®£à ¬¬ë shr eax,8 ; ah -> al (ᤢ¨£ ­  8 ¡¨â ¢¯à ¢®)
int 0x40
dec al ; ¨¤¥­â¨ä¨ª â®à_ª­®¯ª¨--;
.noclose: jnz .noclose ; ¥á«¨ १ã«ìâ â ¯à¥¤ë¤ã饩 ª®¬ ­¤ë à ¢¥­ ­ã«î, § ªà뢠¥¬áï
; ¥á«¨ ¬ë á ¯®¯ «¨, §­ ç¨â ¨¤¥­â¨ä¨ª â®à ª­®¯ª¨ ­¥ ¡ë« à ¢¥­ ­ã«î... ; ¨­ ç¥ - ¨¤ñ¬ ­  ¬¥âªã noclose
; ⥯¥àì ã ­ á ¢ eax ᮤ¥à¦¨âáï (­®¬¥à 梥⭮© ª­®¯ª¨ - 1),
; â.¥ ¨«¨ 1, ¨«¨ 2, ... ,¨«¨ 5 or eax,-1 ; ¢ë室 ¨§ ¯à®£à ¬¬ë
int 0x40
; 㬥­ì訬 ­  1:
dec eax .noclose:
; ¥á«¨ ¬ë á ¯®¯ «¨, §­ ç¨â ¨¤¥­â¨ä¨ª â®à ª­®¯ª¨ ­¥ ¡ë« à ¢¥­ ­ã«î...
; ¢®â íâ  ¢®â ª®¬ ­¤  ¨§¢«¥ª ¥â ¢ eax ¤¢®©­®¥ á«®¢® ¯®  ¤à¥áã colors+eax*4 ; ⥯¥àì ã ­ á ¢ eax ᮤ¥à¦¨âáï (­®¬¥à 梥⭮© ª­®¯ª¨ - 1),
; £¤¥ colors - ᬥ饭¨¥ ¬¥âª¨ colors, ¯®á«¥ ª®â®à®© ¨¤¥â ¯®á«¥¤®¢ â¥«ì­®áâì ; â.¥ ¨«¨ 1, ¨«¨ 2, ... ,¨«¨ 5
; 梥⮢, eax*4 - ­®¬¥à 梥â , 㬭®¦¥­­ë© ­  4, â.ª. ­  ®¤¨­ 梥⠭㦭®
; ç¥âëॠ¡ ©â . ; 㬥­ì訬 ­  1:
mov eax,[colors+eax*4] dec eax
; ⥯¥àì ¬ë ãáâ ­®¢¨¬ 梥â, ᮤ¥à¦ é¨©áï ¢ ॣ¨áâॠeax ª ª ®á­®¢­®©: ; ¢®â íâ  ¢®â ª®¬ ­¤  ¨§¢«¥ª ¥â ¢ eax ¤¢®©­®¥ á«®¢® ¯®  ¤à¥áã colors+eax*4
mov [active_color],eax ; £¤¥ colors - ᬥ饭¨¥ ¬¥âª¨ colors, ¯®á«¥ ª®â®à®© ¨¤¥â ¯®á«¥¤®¢ â¥«ì­®áâì
; 梥⮢, eax*4 - ­®¬¥à 梥â , 㬭®¦¥­­ë© ­  4, â.ª. ­  ®¤¨­ 梥⠭㦭®
; ­ã ¢®â, ᮡá⢥­­®, ¨ ¢áñ, çâ® ®â ­ á âॡ®¢ «®áì ;) ; ç¥âëॠ¡ ©â .
; ¢¥à­ñ¬áï ª ­ ç «ã 横«  ®¡à ¡®âª¨ ᮡë⨩ mov eax,[colors+eax*4]
jmp still
; ⥯¥àì ¬ë ãáâ ­®¢¨¬ 梥â, ᮤ¥à¦ é¨©áï ¢ ॣ¨áâॠeax ª ª ®á­®¢­®©:
;****************************************************************************** mov [active_color],eax
mouse: ; ®¡à ¡®â稪 ¬ëè¨ ; ­ã ¢®â, ᮡá⢥­­®, ¨ ¢áñ, çâ® ®â ­ á âॡ®¢ «®áì ;)
mov eax,37 ; á­ ç «  ¯®«ã稬 ⥪ã騥 ª®®à¤¨­ âë ¬ëè¨ ; ¢¥à­ñ¬áï ª ­ ç «ã 横«  ®¡à ¡®âª¨ ᮡë⨩
mov ebx,1 jmp still
int 0x40
;******************************************************************************
mov ebx,eax ; ¯à¥®¡à §ã¥¬ ¨å
shr eax,16 ; eax=x; mouse: ; ®¡à ¡®â稪 ¬ëè¨
and ebx,0xffff ; ebx=y; mov eax,37 ; á­ ç «  ¯®«ã稬 ⥪ã騥 ª®®à¤¨­ âë ¬ëè¨
mov ebx,1
cmp ebx,22 int 0x40
jb save_canvas
mov ebx,eax ; ¯à¥®¡à §ã¥¬ ¨å
sub eax,[workarea.cx] ; x-=[workarea.cx] shr eax,16 ; eax=x;
cmp eax,0 ; ¥á«¨ ¬ëèì «¥¢¥¥ ª«¨¥­â᪮© ®¡« áâ¨, and ebx,0xffff ; ebx=y;
jle .not_pressed ; ­¨ç¥£® ­¥ à¨á㥬
cmp eax,[workarea.sx] ; ¥á«¨ ¬ëèì ¯à ¢¥¥... cmp ebx,22
jae .not_pressed jb save_canvas
sub ebx,[workarea.cy] sub eax,[workarea.cx] ; x-=[workarea.cx]
cmp ebx,0 ; ...¢ëè¥... cmp eax,0 ; ¥á«¨ ¬ëèì «¥¢¥¥ ª«¨¥­â᪮© ®¡« áâ¨,
jle .not_pressed jle .not_pressed ; ­¨ç¥£® ­¥ à¨á㥬
cmp ebx,[workarea.sy] ; ...­¨¦¥... cmp eax,[workarea.sx] ; ¥á«¨ ¬ëèì ¯à ¢¥¥...
jae .not_pressed jae .not_pressed
; ª ª¨¥ ª­®¯ª¨ ­ ¦ âë? sub ebx,[workarea.cy]
mov eax,37 cmp ebx,0 ; ...¢ëè¥...
mov ebx,2 jle .not_pressed
int 0x40 cmp ebx,[workarea.sy] ; ...­¨¦¥...
jae .not_pressed
; ¥á«¨ «¥¢ ï ª­®¯ª  (â.¥. eax = 1), ⥠¯®©¤ñ¬ ¤ «ìè¥
cmp eax,1 ; ª ª¨¥ ª­®¯ª¨ ­ ¦ âë?
je .leftbtn mov eax,37
mov ebx,2
.not_pressed: int 0x40
; ‹¥¢ ï ª­®¯ª  ­¥ ­ ¦ â , § ¯®¬­¨¬ ⥪ã騥 ª®®à¤¨­ âë ¨ ¡ã¤¥¬ ¦¤ âì ᮡëâ¨ï
mov [mouse_pressed],0 ; ¬ëèì ­¥ ­ ¦ â  ; ¥á«¨ «¥¢ ï ª­®¯ª  (â.¥. eax = 1), ⥠¯®©¤ñ¬ ¤ «ìè¥
mov eax,37 ; ¯®«ã稬 ª®®à¤¨­ âë cmp eax,1
mov ebx,1 je .leftbtn
int 0x40
mov ebx,eax .not_pressed:
shr eax,16 ; ‹¥¢ ï ª­®¯ª  ­¥ ­ ¦ â , § ¯®¬­¨¬ ⥪ã騥 ª®®à¤¨­ âë ¨ ¡ã¤¥¬ ¦¤ âì ᮡëâ¨ï
and ebx,0xffff mov [mouse_pressed],0 ; ¬ëèì ­¥ ­ ¦ â 
mov [old_x],eax ; § ¯®¬­¨¬ ¨å mov eax,37 ; ¯®«ã稬 ª®®à¤¨­ âë
mov [old_y],ebx mov ebx,1
jmp still int 0x40
mov ebx,eax
.leftbtn: shr eax,16
; ‹¥¢ ï ª­®¯ª  ­ ¦ â , ­ ¤® íâ® § ¯¨á âì! and ebx,0xffff
mov [mouse_pressed],1 mov [old_x],eax ; § ¯®¬­¨¬ ¨å
mov [old_y],ebx
; <20>®«ã稬 ª®®à¤¨­ âë ªãàá®à  ¬ëè¨ (®â­®á¨â¥«ì­® ®ª­ ) jmp still
mcall 37,1 ; ¯®«ãç¨âì á®áâ®ï­¨¥ ¬ëè¨
.leftbtn:
; <EFBFBD>¥à¥¤¥« ¥¬ ¨å â ª, çâ®¡ë ®­¨ ¡ë«¨ ¢ à §­ëå ॣ¨áâà å, â.¥. eax ¨ ebx ; ‹¥¢ ï ª­®¯ª  ­ ¦ â , ­ ¤® íâ® § ¯¨á âì!
mov ebx,eax mov [mouse_pressed],1
shr eax,16
and ebx,0xffff ; <20>®«ã稬 ª®®à¤¨­ âë ªãàá®à  ¬ëè¨ (®â­®á¨â¥«ì­® ®ª­ )
mcall 37,1 ; ¯®«ãç¨âì á®áâ®ï­¨¥ ¬ëè¨
; <20>®¤£®â®¢¨¬ ¯ à ¬¥âàë ¤«ï ä㭪樨 à¨á®¢ ­¨ï «¨­¨¨
mov ecx,[old_x] ; ¤«ï ­ ç «  § £à㧨¬ áâ àë¥ ª®®à¤¨­ âë ; <20>¥à¥¤¥« ¥¬ ¨å â ª, çâ®¡ë ®­¨ ¡ë«¨ ¢ à §­ëå ॣ¨áâà å, â.¥. eax ¨ ebx
mov edx,[old_y] mov ebx,eax
mov [old_x],eax ; ⥯¥àì á®åà ­¨¬ ⥪ã騥 ¢ áâ àë¥ shr eax,16
mov [old_y],ebx and ebx,0xffff
shl ecx,16 ; ¢ ¢¥àå­¥¥ á«®¢® ­ ç «ì­ë¥ (⥪ã騥) ª®®à¤¨­ âë
shl edx,16 ; <20>®¤£®â®¢¨¬ ¯ à ¬¥âàë ¤«ï ä㭪樨 à¨á®¢ ­¨ï «¨­¨¨
add eax,ecx ;   ¢ ­¨¦­¥¥ á«®¢® ª®­¥ç­ë¥, â.¥. áâ àë¥ mov ecx,[old_x] ; ¤«ï ­ ç «  § £à㧨¬ áâ àë¥ ª®®à¤¨­ âë
add ebx,edx mov edx,[old_y]
mov [old_x],eax ; ⥯¥àì á®åà ­¨¬ ⥪ã騥 ¢ áâ àë¥
mov ecx,ebx ; ¯®¬¥­ï¥¬ ॣ¨áâàë â ª, ª ª íâ㠭㦭® 38 ä㭪樨 mov [old_y],ebx
mov ebx,eax shl ecx,16 ; ¢ ¢¥àå­¥¥ á«®¢® ­ ç «ì­ë¥ (⥪ã騥) ª®®à¤¨­ âë
mov eax,38 ; ­®¬¥à ä㭪樨 ¢ eax shl edx,16
mov edx,[active_color] ; ¢ edx 梥â add eax,ecx ;   ¢ ­¨¦­¥¥ á«®¢® ª®­¥ç­ë¥, â.¥. áâ àë¥
int 0x40 add ebx,edx
;  - ¯®¯à®¡ã©â¥ ¯®áâ ¢¨âì ¤à㣨¥ §­ ç¥­¨ï (00090001) mov ecx,ebx ; ¯®¬¥­ï¥¬ ॣ¨áâàë â ª, ª ª íâ㠭㦭® 38 ä㭪樨
mov edi,0x00010001 ; çâ®¡ë «¨­¨ï ­¥ ¡ë«  ᫨誮¬ â®­ª®©, mov ebx,eax
add ebx,edi ; ­ à¨á㥬 à冷¬ ¥é¥ 3! mov eax,38 ; ­®¬¥à ä㭪樨 ¢ eax
int 0x40 mov edx,[active_color] ; ¢ edx 梥â
add ecx,edi int 0x40
int 0x40
sub ebx,edi ;  - ¯®¯à®¡ã©â¥ ¯®áâ ¢¨âì ¤à㣨¥ §­ ç¥­¨ï (00090001)
int 0x40 mov edi,0x00010001 ; çâ®¡ë «¨­¨ï ­¥ ¡ë«  ᫨誮¬ â®­ª®©,
add ebx,edi ; ­ à¨á㥬 à冷¬ ¥é¥ 3!
sub ebx,edi ; ­ã   ç⮡ë ᬮâ५®áì ᮢᥬ ªàãâ®, int 0x40
int 0x40 ; ¤®à¨á㥬 ¥é¥ 5! add ecx,edi
sub ecx,edi int 0x40
int 0x40 sub ebx,edi
sub ecx,edi int 0x40
int 0x40
add ebx,edi sub ebx,edi ; ­ã   ç⮡ë ᬮâ५®áì ᮢᥬ ªàãâ®,
int 0x40 int 0x40 ; ¤®à¨á㥬 ¥é¥ 5!
add ebx,edi sub ecx,edi
int 0x40 int 0x40
sub ecx,edi
jmp still int 0x40
add ebx,edi
;****************************************************************************** int 0x40
add ebx,edi
save_canvas: int 0x40
mov eax,[proc_info.box.width]
add eax,[workarea.cx] jmp still
mov ebx,[proc_info.box.height]
add ebx,[workarea.cy] ;******************************************************************************
jmp still save_canvas:
mov eax,[proc_info.box.width]
;****************************************************************************** add eax,[workarea.cx]
mov ebx,[proc_info.box.height]
; ********************************************* add ebx,[workarea.cy]
; ******* Ž<><C5BD>…„…<E280B9>ˆˆ Ž<C5BD>ˆŽŠ€ ŽŠ<C5BD>€ *******
; ********************************************* jmp still
draw_window: ;******************************************************************************
mcall 48,3,sc,sizeof.system_colors ; <20>Ž„ƒ<E2809E>“†€…Œ ˆ…Œ<E280A6>… –‚…’€ ; *********************************************
mcall 12, 1 ; ­ ç «® ®âà¨á®¢ª¨ ®ª­  ; ******* Ž<><C5BD>…„…<E280B9>ˆˆ Ž<C5BD>ˆŽŠ€ ŽŠ<C5BD>€ *******
mov edx, [sc.work] ; *********************************************
or edx, 0x33000000
mcall 0, (100 shl 16)+400, (100 shl 16)+300, , , title ; à¨á㥬 ®ª­® draw_window:
mcall 12, 1
mcall 48,3,sc,sizeof.system_colors ; <20>Ž„ƒ<E2809E>“†€…Œ ˆ…Œ<E280A6>… –‚…’€
mcall 9,proc_info,-1 ; ¯®«ã稬 ¨­ä®à¬ æ¨î ® ᢮¥¬ ¯®â®ª¥ mcall 12, 1 ; ­ ç «® ®âà¨á®¢ª¨ ®ª­ 
mov edx, [sc.work]
mov eax,[proc_info.box.width] ; ­ áâந¬ à §¬¥à à ¡®ç¥© ®¡« á⨠or edx, 0x33000000
sub eax,20 ; (å à §¬¥à ®ª­  - 20) mcall 0, (100 shl 16)+400, (100 shl 16)+300, , , title ; à¨á㥬 ®ª­®
mov [workarea.sx],eax mcall 12, 1
mov eax,[proc_info.box.height]
sub eax,63 ; (ã à §¬¥à - 63) mcall 9,proc_info,-1 ; ¯®«ã稬 ¨­ä®à¬ æ¨î ® ᢮¥¬ ¯®â®ª¥
mov [workarea.sy],eax
mov eax,[proc_info.box.width] ; ­ áâந¬ à §¬¥à à ¡®ç¥© ®¡« áâ¨
cmp [proc_info.box.height],80 sub eax,20 ; (å à §¬¥à ®ª­  - 20)
jb .finish mov [workarea.sx],eax
mov eax,[proc_info.box.height]
mov eax, 8 sub eax,63 ; (ã à §¬¥à - 63)
mov edx, 1 mov [workarea.sy],eax
; á®§¤ ñ¬ ª­®¯ª¨ ¢ë¡®à  梥â :
mov ebx,10*65536+15 ; ­ ç «ì­ ï x ª®®à¤¨­ â  ¨ à §¬¥à cmp [proc_info.box.height],80
mov ecx, 7*65536+15 ; ­ ç «ì­ ï y ª®®à¤¨­ â  & size jb .finish
.new_button:
inc edx ; ¨¤¥­â¨ä¨ª â®à++; mov eax, 8
mov esi,[btn_colors-8+edx*4] ; 梥⠪­®¯ª¨ mov edx, 1
int 0x40 ; áâ ¢¨¬ ª­®¯ªã ; á®§¤ ñ¬ ª­®¯ª¨ ¢ë¡®à  梥â :
add ebx,18*65536 ; á«¥¤ãîé ï ª­®¯ª  ¯à ¢¥¥ ­  12 mov ebx,10*65536+15 ; ­ ç «ì­ ï x ª®®à¤¨­ â  ¨ à §¬¥à
cmp edx,9 ; áà ¢­¨¢ ¥¬ edx (¨¤¥­â¨ä¨ª â®à) á 9 mov ecx, 7*65536+15 ; ­ ç «ì­ ï y ª®®à¤¨­ â  & size
jbe .new_button ; ¥á«¨ ¬¥­ìè¥ ¨«¨ à ¢­® -> ¥éñ ®¤­ã ª¯®ªã .new_button:
inc edx ; ¨¤¥­â¨ä¨ª â®à++;
mov eax,13 ; ç¨á⨬ "宫áâ" - ª«¨¥­âáªãî ®¡« áâì mov esi,[btn_colors-8+edx*4] ; 梥⠪­®¯ª¨
mov ebx,[workarea.cx] int 0x40 ; áâ ¢¨¬ ª­®¯ªã
mov ecx,[workarea.cy] add ebx,18*65536 ; á«¥¤ãîé ï ª­®¯ª  ¯à ¢¥¥ ­  12
shl ebx,16 cmp edx,9 ; áà ¢­¨¢ ¥¬ edx (¨¤¥­â¨ä¨ª â®à) á 9
shl ecx,16 jbe .new_button ; ¥á«¨ ¬¥­ìè¥ ¨«¨ à ¢­® -> ¥éñ ®¤­ã ª¯®ªã
add ebx,[workarea.sx]
add ecx,[workarea.sy] mov eax,13 ; ç¨á⨬ "宫áâ" - ª«¨¥­âáªãî ®¡« áâì
mov edx,0xffffff mov ebx,[workarea.cx]
mcall 13 mov ecx,[workarea.cy]
shl ebx,16
.finish: shl ecx,16
ret add ebx,[workarea.sx]
add ecx,[workarea.sy]
;****************************************************************************** mov edx,0xffffff
; ­ ç «® ®¡« á⨠¨­¨æ¨ «¨§¨à®¢ ­­ëå ¤ ­­ëå mcall 13
; ¥á«¨ ªâ® ¥éñ ­¥ §­ ¥â, çâ® §­ ç¨â "¨­¨æ¨ «¨§¨à®¢ ­­ë¥", â® ¯®ïá­ïî:
; í⮠⥠¤ ­­ë¥, ª®â®àë¬ ¯à¨á¢®¥­® ­ ç «ì­®¥ §­ ç¥­¨¥ .finish:
ret
;data
;******************************************************************************
title db 'Simple Paint v0.3',0 ; ­ ç «® ®¡« á⨠¨­¨æ¨ «¨§¨à®¢ ­­ëå ¤ ­­ëå
; ¥á«¨ ªâ® ¥éñ ­¥ §­ ¥â, çâ® §­ ç¨â "¨­¨æ¨ «¨§¨à®¢ ­­ë¥", â® ¯®ïá­ïî:
mouse_pressed db 0 ; ¯®ª §ë¢ ¥â, ­ ¦ â  «¨ ¡ë«  ¬ëèì ¢ ¯à¥¤ë¤ã騩 ¬®¬¥­â ; í⮠⥠¤ ­­ë¥, ª®â®àë¬ ¯à¨á¢®¥­® ­ ç «ì­®¥ §­ ç¥­¨¥
; æ¢¥â  ª­®¯®ª ;data
btn_colors:
dd 0xdddddd ; white title db 'Simple Paint v0.3',0
dd 0x444444 ; black
dd 0x00dd00 ; green mouse_pressed db 0 ; ¯®ª §ë¢ ¥â, ­ ¦ â  «¨ ¡ë«  ¬ëèì ¢ ¯à¥¤ë¤ã騩 ¬®¬¥­â
dd 0x0000dd ; blue
dd 0xdd0000 ; red ; æ¢¥â  ª­®¯®ª
dd 0xdd00dd ; magenta btn_colors:
dd 0xdddd00 ; yellow dd 0xdddddd ; white
dd 0x00dddd ; cyan dd 0x444444 ; black
dd 0x559955 ; warm green dd 0x00dd00 ; green
dd 0x0000dd ; blue
; æ¢¥â  ª¨á⨠(¢ ⮬ ¦¥ ¯®à浪¥, çâ® ¨ æ¢¥â  ª­®¯®ª) dd 0xdd0000 ; red
colors: dd 0xdd00dd ; magenta
dd 0xffffff ; ¡¥«ë© dd 0xdddd00 ; yellow
dd 0x000000 ; ç¥à­ë© dd 0x00dddd ; cyan
dd 0x00ff00 ; §¥«¥­ë© dd 0x559955 ; warm green
dd 0x0000ff ; ᨭ¨©
dd 0xff0000 ; ªà á­ë© ; æ¢¥â  ª¨á⨠(¢ ⮬ ¦¥ ¯®à浪¥, çâ® ¨ æ¢¥â  ª­®¯®ª)
dd 0xff00ff ; ¯ãà¯ãà­ë© colors:
dd 0xffff00 ; ¦¥«âë© dd 0xffffff ; ¡¥«ë©
dd 0x00ffff ; £®«ã¡®© dd 0x000000 ; ç¥à­ë©
dd 0x77bb77 ; ⥯«ë© §¥«¥­ë© dd 0x00ff00 ; §¥«¥­ë©
dd 0x0000ff ; ᨭ¨©
;****************************************************************************** dd 0xff0000 ; ªà á­ë©
;   ¢®â âãâ ­ ç¨­ ¥âáï ®¡« áâì <20>…¨­¨æ¨ «¨§¨à®¢ ­­ëå ¤ ­­ëå, â.¥. dd 0xff00ff ; ¯ãà¯ãà­ë©
; §¤¥áì ¤ ­­ë¬ §­ ç¥­¨ï ­¥ ¯à¨á¢®¥­ë. ®â«¨ç¨¥ ®â ¨­¨æ., ­¥ 㢥«¨ç¨¢ îâ à §¬¥à dd 0xffff00 ; ¦¥«âë©
; ä ©«  dd 0x00ffff ; £®«ã¡®©
dd 0x77bb77 ; ⥯«ë© §¥«¥­ë©
I_END:
;******************************************************************************
active_color dd ? ;  ªâ¨¢­ë© 梥â ;   ¢®â âãâ ­ ç¨­ ¥âáï ®¡« áâì <20>…¨­¨æ¨ «¨§¨à®¢ ­­ëå ¤ ­­ëå, â.¥.
; §¤¥áì ¤ ­­ë¬ §­ ç¥­¨ï ­¥ ¯à¨á¢®¥­ë. ®â«¨ç¨¥ ®â ¨­¨æ., ­¥ 㢥«¨ç¨¢ îâ à §¬¥à
old_x dd ? ; áâ àë¥ ª®®à¤¨­ âë ¬ëè¨ ; ä ©« 
old_y dd ?
I_END:
workarea: ; ª®®à¤¨­ âë ¨ à §¬¥àë ª«¨¥­â᪮© ®¡« áâ¨
.cx dd ? ; c - ª®®¤¨­ âë active_color dd ? ;  ªâ¨¢­ë© 梥â
.cy dd ?
.sx dd ? ; s - à §¬¥àë old_x dd ? ; áâ àë¥ ª®®à¤¨­ âë ¬ëè¨
.sy dd ? old_y dd ?
sc system_colors ; á¨á⥬­ë¥ æ¢¥â  workarea: ; ª®®à¤¨­ âë ¨ à §¬¥àë ª«¨¥­â᪮© ®¡« áâ¨
proc_info process_information ; ¨­ä®à¬ æ¨ï ® ¯à®æ¥áᥠ.cx dd ? ; c - ª®®¤¨­ âë
.cy dd ?
restflag dd ? .sx dd ? ; s - à §¬¥àë
canvas rb 800*600*3 .sy dd ?
E_END: sc system_colors ; á¨á⥬­ë¥ 梥â 
proc_info process_information ; ¨­ä®à¬ æ¨ï ® ¯à®æ¥áá¥
restflag dd ?
canvas rb 800*600*3
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())

View File

@@ -1,73 +1,77 @@
use32 ; SPDX-License-Identifier: NOASSERTION
db 'MENUET01' ;
dd 1
dd start
dd i_end use32
dd 0x400 db 'MENUET01'
dd 0x400 dd 1
dd 0,0 dd start
dd i_end
include '../../../macros.inc' dd 0x400
dd 0x400
start: dd 0,0
mov eax, 55
mov ebx, eax include '../../macros.inc'
mov esi, melody2
int 0x40 start:
mov eax, 5 mov eax, 55
mov ebx, 1000 mov ebx, eax
int 0x40 mov esi, melody2
mov eax, -1 int 0x40
int 0x40 mov eax, 5
mov ebx, 1000
melody1: int 0x40
db 0xE4, 0x35, 0x99, 0x33, 0x99, 0x31, 0x99, 0x33 mov eax, -1
db 0xE4, 0x35, 0x99, 0x35, 0x99, 0x36, 0x99, 0x38, 0x99, 0x3A int 0x40
db 0xE4, 0x36, 0xE4, 0x36
db 0xB2, 0xFF melody1:
db 0xE4, 0x33, 0x99, 0x31, 0x99, 0x2C, 0x99, 0x31 db 0xE4, 0x35, 0x99, 0x33, 0x99, 0x31, 0x99, 0x33
db 0xE4, 0x33, 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36 db 0xE4, 0x35, 0x99, 0x35, 0x99, 0x36, 0x99, 0x38, 0x99, 0x3A
db 0xE4, 0x35, 0xE4, 0x35 db 0xE4, 0x36, 0xE4, 0x36
db 0xB2, 0xFF db 0xB2, 0xFF
db 0x99, 0x35, 0x99, 0x36 db 0xE4, 0x33, 0x99, 0x31, 0x99, 0x2C, 0x99, 0x31
db 0xE4, 0x33, 0x99, 0x35, 0x99, 0x36 db 0xE4, 0x33, 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36
db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36 db 0xE4, 0x35, 0xE4, 0x35
db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36 db 0xB2, 0xFF
db 0xE4, 0x39, 0xE4, 0x39 db 0x99, 0x35, 0x99, 0x36
db 0xB2, 0xFF db 0xE4, 0x33, 0x99, 0x35, 0x99, 0x36
db 0x99, 0x35, 0x99, 0x36 db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36
db 0xE4, 0x33, 0x99, 0x35, 0x99, 0x36 db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36
db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36 db 0xE4, 0x39, 0xE4, 0x39
db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36 db 0xB2, 0xFF
db 0xE4, 0x35, 0xE4, 0x35 db 0x99, 0x35, 0x99, 0x36
db 0 db 0xE4, 0x33, 0x99, 0x35, 0x99, 0x36
db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36
melody2: db 0xB2, 0x33, 0x99, 0x35, 0x99, 0x36
db 0x90, 0x31, 0x90, 0x33, 0x90, 0x35, 0x90, 0x36 db 0xE4, 0x35, 0xE4, 0x35
db 0xA0, 0xFF db 0
db 0xA0, 0x06
db 0x90, 0xFF melody2:
db 0xA0, 0x06 db 0x90, 0x31, 0x90, 0x33, 0x90, 0x35, 0x90, 0x36
db 0x90, 0xFF db 0xA0, 0xFF
db 0x90, 0x33, 0x90, 0x35, 0x90, 0x37, 0x90, 0x38 db 0xA0, 0x06
db 0xA0, 0xFF db 0x90, 0xFF
db 0xA0, 0x18 db 0xA0, 0x06
db 0x90, 0xFF db 0x90, 0xFF
db 0xA0, 0x18 db 0x90, 0x33, 0x90, 0x35, 0x90, 0x37, 0x90, 0x38
db 0x90, 0xFF db 0xA0, 0xFF
db 0x90, 0x33, 0x90, 0x35, 0x90, 0x37, 0x90, 0x38 db 0xA0, 0x18
db 0xA0, 0xFF db 0x90, 0xFF
db 0x90, 0x33, 0x90, 0x35, 0x90, 0x37, 0x90, 0x38 db 0xA0, 0x18
db 0xA0, 0xFF db 0x90, 0xFF
db 0x90, 0x31, 0x90, 0x33, 0x90, 0x35, 0x90, 0x36 db 0x90, 0x33, 0x90, 0x35, 0x90, 0x37, 0x90, 0x38
db 0xA0, 0xFF db 0xA0, 0xFF
db 0xA0, 0x16 db 0x90, 0x33, 0x90, 0x35, 0x90, 0x37, 0x90, 0x38
db 0x90, 0xFF db 0xA0, 0xFF
db 0xA0, 0x16 db 0x90, 0x31, 0x90, 0x33, 0x90, 0x35, 0x90, 0x36
db 0 db 0xA0, 0xFF
db 0xA0, 0x16
melody3: db 0x90, 0xFF
db 0x99, 0x31, 0xB2, 0x36, 0x99, 0x3A, 0xB2, 0x36 db 0xA0, 0x16
db 0x99, 0x33, 0xB2, 0x28, 0xBC, 0x38 db 0
db 0
i_end: melody3:
db 0x99, 0x31, 0xB2, 0x36, 0x99, 0x3A, 0xB2, 0x36
db 0x99, 0x33, 0xB2, 0x28, 0xBC, 0x38
db 0
i_end:

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 209 B

View File

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -1,3 +1,9 @@
; SPDX-License-Identifier: NOASSERTION
;
; Text encoded with Code Page 866 - Cyrillic
use32 use32
org 0 org 0
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD> db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
@@ -8,13 +14,13 @@ include '../../../proc32.inc'
include '../../../KOSfuncs.inc' include '../../../KOSfuncs.inc'
include '../../../load_img.inc' include '../../../load_img.inc'
include '../../../load_lib.mac' include '../../../load_lib.mac'
include '../trunk/str.inc' include '../str.inc'
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US. include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
vox_offs_tree_table equ 4 vox_offs_tree_table equ 4
vox_offs_data equ 12 vox_offs_data equ 12
txt_buf rb 8 txt_buf rb 8
include '../trunk/vox_rotate.inc' include '../vox_rotate.inc'
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load @use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
if lang eq ru_RU if lang eq ru_RU

View File

@@ -1,3 +1,9 @@
; SPDX-License-Identifier: NOASSERTION
;
; Text encoded with Code Page 866 - Cyrillic
use32 use32
org 0 org 0
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD> db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
@@ -8,9 +14,9 @@ include '../../../proc32.inc'
include '../../../KOSfuncs.inc' include '../../../KOSfuncs.inc'
include '../../../load_img.inc' include '../../../load_img.inc'
include '../../../load_lib.mac' include '../../../load_lib.mac'
include '../trunk/vox_draw.inc' include '../vox_draw.inc'
include '../trunk/vox_rotate.inc' include '../vox_rotate.inc'
include '../trunk/str.inc' include '../str.inc'
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US. include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load @use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load

View File

@@ -1,3 +1,9 @@
; SPDX-License-Identifier: NOASSERTION
;
; Text encoded with Code Page 866 - Cyrillic
use32 use32
org 0 org 0
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD> db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
@@ -11,7 +17,7 @@ include '../../../load_lib.mac'
include '../../../develop/libraries/TinyGL/asm_fork/opengl_const.inc' include '../../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
include '../../../develop/libraries/TinyGL/asm_fork/zbuffer.inc' include '../../../develop/libraries/TinyGL/asm_fork/zbuffer.inc'
include 'vox_3d.inc' include 'vox_3d.inc'
include '../trunk/str.inc' include '../str.inc'
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US. include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load @use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load

View File

@@ -1,429 +1,435 @@
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0ADAE><EFBFBD> <20>ᥬ, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD>/ᮢ<>⮬/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ... ; SPDX-License-Identifier: NOASSERTION
;
use32
org 0 ; Text encoded with Code Page 866 - Cyrillic
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
dd 1, start, i_end, mem, stacktop, file_name, sys_path
;<3B><><EFBFBD><E0AEAC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0ADAE><EFBFBD> <20>ᥬ, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD>/ᮢ<>⮬/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ...
MAX_COLOR_WORD_LEN equ 40
maxChars equ 100002 ;(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E3ACA5><EFBFBD> + 2) use32
BUF_SIZE equ 4096 ;buffer for copy|paste org 0
maxSyntaxFileSize equ 410000 db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
TOOLBAR_ICONS_SIZE equ 1200*21 dd 1, start, i_end, mem, stacktop, file_name, sys_path
include '../../proc32.inc' MAX_COLOR_WORD_LEN equ 40
include '../../macros.inc' maxChars equ 100002 ;(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E3ACA5><EFBFBD> + 2)
include '../../KOSfuncs.inc' BUF_SIZE equ 4096 ;buffer for copy|paste
include '../../load_img.inc' maxSyntaxFileSize equ 410000
include '../../load_lib.mac' TOOLBAR_ICONS_SIZE equ 1200*21
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../system/skincfg/trunk/kglobals.inc' include '../../proc32.inc'
include '../../system/skincfg/trunk/unpacker.inc' include '../../macros.inc'
include 'lang.inc' include '../../KOSfuncs.inc'
include '../../load_img.inc'
include 't_data.inc' include '../../load_lib.mac'
include 't_button.inc' include '../../develop/libraries/box_lib/trunk/box_lib.mac'
include 't_menu.inc' include '../../system/skincfg/trunk/kglobals.inc'
include 'strlen.inc' include '../../system/skincfg/trunk/unpacker.inc'
include 't_draw.inc' ;draw main window functions include 'lang.inc'
include 'wnd_k_words.inc'
include 't_data.inc'
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load include 't_button.inc'
include 't_menu.inc'
align 4 include 'strlen.inc'
icon_tl_sys dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> include 't_draw.inc' ;draw main window functions
run_file_70 FileInfoBlock include 'wnd_k_words.inc'
align 4 @use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
start:
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors align 4
icon_tl_sys dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mcall SF_SYS_MISC,SSF_HEAP_INIT run_file_70 FileInfoBlock
or eax,eax
jnz @f align 4
call ted_Exit start:
@@: mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 ;scan code mcall SF_SYS_MISC,SSF_HEAP_INIT
mcall SF_SET_EVENTS_MASK,0xC0000027 or eax,eax
jnz @f
mov esi,file_name call ted_Exit
stdcall str_len,esi @@:
mov ecx,eax
mov edi,openfile_path mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 ;scan code
cld mcall SF_SET_EVENTS_MASK,0xC0000027
rep movsb ;<3B><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD> openfile_path
mov esi,file_name
load_libraries l_libs_start,load_lib_end stdcall str_len,esi
mov ecx,eax
;<3B><EFBFBD><20><><>쪮 㤠筮 <20><><EFBFBD><EFBFBD><E3A7A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mov edi,openfile_path
mov ebp,lib0 cld
.test_lib_open: rep movsb ;<3B><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD> openfile_path
cmp dword [ebp+ll_struc_size-4],0
jz @f load_libraries l_libs_start,load_lib_end
mcall SF_TERMINATE_PROCESS ;exit not correct
@@: ;<3B><EFBFBD><20><><>쪮 㤠筮 <20><><EFBFBD><EFBFBD><E3A7A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebp,ll_struc_size mov ebp,lib0
cmp ebp,load_lib_end .test_lib_open:
jl .test_lib_open cmp dword [ebp+ll_struc_size-4],0
jz @f
;--------------------------------------------------------------------- mcall SF_TERMINATE_PROCESS ;exit not correct
stdcall [ted_init], tedit0 @@:
stdcall [tl_data_init], tree1 add ebp,ll_struc_size
option_boxes_set_sys_color sc,opt_grlist1 cmp ebp,load_lib_end
init_checkboxes2 check_boxes,check_boxes_end jl .test_lib_open
check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc
;---------------------------------------------------------------------
; OpenDialog initialisation stdcall [ted_init], tedit0
stdcall [OpenDialog_Init],OpenDialog_data stdcall [tl_data_init], tree1
option_boxes_set_sys_color sc,opt_grlist1
; kmenu initialisation init_checkboxes2 check_boxes,check_boxes_end
call tedit_menu_init check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc
; init toolbar file ; OpenDialog initialisation
include_image_file 'te_icon.png', bmp_icon,,,6 ;6 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> stdcall [OpenDialog_Init],OpenDialog_data
mov eax,[bmp_icon]
add eax,TOOLBAR_ICONS_SIZE ; kmenu initialisation
stdcall img_to_gray, [bmp_icon],eax,(TOOLBAR_ICONS_SIZE)/3 call tedit_menu_init
;---------------------------------------------------------------------
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 䠩<> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> ; init toolbar file
include_image_file '..\..\media\log_el\trunk\tl_sys_16.png', icon_tl_sys include_image_file 'te_icon.png', bmp_icon,,,6 ;6 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov eax,dword[icon_tl_sys] mov eax,[bmp_icon]
mov dword[tree1.data_img_sys],eax add eax,TOOLBAR_ICONS_SIZE
; <20><><EFBFBD><EFBFBD><EFBFBD>塞 䠩<> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3A7AB> stdcall img_to_gray, [bmp_icon],eax,(TOOLBAR_ICONS_SIZE)/3
include_image_file 'tl_nod_16.png', icon_tl_sys ;---------------------------------------------------------------------
mov eax,dword[icon_tl_sys] ; <20><><EFBFBD><EFBFBD><EFBFBD>塞 䠩<> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
mov dword[tree1.data_img],eax include_image_file '..\..\media\log_el\tl_sys_16.png', icon_tl_sys
;------------------------------------------------------------------------------ mov eax,dword[icon_tl_sys]
copy_path fn_syntax_dir,sys_path,file_name,0 ;<3B><><20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD> mov dword[tree1.data_img_sys],eax
xor eax,eax ; <20><><EFBFBD><EFBFBD><EFBFBD>塞 䠩<> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3A7AB>
mov ecx,4096 include_image_file 'tl_nod_16.png', icon_tl_sys
mov edi,file_name mov eax,dword[icon_tl_sys]
repnz scasb mov dword[tree1.data_img],eax
mov byte[edi-2],al ;㡨ࠥ<E3A1A8> '/' <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E2A5AD> <20> CD) ;------------------------------------------------------------------------------
mcall SF_FILE,tree_file_struct copy_path fn_syntax_dir,sys_path,file_name,0 ;<3B><><20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
xor eax,eax
or ebx,ebx mov ecx,4096
jz .end_dir_init mov edi,file_name
mov eax,dir_mem+32+40 repnz scasb
mov ecx,ebx mov byte[edi-2],al ;㡨ࠥ<E3A1A8> '/' <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E2A5AD> <20> CD)
@@: mcall SF_FILE,tree_file_struct
cmp byte[eax],'.' ;䨫<><E4A8AB><EFBFBD>㥬 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '.' <20> '..'
je .filter or ebx,ebx
;0x10000 ;1*2^16 - <20><><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> jz .end_dir_init
stdcall [tl_node_add], tree1,0x10000,eax mov eax,dir_mem+32+40
stdcall [tl_cur_next], tree1 mov ecx,ebx
.filter: @@:
add eax,304 cmp byte[eax],'.' ;䨫<><E4A8AB><EFBFBD>㥬 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '.' <20> '..'
loop @b je .filter
stdcall [tl_cur_beg],tree1 ;<3B><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD> ᯨ᪠ ;0x10000 ;1*2^16 - <20><><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
or dword[tree1.style], tl_cursor_pos_limited ;<3B><><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD> ᯨ᪠ stdcall [tl_node_add], tree1,0x10000,eax
.end_dir_init: stdcall [tl_cur_next], tree1
.filter:
;--- load ini file --- add eax,304
copy_path ini_name,sys_path,file_name,0 loop @b
;window startup pozition stdcall [tl_cur_beg],tree1 ;<3B><EFBFBD><E2A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> ᯨ᪠
stdcall [ini_get_int],file_name,ini_sec_window,key_window_l,ini_def_window_l or dword[tree1.style], tl_cursor_pos_limited ;<3B><><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD> ᯨ᪠
mov word[wnd_s_pos+2],ax .end_dir_init:
stdcall [ini_get_int],file_name,ini_sec_window,key_window_w,ini_def_window_w
mov word[wnd_s_pos],ax ;--- load ini file ---
stdcall [ini_get_int],file_name,ini_sec_window,key_window_t,ini_def_window_t copy_path ini_name,sys_path,file_name,0
mov word[wnd_s_pos+6],ax ;window startup pozition
stdcall [ini_get_int],file_name,ini_sec_window,key_window_h,ini_def_window_h stdcall [ini_get_int],file_name,ini_sec_window,key_window_l,ini_def_window_l
mov word[wnd_s_pos+4],ax mov word[wnd_s_pos+2],ax
;scrool type stdcall [ini_get_int],file_name,ini_sec_window,key_window_w,ini_def_window_w
stdcall [ini_get_int],file_name,ini_sec_window,key_scroll_type,ini_def_scroll_type mov word[wnd_s_pos],ax
mov [wScr.type],eax stdcall [ini_get_int],file_name,ini_sec_window,key_window_t,ini_def_window_t
mov [hScr.type],eax mov word[wnd_s_pos+6],ax
mov [ws_dir_lbox.type],eax stdcall [ini_get_int],file_name,ini_sec_window,key_window_h,ini_def_window_h
mov [w_scr_t3.type],eax mov word[wnd_s_pos+4],ax
;symbol size ;scrool type
stdcall [ini_get_int],file_name,ini_sec_window,key_symbol_w,ini_def_symbol_w stdcall [ini_get_int],file_name,ini_sec_window,key_scroll_type,ini_def_scroll_type
mov dword[tedit0.rec.width],eax mov [wScr.type],eax
stdcall [ini_get_int],file_name,ini_sec_window,key_symbol_h,ini_def_symbol_h mov [hScr.type],eax
mov dword[tedit0.rec.height],eax mov [ws_dir_lbox.type],eax
;lea eax,[eax+eax*2] mov [w_scr_t3.type],eax
;mov dword[tedit0.rec.top],eax ;symbol size
;font size stdcall [ini_get_int],file_name,ini_sec_window,key_symbol_w,ini_def_symbol_w
stdcall [ini_get_int],file_name,ini_sec_window,key_font_s,ini_def_font_s mov dword[tedit0.rec.width],eax
shl eax,24 stdcall [ini_get_int],file_name,ini_sec_window,key_symbol_h,ini_def_symbol_h
mov dword[tedit0.font_size],eax mov dword[tedit0.rec.height],eax
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ;lea eax,[eax+eax*2]
ini_panel key_but_new, ID_BUT_NEW ;mov dword[tedit0.rec.top],eax
ini_panel key_but_open, ID_BUT_OPEN ;font size
ini_panel key_but_save, ID_BUT_SAVE stdcall [ini_get_int],file_name,ini_sec_window,key_font_s,ini_def_font_s
ini_panel key_but_save_as,ID_BUT_SAVE_AS shl eax,24
ini_panel key_but_select, ID_BUT_SELECT mov dword[tedit0.font_size],eax
ini_panel key_but_cut, ID_BUT_CUT ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ini_panel key_but_copy, ID_BUT_COPY ini_panel key_but_new, ID_BUT_NEW
ini_panel key_but_paste, ID_BUT_PASTE ini_panel key_but_open, ID_BUT_OPEN
ini_panel key_but_find, ID_BUT_FIND ini_panel key_but_save, ID_BUT_SAVE
ini_panel key_but_replace,ID_BUT_REPLACE ini_panel key_but_save_as,ID_BUT_SAVE_AS
ini_panel key_but_key_words,ID_BUT_KEY_WORDS ini_panel key_but_select, ID_BUT_SELECT
ini_panel key_but_upper, ID_BUT_UPPER ini_panel key_but_cut, ID_BUT_CUT
ini_panel key_but_lower, ID_BUT_LOWER ini_panel key_but_copy, ID_BUT_COPY
ini_panel key_but_reverse,ID_BUT_REVERSE ini_panel key_but_paste, ID_BUT_PASTE
ini_panel key_but_undo, ID_BUT_UNDO ini_panel key_but_find, ID_BUT_FIND
ini_panel key_but_redo, ID_BUT_REDO ini_panel key_but_replace,ID_BUT_REPLACE
ini_panel key_but_invisible,ID_BUT_INVISIBLE ini_panel key_but_key_words,ID_BUT_KEY_WORDS
ini_panel key_but_syntax_list,ID_BUT_SYNTAX_LIST ini_panel key_but_upper, ID_BUT_UPPER
ini_panel key_but_syntax_mode,ID_BUT_SYNTAX_MODE ini_panel key_but_lower, ID_BUT_LOWER
ini_panel key_but_convert_1251_866,ID_BUT_CONVERT_1251_866 ini_panel key_but_reverse,ID_BUT_REVERSE
ini_panel key_but_convert_866_1251,ID_BUT_CONVERT_866_1251 ini_panel key_but_undo, ID_BUT_UNDO
;䠩<><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5AD> ini_panel key_but_redo, ID_BUT_REDO
xor edx,edx ini_panel key_but_invisible,ID_BUT_INVISIBLE
mov ebx,synt_auto_open ini_panel key_but_syntax_list,ID_BUT_SYNTAX_LIST
@@: ini_panel key_but_syntax_mode,ID_BUT_SYNTAX_MODE
;<3B><><20><><EFBFBD><><E4A0A9> ini_panel key_but_convert_1251_866,ID_BUT_CONVERT_1251_866
stdcall [ini_get_str],file_name,ini_sec_options,key_synt_file,ebx,32,ini_def_synt_f ini_panel key_but_convert_866_1251,ID_BUT_CONVERT_866_1251
cmp byte[ebx],0 ;䠩<><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5AD>
je @f xor edx,edx
inc byte[key_synt_file.numb] mov ebx,synt_auto_open
add ebx,32 @@:
;<3B><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ;<3B><><20><><EFBFBD><EFBFBD><EFBFBD>
stdcall [ini_get_str],file_name,ini_sec_options,key_synt_ext,ebx,32,ini_def_synt_f stdcall [ini_get_str],file_name,ini_sec_options,key_synt_file,ebx,32,ini_def_synt_f
inc byte[key_synt_ext.numb] cmp byte[ebx],0
add ebx,32 je @f
inc edx inc byte[key_synt_file.numb]
cmp edx,max_synt_auto_open add ebx,32
jl @b ;<3B><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5AD>
@@: stdcall [ini_get_str],file_name,ini_sec_options,key_synt_ext,ebx,32,ini_def_synt_f
inc byte[key_synt_ext.numb]
;--- load color option file --- add ebx,32
stdcall open_unpac_synt_file,[fn_col_option] inc edx
cmp edx,max_synt_auto_open
;--- get cmd line --- jl @b
cmp byte[openfile_path+3],0 ;openfile_path @@:
je @f ;if file names exist
mov esi,openfile_path ;--- load color option file ---
stdcall auto_open_syntax,esi stdcall open_unpac_synt_file,[fn_col_option]
call but_no_msg_OpenFile
@@: ;--- get cmd line ---
cmp byte[openfile_path+3],0 ;openfile_path
je @f ;if file names exist
mov esi,openfile_path
align 16 stdcall auto_open_syntax,esi
red_win: call but_no_msg_OpenFile
call draw_window @@:
align 16
still:
mcall SF_WAIT_EVENT align 16
cmp dword[exit_code],1 red_win:
jne @f call draw_window
call ted_Exit
jmp still align 16
@@: still:
mcall SF_WAIT_EVENT
cmp al,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> cmp dword[exit_code],1
jz red_win jne @f
cmp al,2 call ted_Exit
jz key jmp still
cmp al,3 @@:
jz button
cmp al,6 ;<3B><><EFBFBD><EFBFBD> cmp al,1 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jne @f jz red_win
call mouse cmp al,2
@@: jz key
jmp still cmp al,3
jz button
align 16 cmp al,6 ;<3B><><EFBFBD><EFBFBD>
mouse: jne @f
stdcall [kmainmenu_dispatch_cursorevent], [main_menu] call mouse
@@:
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION jmp still
cmp word[tedit0.wnd.top],ax
jg .no_edit align 16
shr eax,16 mouse:
cmp word[tedit0.wnd.left],ax stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
jg .no_edit
mcall SF_MOUSE_GET,SSF_BUTTON_EXT mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
bt eax,24 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E9A5AB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmp word[tedit0.wnd.top],ax
jnc @f jg .no_edit
stdcall [ted_but_select_word], tedit0 shr eax,16
ret cmp word[tedit0.wnd.left],ax
@@: jg .no_edit
stdcall [ted_mouse], tedit0 mcall SF_MOUSE_GET,SSF_BUTTON_EXT
.no_edit: bt eax,24 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E9A5AB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jnc @f
;<3B><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> stdcall [ted_but_select_word], tedit0
cmp byte[tedit0.panel_id],TED_PANEL_FIND ret
jne @f @@:
stdcall [edit_box_mouse], edit_find stdcall [ted_mouse], tedit0
stdcall [option_box_mouse], opt_grlist1 .no_edit:
stdcall [check_box_mouse], ch1
@@: ;<3B><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp byte[tedit0.panel_id],TED_PANEL_REPLACE cmp byte[tedit0.panel_id],TED_PANEL_FIND
jne @f jne @f
stdcall [edit_box_mouse], edit_find stdcall [edit_box_mouse], edit_find
stdcall [edit_box_mouse], edit_replace stdcall [option_box_mouse], opt_grlist1
stdcall [option_box_mouse], opt_grlist1 stdcall [check_box_mouse], ch1
@@: @@:
cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX cmp byte[tedit0.panel_id],TED_PANEL_REPLACE
jne @f jne @f
stdcall [tl_mouse], tree1 stdcall [edit_box_mouse], edit_find
@@: stdcall [edit_box_mouse], edit_replace
cmp byte[tedit0.panel_id],TED_PANEL_GOTO stdcall [option_box_mouse], opt_grlist1
jne @f @@:
stdcall [edit_box_mouse], edit_goto cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX
@@: jne @f
ret stdcall [tl_mouse], tree1
;--------------------------------------------------------------------- @@:
cmp byte[tedit0.panel_id],TED_PANEL_GOTO
;output: jne @f
; ah = symbol stdcall [edit_box_mouse], edit_goto
align 16 @@:
proc KeyConvertToASCII uses ebx, table:dword ret
mov ebx,dword[table] ;convert scan to ascii ;---------------------------------------------------------------------
shr ax,8
add bx,ax ;output:
mov ah,byte[ebx] ; ah = symbol
ret align 16
endp proc KeyConvertToASCII uses ebx, table:dword
mov ebx,dword[table] ;convert scan to ascii
align 16 shr ax,8
key: add bx,ax
mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mov ah,byte[ebx]
xor esi,esi ret
mov ecx,1 endp
test al,3 ;[Shift]
jz @f align 16
mov cl,2 key:
or esi,KM_SHIFT mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@: xor esi,esi
test al,0x0c ;[Ctrl] mov ecx,1
jz @f test al,3 ;[Shift]
or esi,KM_CTRL jz @f
@@: mov cl,2
test al,0x30 ;[Alt] or esi,KM_SHIFT
jz @f @@:
mov cl,3 test al,0x0c ;[Ctrl]
or esi,KM_ALT jz @f
@@: or esi,KM_CTRL
test al,0x80 ;[NumLock] @@:
jz @f test al,0x30 ;[Alt]
or esi,KM_NUMLOCK jz @f
@@: mov cl,3
or esi,KM_ALT
mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @@:
mcall SF_GET_KEY test al,0x80 ;[NumLock]
stdcall [tl_key], tree1 jz @f
or esi,KM_NUMLOCK
test word[edit_replace.flags],ed_focus ;<3B><20><> <20><><E4AEAA><EFBFBD>, <20><><EFBFBD><E5AEA4> @@:
je @f
cmp ah,0x80 ;if key up mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ja still mcall SF_GET_KEY
cmp ah,42 ;[Shift] (left) stdcall [tl_key], tree1
je still
cmp ah,54 ;[Shift] (right) test word[edit_replace.flags],ed_focus ;<3B><20><> <20><><E4AEAA><EFBFBD>, <20><><EFBFBD><E5AEA4>
je still je @f
cmp ah,56 ;[Alt] cmp ah,0x80 ;if key up
je still ja still
cmp ah,29 ;[Ctrl] cmp ah,42 ;[Shift] (left)
je still je still
cmp ah,69 ;[Pause Break] cmp ah,54 ;[Shift] (right)
je still je still
cmp ah,56 ;[Alt]
stdcall KeyConvertToASCII, conv_tabl je still
stdcall [edit_box_key], edit_replace cmp ah,29 ;[Ctrl]
jmp still je still
@@: cmp ah,69 ;[Pause Break]
test word[edit_find.flags],ed_focus ;<3B><20><> <20><><E4AEAA><EFBFBD>, <20><><EFBFBD><E5AEA4> je still
je @f
cmp ah,0x80 ;if key up stdcall KeyConvertToASCII, conv_tabl
ja still stdcall [edit_box_key], edit_replace
cmp ah,42 ;[Shift] (left) jmp still
je still @@:
cmp ah,54 ;[Shift] (right) test word[edit_find.flags],ed_focus ;<3B><20><> <20><><E4AEAA><EFBFBD>, <20><><EFBFBD><E5AEA4>
je still je @f
cmp ah,56 ;[Alt] cmp ah,0x80 ;if key up
je still ja still
cmp ah,29 ;[Ctrl] cmp ah,42 ;[Shift] (left)
je still je still
cmp ah,69 ;[Pause Break] cmp ah,54 ;[Shift] (right)
je still je still
cmp ah,56 ;[Alt]
stdcall KeyConvertToASCII, conv_tabl je still
stdcall [edit_box_key], edit_find cmp ah,29 ;[Ctrl]
jmp still je still
@@: cmp ah,69 ;[Pause Break]
test word[edit_goto.flags],ed_focus ;<3B><20><> <20><><E4AEAA><EFBFBD>, <20><><EFBFBD><E5AEA4> je still
je @f
cmp ah,0x80 ;if key up stdcall KeyConvertToASCII, conv_tabl
ja still stdcall [edit_box_key], edit_find
cmp ah,42 ;[Shift] (left) jmp still
je still @@:
cmp ah,54 ;[Shift] (right) test word[edit_goto.flags],ed_focus ;<3B><20><> <20><><E4AEAA><EFBFBD>, <20><><EFBFBD><E5AEA4>
je still je @f
cmp ah,56 ;[Alt] cmp ah,0x80 ;if key up
je still ja still
cmp ah,29 ;[Ctrl] cmp ah,42 ;[Shift] (left)
je still je still
cmp ah,69 ;[Pause Break] cmp ah,54 ;[Shift] (right)
je still je still
cmp ah,56 ;[Alt]
stdcall KeyConvertToASCII, conv_tabl je still
stdcall [edit_box_key], edit_goto cmp ah,29 ;[Ctrl]
jmp still je still
@@: cmp ah,69 ;[Pause Break]
je still
stdcall [ted_key], tedit0, conv_tabl,esi
jmp still stdcall KeyConvertToASCII, conv_tabl
stdcall [edit_box_key], edit_goto
align 4 jmp still
edit_replace edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_replace, mouse_dd, 0 @@:
edit_find edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
edit_goto edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 10, buf_goto, mouse_dd, 0 stdcall [ted_key], tedit0, conv_tabl,esi
jmp still
unpac_mem dd 0
align 4
;library structures edit_replace edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_replace, mouse_dd, 0
l_libs_start: edit_find edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
lib0 l_libs lib_name_0, file_name, system_dir_0, import_box_lib edit_goto edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 10, buf_goto, mouse_dd, 0
lib1 l_libs lib_name_1, file_name, system_dir_1, import_msgbox_lib
lib2 l_libs lib_name_2, file_name, system_dir_2, import_proclib unpac_mem dd 0
lib3 l_libs lib_name_3, file_name, system_dir_3, import_libimg
lib4 l_libs lib_name_4, file_name, system_dir_4, import_libini ;library structures
lib5 l_libs lib_name_5, file_name, system_dir_5, import_libkmenu l_libs_start:
load_lib_end: lib0 l_libs lib_name_0, file_name, system_dir_0, import_box_lib
lib1 l_libs lib_name_1, file_name, system_dir_1, import_msgbox_lib
IncludeIGlobals lib2 l_libs lib_name_2, file_name, system_dir_2, import_proclib
hed db 'TextEdit ' lib3 l_libs lib_name_3, file_name, system_dir_3, import_libimg
i_end: lib4 l_libs lib_name_4, file_name, system_dir_4, import_libini
openfile_path: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><><E0A0A1><EFBFBD> lib5 l_libs lib_name_5, file_name, system_dir_5, import_libkmenu
rb 4096 load_lib_end:
dir_mem rb 32+304*count_of_dir_list_files
wnd_s_pos: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> IncludeIGlobals
rq 1 hed db 'TextEdit '
last_open_synt_file rb 32 ;<3B><><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A5AD><EFBFBD><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD> i_end:
buf rb BUF_SIZE ;<3B><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> openfile_path: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> <20><><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><><EFBFBD><EFBFBD>
buf_find rb 302 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>᪠ ⥪<><E2A5AA><EFBFBD> rb 4096
buf_replace rb 302 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA><EFBFBD> dir_mem rb 32+304*count_of_dir_list_files
buf_goto rb 12 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> wnd_s_pos: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
sc system_colors rq 1
IncludeUGlobals last_open_synt_file rb 32 ;<3B><><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A5AD><EFBFBD><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
align 16 buf rb BUF_SIZE ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E2A0A2>
procinfo process_information buf_find rb 302 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>᪠ ⥪<><E2A5AA><EFBFBD>
rb 1024 buf_replace rb 302 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA><EFBFBD>
thread: buf_goto rb 12 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
rb 4096 sc system_colors
align 16 IncludeUGlobals
thread_coords: align 16
rb 4096 procinfo process_information
align 16 rb 1024
stacktop: thread:
sys_path: ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A8AB> <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><> rb 4096
rb 4096 align 16
file_name: ;<3B><><EFBFBD><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> thread_coords:
rb 4096 rb 4096
syntax_path: ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A0A5><EFBFBD><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD> align 16
rb 4096 stacktop:
plugin_path: sys_path: ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A8AB> <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><>
rb 4096 rb 4096
text_work_area: ;<3B><><EFBFBD><EFBFBD> <20><><E4A0A9>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> file_name: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
rb 4096 rb 4096
filename_area: ;<3B><><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> syntax_path: ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ᨭ⠪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rb 256 rb 4096
file_info: plugin_path:
rb 40 rb 4096
mem: text_work_area: ;<3B><><EFBFBD><EFBFBD> <20><><E4A0A9>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
rb 4096
filename_area: ;<3B><><EFBFBD><><E4A0A9> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rb 256
file_info:
rb 40
mem:

View File

@@ -1,389 +1,395 @@
use32 ; SPDX-License-Identifier: NOASSERTION
org 0 ;
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
dd 1, start, i_end, mem, stacktop, file_name, sys_path ; Text encoded with Code Page 866 - Cyrillic
MAX_COLOR_WORD_LEN equ 40
BUF_SIZE equ 4096 ;buffer for copy|paste use32
CAPT_PATH_WIDTH equ 50 ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>। ⥪<><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD> org 0
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20><EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
include '../../macros.inc' dd 1, start, i_end, mem, stacktop, file_name, sys_path
include '../../proc32.inc'
include '../../KOSfuncs.inc' MAX_COLOR_WORD_LEN equ 40
include '../../load_img.inc' BUF_SIZE equ 4096 ;buffer for copy|paste
include '../../load_lib.mac' CAPT_PATH_WIDTH equ 50 ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>। ⥪<><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD>
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../system/skincfg/trunk/kglobals.inc' include '../../macros.inc'
include '../../system/skincfg/trunk/unpacker.inc' include '../../proc32.inc'
include 'te_data.inc' include '../../KOSfuncs.inc'
include 'te_work.inc' ;text work functions include '../../load_img.inc'
include '../../load_lib.mac'
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load include '../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../system/skincfg/trunk/kglobals.inc'
icon_tl_sys dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> include '../../system/skincfg/trunk/unpacker.inc'
include 'te_data.inc'
align 4 include 'te_work.inc' ;text work functions
start:
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors @use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
mcall SF_SYS_MISC,SSF_HEAP_INIT icon_tl_sys dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
or eax,eax
jz button.exit align 4
start:
mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 ;scan code mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
mcall SF_SET_EVENTS_MASK,0xC0000027
mcall SF_SYS_MISC,SSF_HEAP_INIT
load_libraries l_libs_start,load_lib_end or eax,eax
jz button.exit
;<3B><EFBFBD><20><><>쪮 㤠筮 <20><><EFBFBD><EFBFBD><E3A7A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp dword[lib0+ll_struc_size-4],0 mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 ;scan code
jz @f mcall SF_SET_EVENTS_MASK,0xC0000027
mcall -1 ;exit not correct
@@: load_libraries l_libs_start,load_lib_end
;--------------------------------------------------------------------- ;<EFBFBD><EFBFBD><20><><>쪮 㤠筮 <20><><EFBFBD><EFBFBD><E3A7A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall [tl_data_init], tree1 cmp dword[lib0+ll_struc_size-4],0
jz @f
; <20><><EFBFBD><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> mcall -1 ;exit not correct
include_image_file '..\..\media\log_el\trunk\tl_sys_16.png', icon_tl_sys @@:
mov eax,[icon_tl_sys]
mov [tree1.data_img_sys],eax ;---------------------------------------------------------------------
;--------------------------------------------------------------------- stdcall [tl_data_init], tree1
; <20><><EFBFBD> bmp 䠩<> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3A7AB>
include_image_file '..\t_edit\tl_nod_16.png', icon_tl_sys ; <20><><EFBFBD><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
mov eax,[icon_tl_sys] include_image_file '..\..\media\log_el\tl_sys_16.png', icon_tl_sys
mov [tree1.data_img],eax mov eax,[icon_tl_sys]
;------------------------------------------------------------------------------ mov [tree1.data_img_sys],eax
copy_path fn_syntax_dir,sys_path,file_name,0 ;<3B><><20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD> ;---------------------------------------------------------------------
mcall SF_FILE,tree_file_struct ; <20><><EFBFBD> bmp 䠩<> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3A7AB>
include_image_file '..\t_edit\tl_nod_16.png', icon_tl_sys
cmp ebx,2 mov eax,[icon_tl_sys]
jg @f mov [tree1.data_img],eax
notify_window_run file_name ;ᮮ<><EFBFBD><E9A5AD> <20><20><><><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> ;------------------------------------------------------------------------------
jmp .end_dir_init copy_path fn_syntax_dir,sys_path,file_name,0 ;<3B><><20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
@@: mcall SF_FILE,tree_file_struct
;cmp ebx,0
;jle .end_dir_init cmp ebx,2
mov eax,dir_mem+32+40 jg @f
mov ecx,ebx notify_window_run file_name ;ᮮ<><EFBFBD><E9A5AD> <20><20><><><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9>
@@: jmp .end_dir_init
cmp byte[eax],'.' ;䨫<><E4A8AB><EFBFBD>㥬 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '.' <20> '..' @@:
je .filter ;cmp ebx,0
stdcall [tl_node_add],tree1,0x10000,eax ;1*2^16 - <20><><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ;jle .end_dir_init
stdcall [tl_cur_next],tree1 mov eax,dir_mem+32+40
.filter: mov ecx,ebx
add eax,304 @@:
loop @b cmp byte[eax],'.' ;䨫<><E4A8AB><EFBFBD>㥬 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '.' <20> '..'
stdcall [tl_cur_beg],tree1 ;<3B><EFBFBD><E2A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> ᯨ᪠ je .filter
or dword[tree1.style], tl_cursor_pos_limited ;<3B><><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᯨ᪠ stdcall [tl_node_add],tree1,0x10000,eax ;1*2^16 - <20><><EFBFBD> 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.end_dir_init: stdcall [tl_cur_next],tree1
.filter:
xor eax,eax add eax,304
inc eax loop @b
mov [scrol_w1.type],eax stdcall [tl_cur_beg],tree1 ;<3B><EFBFBD><E2A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> ᯨ᪠
mov [scrol_h1.type],eax or dword[tree1.style], tl_cursor_pos_limited ;<3B><><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD> ᯨ᪠
mov [ws_dir_lbox.type],eax .end_dir_init:
;--- load color option file --- xor eax,eax
stdcall [ted_init], tedit0 inc eax
mov byte[file_name],0 mov [scrol_w1.type],eax
mov [scrol_h1.type],eax
align 4 mov [ws_dir_lbox.type],eax
red_win:
call draw_window ;--- load color option file ---
stdcall [ted_init], tedit0
align 4 mov byte[file_name],0
still:
mcall SF_WAIT_EVENT align 4
red_win:
cmp al,1 ;<3B><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> call draw_window
jz red_win
cmp al,2 align 4
jz key still:
cmp al,3 mcall SF_WAIT_EVENT
jz button
cmp al,6 cmp al,1 ;<3B><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
jz mouse jz red_win
cmp al,2
jmp still jz key
cmp al,3
jz button
align 4 cmp al,6
draw_window: jz mouse
pushad
mcall SF_REDRAW,SSF_BEGIN_DRAW jmp still
mov edx,[sc.work]
or edx,0x33000000 align 4
mov edi,hed draw_window:
mcall SF_CREATE_WINDOW,<10,555>,<10,333> pushad
mcall SF_REDRAW,SSF_BEGIN_DRAW
mcall SF_THREAD_INFO,procinfo,-1
mov edi,tedit0 ;<3B><><EFBFBD><EFBFBD><E7A5AD> edi <20><EFBFBD> <20><><EFBFBD> EvSize <20> ted_wnd_t mov edx,[sc.work]
call EvSize or edx,0x33000000
mov edi,hed
mov esi,[sc.work_button];0xd0 mcall SF_CREATE_WINDOW,<10,555>,<10,333>
mcall SF_DEFINE_BUTTON,5*65536+90,195*65536+20,200
mcall SF_THREAD_INFO,procinfo,-1
mov ebx,100*65536+85 mov edi,tedit0 ;<3B><><EFBFBD><EFBFBD><E7A5AD> edi <20><EFBFBD> <20><><EFBFBD> EvSize <20> ted_wnd_t
mov ecx,195*65536+20 call EvSize
mov edx,201
mov esi,0xd00000 mov esi,[sc.work_button];0xd0
mcall mcall SF_DEFINE_BUTTON,5*65536+90,195*65536+20,200
mov ecx,[sc.work_button_text] mov ebx,100*65536+85
or ecx,0x80000000 mov ecx,195*65536+20
mcall SF_DRAW_TEXT,10*65536+200,,txt_load_f mov edx,201
mov esi,0xd00000
mov ecx,0xffff00 mcall
or ecx,0x80000000
mcall ,105*65536+200,,txt_save_f mov ecx,[sc.work_button_text]
or ecx,0x80000000
mov ecx,[sc.work_text] mcall SF_DRAW_TEXT,10*65536+200,,txt_load_f
or ecx,0x80000000
mcall ,195*65536+10,,txt_inp_file mov ecx,0xffff00
or ecx,0x80000000
add ebx,20 mcall ,105*65536+200,,txt_save_f
mov edx,txt_out_file
int 0x40 mov ecx,[sc.work_text]
or ecx,0x80000000
stdcall [PathShow_draw], PathShow_data_1 mcall ,195*65536+10,,txt_inp_file
stdcall [edit_box_draw], edit1 add ebx,20
stdcall [tl_draw], tree1 mov edx,txt_out_file
int 0x40
;scroll 1
mov [ws_dir_lbox.all_redraw],1 stdcall [PathShow_draw], PathShow_data_1
stdcall [scrollbar_ver_draw],ws_dir_lbox
stdcall [ted_draw], tedit0 stdcall [edit_box_draw], edit1
stdcall [tl_draw], tree1
mcall SF_REDRAW,SSF_END_DRAW
popad ;scroll 1
ret mov [ws_dir_lbox.all_redraw],1
stdcall [scrollbar_ver_draw],ws_dir_lbox
MIN_M_WND_H equ 100 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> stdcall [ted_draw], tedit0
;input:
; edi = pointer to tedit struct mcall SF_REDRAW,SSF_END_DRAW
align 4 popad
EvSize: ret
pushad
mov ebx,ted_scr_h MIN_M_WND_H equ 100 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov esi,ted_scr_w ;input:
; edi = pointer to tedit struct
m2m ted_wnd_w,[procinfo.client_box.width] ;<3B><EFBFBD><E2A0A2> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A2><EFBFBD> <20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD> align 4
mov eax,ted_wnd_l EvSize:
sub ted_wnd_w,eax ;<3B><EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABA5> pushad
movzx eax,word[esi+sb_offs_size_x] mov ebx,ted_scr_h
sub ted_wnd_w,eax ;<3B><EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD><EFBFBD> mov esi,ted_scr_w
m2m ted_wnd_h,[procinfo.client_box.height] ;<3B><EFBFBD><E2A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD> m2m ted_wnd_w,[procinfo.client_box.width] ;<3B><EFBFBD><E2A0A2> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A2><EFBFBD> <20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD>
cmp ted_wnd_h,MIN_M_WND_H mov eax,ted_wnd_l
jg @f sub ted_wnd_w,eax ;<3B><EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABA5>
mov ted_wnd_h,MIN_M_WND_H movzx eax,word[esi+sb_offs_size_x]
@@: sub ted_wnd_w,eax ;<3B><EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD><EFBFBD>
movzx eax,word[ebx+sb_offs_size_y] m2m ted_wnd_h,[procinfo.client_box.height] ;<3B><EFBFBD><E2A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD>
sub ted_wnd_h,eax ;<3B><EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ਧ. <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD><EFBFBD> cmp ted_wnd_h,MIN_M_WND_H
mov eax,ted_wnd_t jg @f
sub ted_wnd_h,eax ;<3B><EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A2A5><EFBFBD> mov ted_wnd_h,MIN_M_WND_H
@@:
stdcall [ted_init_scroll_bars], tedit0,2
popad movzx eax,word[ebx+sb_offs_size_y]
ret sub ted_wnd_h,eax ;<3B><EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ਧ. <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD><EFBFBD>
mov eax,ted_wnd_t
align 4 sub ted_wnd_h,eax ;<3B><EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A2A5><EFBFBD>
mouse:
stdcall [tl_mouse],tree1 stdcall [ted_init_scroll_bars], tedit0,2
stdcall [edit_box_mouse],edit1 popad
stdcall [ted_mouse], tedit0 ret
jmp still
align 4
;output: mouse:
; ah = symbol stdcall [tl_mouse],tree1
align 4 stdcall [edit_box_mouse],edit1
proc KeyConvertToASCII, table:dword stdcall [ted_mouse], tedit0
push ebx jmp still
mov ebx,dword[table] ;convert scan to ascii
shr ax,8 ;output:
add bx,ax ; ah = symbol
mov ah,byte[ebx] align 4
pop ebx proc KeyConvertToASCII, table:dword
ret push ebx
endp mov ebx,dword[table] ;convert scan to ascii
shr ax,8
align 4 add bx,ax
key: mov ah,byte[ebx]
mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> pop ebx
xor esi,esi ret
mov ecx,1 endp
test al,3 ;[Shift]
jz @f align 4
mov cl,2 key:
or esi,KM_SHIFT mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@: xor esi,esi
test al,0x0c ;[Ctrl] mov ecx,1
jz @f test al,3 ;[Shift]
or esi,KM_CTRL jz @f
@@: mov cl,2
test al,0x30 ;[Alt] or esi,KM_SHIFT
jz @f @@:
mov cl,3 test al,0x0c ;[Ctrl]
or esi,KM_ALT jz @f
@@: or esi,KM_CTRL
test al,0x80 ;[NumLock] @@:
jz @f test al,0x30 ;[Alt]
or esi,KM_NUMLOCK jz @f
@@: mov cl,3
or esi,KM_ALT
mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @@:
mcall SF_GET_KEY test al,0x80 ;[NumLock]
stdcall [tl_key],tree1 jz @f
or esi,KM_NUMLOCK
test word [edit1.flags],10b;ed_focus ; <20><20><> <20><><E4AEAA><EFBFBD>, <20><><EFBFBD><E5AEA4> @@:
je @f
cmp ah,0x80 ;if key up mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ja still mcall SF_GET_KEY
cmp ah,42 ;[Shift] (left) stdcall [tl_key],tree1
je still
cmp ah,54 ;[Shift] (right) test word [edit1.flags],10b;ed_focus ; <20><20><> <20><><E4AEAA><EFBFBD>, <20><><EFBFBD><E5AEA4>
je still je @f
cmp ah,56 ;[Alt] cmp ah,0x80 ;if key up
je still ja still
cmp ah,29 ;[Ctrl] cmp ah,42 ;[Shift] (left)
je still je still
cmp ah,69 ;[Pause Break] cmp ah,54 ;[Shift] (right)
je still je still
cmp ah,56 ;[Alt]
stdcall KeyConvertToASCII, conv_tabl je still
stdcall [edit_box_key],edit1 cmp ah,29 ;[Ctrl]
jmp still je still
@@: cmp ah,69 ;[Pause Break]
je still
stdcall [ted_key], tedit0, conv_tabl,esi
jmp still stdcall KeyConvertToASCII, conv_tabl
stdcall [edit_box_key],edit1
align 4 jmp still
button: @@:
mcall SF_GET_BUTTON
stdcall [ted_key], tedit0, conv_tabl,esi
cmp ah,200 jmp still
jne @f
call but_OpenSyntax align 4
@@: button:
cmp ah,201 mcall SF_GET_BUTTON
jne @f
call but_SaveSyntax cmp ah,200
@@: jne @f
call but_OpenSyntax
cmp ah,1 @@:
jne still cmp ah,201
.exit: jne @f
stdcall mem.Free,[options_file] call but_SaveSyntax
stdcall mem.Free,[unpac_mem] @@:
stdcall [tl_data_clear], tree1 cmp ah,1
stdcall [ted_delete], tedit0 jne still
mcall SF_TERMINATE_PROCESS ;<3B><><20><> <20>ணࠬ<E0AEA3><E0A0AC> .exit:
stdcall mem.Free,[options_file]
align 4 stdcall mem.Free,[unpac_mem]
but_OpenSyntax:
push eax stdcall [tl_data_clear], tree1
stdcall [tl_node_get_data],tree1 stdcall [ted_delete], tedit0
mov [fn_col_option],eax mcall SF_TERMINATE_PROCESS ;<3B><><20><> <20>ணࠬ<E0AEA3><E0A0AC>
call InitColText
pop eax align 4
ret but_OpenSyntax:
push eax
align 4 stdcall [tl_node_get_data],tree1
but_SaveSyntax: mov [fn_col_option],eax
stdcall [ted_save_file], tedit0,run_file_70,[edit1.text] call InitColText
ret pop eax
ret
;description:
; <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⨨ Ctrl+N,O,F,S,H,G align 4
align 4 but_SaveSyntax:
proc ted_but_ctrl_all uses eax, opt_key:dword stdcall [ted_save_file], tedit0,run_file_70,[edit1.text]
mov eax,[opt_key] ret
cmp al,'N' ;Ctrl+N
jne @f ;description:
call but_ctrl_n ; <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⨨ Ctrl+N,O,F,S,H,G
jmp .end0 align 4
@@: proc ted_but_ctrl_all uses eax, opt_key:dword
cmp al,'O' ;Ctrl+O mov eax,[opt_key]
jne @f cmp al,'N' ;Ctrl+N
call but_ctrl_o jne @f
@@: call but_ctrl_n
;cmp al,'S' ;Ctrl+S jmp .end0
;cmp al,'F' ;Ctrl+F @@:
;cmp al,'G' ;Ctrl+G cmp al,'O' ;Ctrl+O
;cmp al,'H' ;Ctrl+H jne @f
.end0: call but_ctrl_o
ret @@:
endp ;cmp al,'S' ;Ctrl+S
;cmp al,'F' ;Ctrl+F
align 4 ;cmp al,'G' ;Ctrl+G
but_ctrl_o: ;cmp al,'H' ;Ctrl+H
push eax .end0:
call get_wnd_in_focus ret
or eax,eax endp
jz @f
stdcall [ted_open_file], eax,str_file_70,[edit1.text] align 4
@@: but_ctrl_o:
pop eax push eax
ret call get_wnd_in_focus
or eax,eax
;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> jz @f
align 4 stdcall [ted_open_file], eax,str_file_70,[edit1.text]
but_ctrl_n: @@:
push eax pop eax
call get_wnd_in_focus ret
or eax,eax
jz @f ;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9>
stdcall [ted_clear], eax,1 align 4
stdcall [ted_draw], eax but_ctrl_n:
@@: push eax
pop eax call get_wnd_in_focus
ret or eax,eax
jz @f
;<3B><><EFBFBD><E0A5A4><20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E4AEAA><EFBFBD> stdcall [ted_clear], eax,1
align 4 stdcall [ted_draw], eax
get_wnd_in_focus: @@:
xor eax,eax pop eax
cmp dword[el_focus],tedit0 ret
jne @f
mov eax,tedit0 ;<3B><><EFBFBD><E0A5A4><20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E4AEAA><EFBFBD>
@@: align 4
;cmp dword[el_focus],tedit1 get_wnd_in_focus:
;jne @f xor eax,eax
; mov eax,tedit1 cmp dword[el_focus],tedit0
;@@: jne @f
ret mov eax,tedit0
@@:
hed db 'TextEditor syntax file converter 18.12.20',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ;cmp dword[el_focus],tedit1
conv_tabl rb 128 ; ⠡<><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> scan-<2D><><EFBFBD><EFBFBD> <20> ascii-<2D><><EFBFBD> ;jne @f
; mov eax,tedit1
txt_load_f db '<27><><EFBFBD><EFBFBD>. 䠩<>',0 ;@@:
txt_save_f db '<27><><EFBFBD><EFBFBD>. 䠩<>',0 ret
txt_inp_file db '<27><><EFBFBD>. 䠩<>:',0
txt_out_file db '<27><><EFBFBD>. 䠩<>:',0 hed db 'TextEditor syntax file converter 18.12.20',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
conv_tabl rb 128 ; ⠡<><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> scan-<2D><><EFBFBD><EFBFBD> <20> ascii-<2D><><EFBFBD>
;library structures
l_libs_start: txt_load_f db '<27><><EFBFBD><EFBFBD>. 䠩<>',0
lib0 l_libs lib_name_0, file_name, system_dir_0, import_box_lib txt_save_f db '<27><><EFBFBD><EFBFBD>. 䠩<>',0
lib1 l_libs lib_name_1, file_name, system_dir_1, import_libimg txt_inp_file db '<27><><EFBFBD>. 䠩<>:',0
load_lib_end: txt_out_file db '<27><><EFBFBD>. 䠩<>:',0
IncludeIGlobals ;library structures
l_libs_start:
align 16 lib0 l_libs lib_name_0, file_name, system_dir_0, import_box_lib
i_end: lib1 l_libs lib_name_1, file_name, system_dir_1, import_libimg
IncludeUGlobals load_lib_end:
procinfo process_information
rb 1024 IncludeIGlobals
thread:
rb 1024 align 16
stacktop: i_end:
sys_path rb 4096 IncludeUGlobals
file_name rb 4096 procinfo process_information
file_name_rez rb 4096 rb 1024
mem: thread:
rb 1024
stacktop:
sys_path rb 4096
file_name rb 4096
file_name_rez rb 4096
mem: