2018-09-18 04:52:36 +02:00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Compile with FASM
2018-10-16 05:28:51 +02:00
; Version 0.3.8: Oct 14, 2018
2018-09-18 04:52:36 +02:00
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
; All rights reserved.
; Redistribution and use in source and binary forms, with or without modification,
; are permitted provided that the following conditions are met:
; * Redistributions of source code must retain the above copyright notice, this
; list of conditions and the following disclaimer.
; * Redistributions in binary form must reproduce the above copyright notice,
; this list of conditions and the following disclaimer in the documentation and/or
; other materials provided with the distribution.
; * Neither the name of the <organization> nor the names of its contributors may
; be used to endorse or promote products derived from this software without
; specific prior written permission.
; THE SOFTWARE IS PROVIDED <20> AS IS<49> , WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
; INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
; PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
; HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
; OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
; --------------------------------------------------------------------------------------
2018-09-23 08:23:29 +02:00
;P.S. <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> . <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
2018-09-18 04:52:36 +02:00
format binary as "" ; Binary file format without extension
use32 ; Tell compiler to use 32 bit instructions
org 0 ; the base address of code, always 0x0
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <>
db 'MENUET01'
dd 1
dd START
dd I_END
dd MEM
dd STACKTOP
dd 0 , 0
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2018-09-19 01:38:30 +02:00
include 'lang.inc' ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-18 19:00:37 +02:00
include '../../macros.inc'
2018-09-22 01:46:18 +02:00
include '../../proc32.inc'
include '../../dll.inc'
2018-09-23 08:23:29 +02:00
include '../../develop/libraries/box_lib/trunk/box_lib.mac' ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> checkBox <20> editBox
2018-10-09 17:03:03 +02:00
include '../../develop/libraries/box_lib/load_lib.mac' ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-05 20:58:13 +02:00
@ use_library
2018-10-09 17:03:03 +02:00
KMENUITEM_NORMAL equ 0
KMENUITEM_SUBMENU equ 1
KMENUITEM_SEPARATOR equ 2
2018-09-18 04:52:36 +02:00
Otstup = 30
START:
call copyKill ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mcall 68 , 11 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2018-10-05 20:58:13 +02:00
;mcall 48,3,sc,sizeof.system_colors ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-18 04:52:36 +02:00
mov eax , 48 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov ebx , 3
mov ecx , sc
mov edx , si zeof.system_colors
mcall
2018-09-22 01:46:18 +02:00
stdcall dl l.Load , @ IMPORT
or eax , eax
jnz exit
2018-09-18 04:52:36 +02:00
mov eax , 40 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov ebx , 0x27 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> -<2D> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
mcall
2018-10-05 20:58:13 +02:00
load_libraries l_libs_start , load_lib_end ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> )
stdcall [ OpenDialog_Init ], OpenDialog_data ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-09 17:03:03 +02:00
;mode menu
stdcall [ kmenu_init ], sc ;kmenu initialisation
stdcall [ ksubmenu_new ]
mov [ modeMenu ], eax
stdcall [ kmenuitem_new ], KMENUITEM_NORMAL , valueModeMenu0 , 110
stdcall [ ksubmenu_add ], [ modeMenu ], eax
stdcall [ kmenuitem_new ], KMENUITEM_NORMAL , valueModeMenu1 , 111
stdcall [ ksubmenu_add ], [ modeMenu ], eax
stdcall [ kmenuitem_new ], KMENUITEM_NORMAL , valueModeMenu2 , 112
stdcall [ ksubmenu_add ], [ modeMenu ], eax
stdcall [ kmenuitem_new ], KMENUITEM_NORMAL , valueModeMenu3 , 113
stdcall [ ksubmenu_add ], [ modeMenu ], eax
stdcall [ kmenuitem_new ], KMENUITEM_SUBMENU , valueModeMenu1 , [ modeMenu ]
2018-09-18 04:52:36 +02:00
call loadConfig ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> - <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
call defaultElems ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
call resizeElems
2018-09-18 04:52:36 +02:00
call draw_window ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
event_wait:
mov eax , 10 ; function 10 : wait until event
mcall ; event type is returned in eax
cmp eax , 1 ; Event redraw request ?
je red ; Expl.: there has been activity on screen and
; parts of the applications has to be redrawn.
cmp eax , 2 ; Event key in buffer ?
je key ; Expl.: User has pressed a key while the
; app is at the top of the window stack.
cmp eax , 3 ; Event button in buffer ?
je button ; Expl.: User has pressed one of the
; applications buttons.
2018-09-23 08:23:29 +02:00
invoke edi t_box_mouse , edi tLU ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> editBox'<27> <>
2018-09-22 01:46:18 +02:00
invoke edi t_box_mouse , edi tLD
invoke edi t_box_mouse , edi tRU
invoke edi t_box_mouse , edi tRD
2018-10-14 04:39:53 +02:00
invoke edi t_box_mouse , edi tRadius
2018-09-22 01:46:18 +02:00
2018-09-18 04:52:36 +02:00
jmp event_wait
red: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
call draw_window
jmp event_wait
key: ; Keypress event handler
mov eax , 2 ; The key is returned in ah. The key must be
mcall ; read and cleared from the system queue.
2018-09-23 08:23:29 +02:00
2018-09-22 01:46:18 +02:00
invoke edi t_box_key , edi tLU
invoke edi t_box_key , edi tLD
invoke edi t_box_key , edi tRU
invoke edi t_box_key , edi tRD
2018-10-14 04:39:53 +02:00
invoke edi t_box_key , edi tRadius
cmp eax , 1
2018-10-14 05:49:17 +02:00
je event_wait
2018-10-14 04:39:53 +02:00
cmp word [ hkSymbol ], 0
2018-10-14 05:49:17 +02:00
jne event_wait
2018-10-14 04:39:53 +02:00
cmp al , 0
jne .next
mov byte [ hkSymbol ], ah
push eax ecx esi ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
shr eax , 16
mov byte [ keyscan ], al
mov ecx , 0
mov cl , al ;byte[keyscan]
mov esi , keystr.data
call IntToStr
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
xor ecx , ecx
mov esi , keystr.data
@ @ :
cmp byte [ esi ], 0
je @ f
inc esi
inc ecx
;cmp ecx, 4
;je @f
jmp @ b
@ @ :
;<3B> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
mov dword [ keystr.size ], ecx
pop esi ecx eax
jmp red
.next:
;cmp al, 2
;jne @f
;cmp ah, 0
;jne @f
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;shr eax, 16
;bt eax, 0 ;left shift
;jne @f
;mov byte[hkSymbol], 2
;jmp red
@ @ :
2018-09-18 04:52:36 +02:00
jmp event_wait ; Just read the key, ignore it and jump to event_wait.
button: ; Buttonpress event handler
mov eax , 17 ; The button number defined in window_draw
mcall ; is returned to ah.
cmp ah , 1 ; button id=1 ?
jne noclose
2018-09-22 01:46:18 +02:00
exit:
2018-09-18 04:52:36 +02:00
mov eax , - 1 ; Function -1 : close this program
mcall
noclose:
cmp ah , 2 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "
2018-10-05 20:58:13 +02:00
jne @ f ;butend
2018-09-18 04:52:36 +02:00
call applyButton ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-05 20:58:13 +02:00
jmp event_wait
@ @ :
cmp ah , 4
jne @ f
mov byte [ edi tID ], 4
call but_open_dlg
jmp event_wait
@ @ :
cmp ah , 5
jne @ f
mov byte [ edi tID ], 5
call but_open_dlg
jmp event_wait
@ @ :
cmp ah , 6
jne @ f
mov byte [ edi tID ], 6
call but_open_dlg
jmp event_wait
@ @ :
cmp ah , 7
jne @ f
mov byte [ edi tID ], 7
call but_open_dlg
jmp event_wait
2018-10-09 17:03:03 +02:00
@ @ :
cmp ah , 8
jne @ f
push eax ebx ecx
mcall 9 , pi , - 1 ;get window coord
2018-10-14 04:39:53 +02:00
mov eax , dword [ pi + 34 ]
2018-10-16 05:28:51 +02:00
add eax , Otstup ;buttonModeX ;+ 5
2018-10-14 04:39:53 +02:00
mov word [ coordModeMenu.x ], ax
2018-10-09 17:03:03 +02:00
2018-10-14 04:39:53 +02:00
mov eax , dword [ pi + 38 ]
2018-10-16 05:28:51 +02:00
add ax , word [ elem.butModeY ]
add ax , word [ elem.butDialHeight ]
dec ax ;add eax, buttonModeY + 13 ;17
2018-10-14 04:39:53 +02:00
mov word [ coordModeMenu.y ], ax
2018-10-09 17:03:03 +02:00
2018-10-14 04:39:53 +02:00
stdcall [ ksubmenu_draw ], [ modeMenu ], coordModeMenu
2018-10-09 17:03:03 +02:00
pop ecx ebx eax
jmp event_wait
2018-10-14 04:39:53 +02:00
@ @ :
cmp ah , 9
jne @ f
mov word [ hkSymbol ], 0
jmp red ;event_wait
2018-10-09 17:03:03 +02:00
@ @ :
cmp ah , 110
jne @ f
mov byte [ mode ], 48 ;'0'
jmp event_wait
@ @ :
cmp ah , 111
jne @ f
mov byte [ mode ], 49 ;'1'
jmp event_wait
@ @ :
cmp ah , 112
jne @ f
mov byte [ mode ], 50 ;'2'
jmp event_wait
@ @ :
cmp ah , 113
jne @ f
mov byte [ mode ], 51 ;'3'
jmp event_wait
2018-10-05 20:58:13 +02:00
@ @ :
2018-09-18 04:52:36 +02:00
butend:
jmp event_wait ;this is for ignored events, useful at development
;<3B> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
fileName: db 'SETTINGS/HOTANGLES.CFG' , 0
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> /<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
createFile:
.func dd 2 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.re dd 0 , 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.size dd 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.data_adr dd 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.path db 0
.path_adr dd fileName ;<3B> <> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-14 04:39:53 +02:00
defaultDataForConfig db 121 , 13 , 10 , '/rd/1/HACONFIG' , 13 , 10 , '/rd/1/HACONFIG' , 13 , 10 , '/rd/1/HACONFIG' , 13 , 10 , '/rd/1/HACONFIG' , 13 , 10 , 'Space' , 13 , 10 , '57' , 13 , 10 , '10' , 13 , 10 , 's' , 13 , 10
defaultDataSize = 85 ;48+19+4
2018-09-18 04:52:36 +02:00
copyParam: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> . <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
push esi ebx ecx
mov ecx , dword [ ebx ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-24 02:35:56 +02:00
cmp ecx , 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ?
jne copyParam.copy ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> )
mov byte [ eax ], '-' ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> '-'
inc eax
;jmp copyParam.copyEnd ;<3B> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-18 04:52:36 +02:00
.copy: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp ecx , 0
je copyParam.copyEnd
mov bl , byte [ esi ]
mov byte [ eax ], bl
dec ecx
inc eax
inc esi
jmp copyParam.copy
.copyEnd:
pop ecx ebx esi
ret
addPerenos: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov byte [ eax ], 13
inc eax
mov byte [ eax ], 10
inc eax
ret
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "
applyButton:
push eax ebx ecx
;mov dword[createFile.data_adr], defaultDataForConfig
;mov dword[createFile.size], defaultDataSize
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-14 04:39:53 +02:00
mov ecx , 9 * 2 + 1 ;1 <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 9 <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 13, 10)
2018-09-23 08:23:29 +02:00
add ecx , dword [ edi tLU.size ] ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
add ecx , dword [ edi tLD.size ]
add ecx , dword [ edi tRU.size ]
2018-09-18 04:52:36 +02:00
add ecx , dword [ edi tRD.size ] ;dataBuffer.size4]
2018-10-14 04:39:53 +02:00
add ecx , dword [ edi tRadius.size ]
add ecx , dword [ hkSize ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
add ecx , dword [ keystr.size ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
inc ecx ; <20> <> <EFBFBD> 1 <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-24 02:35:56 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> +1 <20> <> <EFBFBD> <EFBFBD>
cmp dword [ edi tLU.size ], 0
jne @ f
inc ecx
@ @ :
cmp dword [ edi tLD.size ], 0
jne @ f
inc ecx
@ @ :
cmp dword [ edi tRU.size ], 0
jne @ f
inc ecx
@ @ :
cmp dword [ edi tRD.size ], 0
jne @ f
inc ecx
@ @ :
2018-09-18 04:52:36 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ecx
mov dword [ createFile.size ], ecx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> /<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mcall 68 , 12 , ecx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov dword [ createFile.data_adr ], eax ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :
2018-10-09 17:03:03 +02:00
push ebx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov bl , byte [ mode ]
mov byte [ eax ], bl
pop ebx
2018-09-18 04:52:36 +02:00
inc eax
call addPerenos
push esi ebx
call UpdateEditsSizes ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> edit'<27> <>
2018-10-16 05:28:51 +02:00
mov esi , dataBuffer.1
mov ebx , dataBuffer.size1
2018-09-18 04:52:36 +02:00
call copyParam
call addPerenos ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-23 08:23:29 +02:00
mov esi , dataBuffer.2
mov ebx , dataBuffer.size2
2018-09-18 04:52:36 +02:00
call copyParam
call addPerenos ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov esi , dataBuffer.3
mov ebx , dataBuffer.size3
call copyParam
call addPerenos ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov esi , dataBuffer.4
mov ebx , dataBuffer.size4
call copyParam
call addPerenos ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-14 04:39:53 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
call saveKey
call addPerenos
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov esi , keystr.data ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> keystr <20> <20> <> <EFBFBD> <EFBFBD>
xor ebx , ebx
@ @ :
cmp byte [ esi ], 0
je @ f
mov bl , byte [ esi ]
mov byte [ eax ], bl
inc eax
inc esi
cmp esi , keystr.size - 1
jae @ f
jmp @ b
@ @ :
call addPerenos
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;!!! <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> '-')
mov esi , radiusBuffer.data
mov ebx , edi tRadius.size ;radiusBuffer.size
call copyParam
call addPerenos
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
push ebx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov bl , byte [ si zeStyle ]
mov byte [ eax ], bl
pop ebx
inc eax
call addPerenos
2018-09-18 04:52:36 +02:00
pop ebx esi
mov ebx , createFile
mcall 70
cmp eax , 0
je .end
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !!!
.end:
mcall 68 , 13 , dword [ createFile.data_adr ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-24 02:35:56 +02:00
call finishHotAnglesApp ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> @HOTANGLES
call loadConfig ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
call draw_window ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
call startHotAnglesApp ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> @HOTANGLES
2018-09-18 04:52:36 +02:00
pop ecx ebx eax
ret
compareBytes2:
push edi esi ecx ebx
xor eax , eax
mov ecx , 10 ;max <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 11
@ @ :
mov bl , byte [ edi ]
cmp bl , byte [ esi ]
jne compareBytes.no
inc edi
inc esi
cmp ecx , 0
je @ f
dec ecx
jmp @ b
.no:
mov eax , 1
@ @ :
pop ebx ecx esi edi
ret
2018-09-24 02:35:56 +02:00
finishHotAnglesApp:
2018-09-18 04:52:36 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <>
push eax ebx ecx esi edi
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :
mov esi , startAppData.file_name ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov edi , buf ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
add edi , 10
mov ecx , 1
@ @ :
mcall 9 , buf , ecx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov dword [ slotMax ], eax
call compareBytes2 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
cmp eax , 0
2018-09-24 02:35:56 +02:00
jne finishHotAnglesApp.next ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2018-09-18 04:52:36 +02:00
mcall 18 , 2 , ecx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
.next:
inc ecx
cmp ecx , dword [ slotMax ]
ja @ f
jmp @ b
@ @ :
pop edi esi ecx ebx eax
2018-09-24 02:35:56 +02:00
ret
2018-09-18 04:52:36 +02:00
2018-09-24 02:35:56 +02:00
startHotAnglesApp:
2018-09-18 04:52:36 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
push eax ebx
mcall 70 , startAppData
cmp eax , 0
ja @ f ;<3B> <> <EFBFBD> <EFBFBD> eax>0, <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;!!! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
@ @ :
pop ebx eax
ret
startAppData:
.subfunction dd 7
.flags dd 0
.param dd 0
.rezerv dd 0 , 0
.full_name db '/rd/1/'
.file_name db '@HOTANGLES' , 0
UpdateEditsSizes:
push eax
mov eax , dword [ edi tLU.size ]
mov dword [ dataBuffer.size1 ], eax
mov eax , dword [ edi tLD.size ]
mov dword [ dataBuffer.size2 ], eax
mov eax , dword [ edi tRU.size ]
mov dword [ dataBuffer.size3 ], eax
mov eax , dword [ edi tRD.size ]
mov dword [ dataBuffer.size4 ], eax
2018-10-14 04:39:53 +02:00
mov eax , dword [ edi tRadius.size ]
mov dword [ radiusBuffer.size ], eax
2018-09-18 04:52:36 +02:00
pop eax
ret
fileAdr dd 0
loadConfig:
push eax ebx ecx edx
mcall 68 , 27 , fileName ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD>
mov dword [ fileAdr ], eax ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
cmp eax , 0
je loadConfig.default ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> edx
cmp edx , 0 ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> , <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
je loadConfig.default
.start:
add edx , eax ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> edx - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .<2E> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.chStart:
2018-10-09 17:03:03 +02:00
push ebx
mov bl , byte [ eax ]
cmp bl , 48 ; <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> 'n' (<28> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
jb loadConfig.checkN
cmp bl , 51
ja loadConfig.checkN
mov byte [ mode ], bl ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
jmp loadConfig.modeEnd ;<3B> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.checkN:
cmp bl , 'n' ;<3B> <> <EFBFBD> <EFBFBD> n - <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "
jne @ f
mov byte [ mode ], 48 ;'0'
jmp loadConfig.modeEnd
@ @ :
2018-10-14 04:39:53 +02:00
cmp bl , 'y' ;<3B> <> <EFBFBD> <EFBFBD> y - <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
jne @ f
mov byte [ mode ], 49 ;'1'
jmp loadConfig.modeEnd
@ @ :
mov byte [ mode ], 48 ;'0' <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;mov byte[mode], 49 ;'1' <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-09 17:03:03 +02:00
.modeEnd:
pop ebx
2018-09-18 04:52:36 +02:00
;jmp loadConfig.end ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
push edi esi ecx ebx eax
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-23 08:23:29 +02:00
mov edi , dataBuffer.1
mov esi , dataBuffer.size1
2018-09-18 04:52:36 +02:00
;ecx - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.block:
xor ecx , ecx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
inc eax
cmp byte [ eax ], 10 ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 10 <20> <> <EFBFBD> 13, <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-23 08:23:29 +02:00
je loadConfig.block ;<3B> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD>
2018-09-18 04:52:36 +02:00
cmp byte [ eax ], 13
2018-09-23 08:23:29 +02:00
je loadConfig.block
2018-09-18 04:52:36 +02:00
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov bl , byte [ eax ]
mov byte [ edi ], bl
inc edi
inc eax
inc ecx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> : <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 10, 13, 0 <20> <> <EFBFBD> file end
.while: ;<3B> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
cmp eax , edx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> , <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> !!!
ja loadConfig.ura
cmp byte [ eax ], 10
je loadConfig.ura
cmp byte [ eax ], 0
je loadConfig.ura
cmp byte [ eax ], 13
je loadConfig.ura
mov bl , byte [ eax ]
mov byte [ edi ], bl
inc edi
inc eax
inc ecx
cmp ecx , 511
jae loadConfig.ura
jmp loadConfig.while
.ura:
mov byte [ edi ], 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 0 <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov dword [ esi ], ecx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
add esi , 4 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
sub edi , ecx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
add edi , 512
2018-09-23 08:23:29 +02:00
;xor ecx, ecx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-18 04:52:36 +02:00
cmp edi , dataBuffer.size1 ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ), <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
jb loadConfig.block
2018-10-14 04:39:53 +02:00
call readOptKey ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
call gotoEndString
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
call readScanKey
call gotoEndString
call readOptRadius ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> mode 3
call gotoEndString
call readOptSize ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
call gotoEndString
2018-09-18 04:52:36 +02:00
pop eax ebx ecx esi edi
jmp loadConfig.end
.default:
mov eax , defaultDataForConfig
mov edx , defaultDataSize
jmp loadConfig.start
.end:
mov ecx , dword [ fileAdr ] ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <>
cmp ecx , 0
je @ f
mcall 68 , 13 , ecx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
@ @ :
call updateParams ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-14 04:39:53 +02:00
call setMySize ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-18 04:52:36 +02:00
pop edx ecx ebx eax
ret
2018-10-14 04:39:53 +02:00
setMySize:
push eax
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> mysize <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> sizeStyle
cmp byte [ si zeStyle ], '0'
jb @ f
cmp byte [ si zeStyle ], '7'
ja @ f
mov eax , 0 ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov al , byte [ si zeStyle ]
sub al , '0'
jmp .end
@ @ :
cmp byte [ si zeStyle ], 'a'
je .auto
2018-10-16 05:28:51 +02:00
cmp byte [ si zeStyle ], 'x'
je .x
2018-10-14 04:39:53 +02:00
.system: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> : s - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
push ebx ecx edx
mcall 48 , 11 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> eax - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov ebx , 9 ;temp fix - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> and -1
mov edx , 0
div ebx
pop edx ecx ebx
cmp eax , 0
je .end
cmp eax , 7
jae .size7
dec eax
;mov eax, 0 ;test
jmp .end
.x:
mov byte [ si zeStyle ], 'x'
mov eax , 0
2018-10-14 04:39:53 +02:00
jmp .end
.auto: ;a - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mcall 14
push ebx
xor ebx , ebx
mov bx , ax
shr eax , 16
cmp ax , bx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
jae .a
mov ax , bx
.a:
pop ebx
2018-10-16 05:28:51 +02:00
cmp ax , 1300 ;1919 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> 0 <20> <20> <> 1 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-14 04:39:53 +02:00
jb .size0
2018-10-16 05:28:51 +02:00
cmp ax , 1899 ;919
jb .x
2018-10-14 04:39:53 +02:00
cmp ax , 2047
jb .size1
cmp ax , 4095
jb .size2
cmp ax , 8191
jb .size3
2018-10-16 05:28:51 +02:00
cmp ax , 16383
jb .size4
cmp ax , 32767
jb .size5
cmp ax , 65535
jb .size6
2018-10-14 04:39:53 +02:00
2018-10-16 05:28:51 +02:00
jmp .size7
2018-10-14 04:39:53 +02:00
.size0:
mov eax , 0
jmp .end
.size1:
mov eax , 1
jmp .end
.size2:
mov eax , 2
jmp .end
.size3:
mov eax , 3
jmp .end
.size4:
mov eax , 4
jmp .end
.size5:
mov eax , 5
jmp .end
.size6:
mov eax , 6
jmp .end
.size7:
mov eax , 7
jmp .end
;.default:
; mov eax, 1
.end:
mov byte [ mysize ], al ;mov dword[mysize], eax
pop eax
ret
readScanKey:
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp eax , edx ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <>
ja .default ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp byte [ eax ], 10
je @ f
cmp byte [ eax ], 0
je @ f
cmp byte [ eax ], 13
je @ f
push ecx ebx esi
mov ecx , 0 ;xor ecx, ecx
mov esi , keystr.data
.copy:
mov bl , byte [ eax ]
cmp bl , 0
je .copyEnd
cmp bl , 10
je .copyEnd
cmp bl , 13
je .copyEnd
cmp esi , keystr.size - 1
jae .copyEnd
mov byte [ esi ], bl
inc esi
inc eax
inc ecx
jmp .copy
.copyEnd:
mov byte [ esi ], 0
mov dword [ keystr.size ], ecx
pop esi ebx ecx
jmp .end
@ @ :
inc eax
jmp readScanKey
.default:
mov byte [ keyscan ], 57
mov word [ keystr.data ], '57'
mov byte [ keystr.data + 2 ], 0
mov dword [ keystr.size ], 2
.end:
ret
readOptKey: ;1;3;4;5 - space or shift
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp eax , edx ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <>
ja .default ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp byte [ eax ], 10
je @ f
cmp byte [ eax ], 0
je @ f
cmp byte [ eax ], 13
je @ f
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp dword [ eax ], 'Ctrl'
jne .notCtrl
mov byte [ hkSymbol ], 3
mov dword [ hkSize ], 4
jmp .end
.notCtrl:
cmp dword [ eax ], 'Shif'
jne .notShift
mov byte [ hkSymbol ], 2
mov dword [ hkSize ], 5
jmp .end
.notShift:
cmp dword [ eax ], 'Spac'
jne .notSpace
mov byte [ hkSymbol ], 32
mov dword [ hkSize ], 5
jmp .end
.notSpace:
cmp word [ eax ], 'Al'
jne .notAlt
mov byte [ hkSymbol ], 1
mov dword [ hkSize ], 3
jmp .end
.notAlt:
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <20> <> <EFBFBD> 1 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp byte [ eax + 1 ], 10
je .oneSymb
cmp byte [ eax + 1 ], 0
je .oneSymb
cmp byte [ eax + 1 ], 13
je .oneSymb
jmp .default
.oneSymb:
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !!!
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
push ebx
;xor ebx, ebx
mov bl , byte [ eax ]
mov byte [ hkSymbol ], bl
mov dword [ hkSize ], 1
pop ebx
jmp .end
@ @ :
inc eax
jmp readOptKey
.default:
mov byte [ hkSymbol ], 32
mov dword [ hkSize ], 5
.end:
mov byte [ hkSymbol + 1 ], 0
ret
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
gotoEndString:
cmp eax , edx ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <>
ja @ f ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp byte [ eax ], 10
je @ f
cmp byte [ eax ], 0
je @ f
cmp byte [ eax ], 13
je @ f
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
inc eax
jmp gotoEndString
@ @ :
ret
readOptRadius:
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp eax , edx ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <>
ja .default ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp byte [ eax ], 10
je @ f
cmp byte [ eax ], 0
je @ f
cmp byte [ eax ], 13
je @ f
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
push ebx ecx
xor ecx , ecx
.readValue:
mov bl , byte [ eax ]
mov byte [ radiusBuffer.data + ecx ], bl
inc ecx
inc eax
cmp eax , edx ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
ja .readEnd
cmp byte [ eax ], 10
je .readEnd
cmp byte [ eax ], 0
je .readEnd
cmp byte [ eax ], 13
je .readEnd
cmp ecx , 6
jae .readEnd
jmp .readValue
.readEnd:
mov byte [ radiusBuffer.data + ecx ], 0
mov dword [ radiusBuffer.size ], ecx
pop ecx ebx
jmp .end
@ @ :
inc eax
jmp readOptRadius
.default:
mov byte [ radiusBuffer.data ], '0'
mov byte [ radiusBuffer.data + 1 ], 0
mov dword [ radiusBuffer.size ], 1
.end:
ret
readOptSize:
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp eax , edx ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <>
ja .default ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cmp byte [ eax ], 10
je @ f
cmp byte [ eax ], 0
je @ f
cmp byte [ eax ], 13
je @ f
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> : 1-7, a, s
cmp byte [ eax ], 'a'
je .setValue
cmp byte [ eax ], 's'
je .setValue
2018-10-16 05:28:51 +02:00
cmp byte [ eax ], 'x'
je .setValue
2018-10-14 04:39:53 +02:00
cmp byte [ eax ], '0'
je .setValue
cmp byte [ eax ], '1'
je .setValue
cmp byte [ eax ], '2'
je .setValue
cmp byte [ eax ], '3'
je .setValue
cmp byte [ eax ], '4'
je .setValue
cmp byte [ eax ], '5'
je .setValue
cmp byte [ eax ], '6'
je .setValue
cmp byte [ eax ], '7'
je .setValue
jmp .default ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.setValue:
push ebx
mov bl , byte [ eax ]
mov byte [ si zeStyle ], bl
pop ebx
jmp .end
@ @ :
inc eax
jmp readOptSize
.default:
mov byte [ si zeStyle ], 's' ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.end:
ret
2018-09-18 04:52:36 +02:00
updateParams: ;max, size, pos
push eax
mov eax , dword [ dataBuffer.size1 ]
mov dword [ edi tLU.size ], eax
mov dword [ edi tLU.pos ], eax
mov eax , dword [ dataBuffer.size2 ]
mov dword [ edi tLD.size ], eax
mov dword [ edi tLD.pos ], eax
mov eax , dword [ dataBuffer.size3 ]
mov dword [ edi tRU.size ], eax
mov dword [ edi tRU.pos ], eax
mov eax , dword [ dataBuffer.size4 ]
mov dword [ edi tRD.size ], eax
mov dword [ edi tRD.pos ], eax
2018-10-14 04:39:53 +02:00
mov eax , dword [ radiusBuffer.size ]
mov dword [ edi tRadius.size ], eax
mov dword [ edi tRadius.pos ], eax
2018-09-18 04:52:36 +02:00
pop eax
ret
2018-09-23 08:23:29 +02:00
selfName db 'HACONFIG' , 0
selfNameSize = 8 ;<3B> <> 11 byte
2018-09-18 04:52:36 +02:00
;
compareBytes:
push edi esi ecx ebx
mov eax , 0 ;xor eax, eax
2018-09-23 08:23:29 +02:00
mov ecx , selfNameSize ;max <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 11
2018-09-18 04:52:36 +02:00
@ @ :
mov bl , byte [ edi ]
cmp bl , byte [ esi ]
jne compareBytes.no
inc edi
inc esi
cmp ecx , 0
je @ f
dec ecx
jmp @ b
.no:
mov eax , 1
@ @ :
pop ebx ecx esi edi
ret
;
slotMax dd 0
selfPID dd 0
buf db 1024 dup ( 0 )
copyKill:
push eax ebx ecx esi edi
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mcall 9 , buf , - 1
mov eax , dword [ buf + 30 ]
mov dword [ selfPID ], eax
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :
mov esi , selfName ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov edi , buf ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
add edi , 10
mov ecx , 1
@ @ :
mcall 9 , buf , ecx
mov dword [ slotMax ], eax
;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov eax , dword [ buf + 30 ]
cmp eax , dword [ selfPID ]
je copyKill.propusk
call compareBytes ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 11 <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> eax
cmp eax , 0
je copyKill.selfKill
.propusk:
inc ecx
cmp ecx , dword [ slotMax ]
ja @ f
jmp @ b
.selfKill:
pop edi esi ecx ebx eax
mcall - 1
ret
@ @ :
pop edi esi ecx ebx eax
ret
2018-10-16 05:28:51 +02:00
reg: dw 0
shlRegForSizeElems:
push eax edx
xor eax , eax
xor edx , edx
mov ax , word [ reg ]
mov dl , byte [ mysize ]
@ @ :
cmp dl , 0
je @ f
shl ax , 1
dec dl
jmp @ b
@ @ :
mov word [ reg ], ax
pop edx eax
ret
2018-09-18 04:52:36 +02:00
WindowsWidth = 450
2018-10-14 04:39:53 +02:00
WindowsHeight = 195 + 35 - 5
2018-09-18 04:52:36 +02:00
coord: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.y dw 0
.x dw 0
2018-10-05 20:58:13 +02:00
2018-09-18 04:52:36 +02:00
2018-10-16 05:28:51 +02:00
BaseY = 36 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
elem:
.winWidth: dw 450
.winHeight: dw 225
.butAppleWidth: dw 80
.butAppleHeight: dw 20
.textDelta: dw 3 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.butDialWidth: dw 30 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 4 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
.butDialHeight: dw 14
.textHeight: dw 9 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;.editHeight: dw
.editCommandWidth: dw 150 ;180-butDialWidth
.butModeWidth: dw 221
;.textCommandUpY: dw 74
.butModeY: dw 160
;.editRadiusWidth: dw 40
elemEnd:
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
defaultElems:
mov word [ elem.winWidth ], 450
mov word [ elem.winHeight ], 225
mov word [ elem.butAppleWidth ], 80
mov word [ elem.butAppleHeight ], 20
mov word [ elem.textDelta ], 3
mov word [ elem.butDialWidth ], 30
mov word [ elem.butDialHeight ], 14
mov word [ elem.textHeight ], 9
mov word [ elem.editCommandWidth ], 150
mov word [ elem.butModeWidth ], 221
mov word [ elem.butModeY ], 160
;mov word[elem.editRadiusWidth], 40
ret
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 1 <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
resizeElems:
push ebx esi
xor ebx , ebx
mov esi , elem
@ @ :
cmp esi , elemEnd
jae @ f
mov bx , word [ esi ]
mov word [ reg ], bx
call shlRegForSizeElems
mov bx , word [ reg ]
mov word [ esi ], bx
add esi , 2
jmp @ b
@ @ :
pop esi ebx
ret
draw_window:
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
mov edx , 0x80000002
mcall 8
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 4 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
mov edx , 0x80000004
mcall 8
mov edx , 0x80000005
mcall 8
mov edx , 0x80000006
mcall 8
mov edx , 0x80000007
mcall 8
mov eax , 12 ; function 12: tell os about windowdraw
mov ebx , 1 ; 1, start of draw
mcall
cmp byte [ si zeStyle ], 'x'
je draw_window_x
jmp draw_window_old
draw_window_x:
mov word [ elem.winWidth ], 450 + 150
mov word [ elem.winHeight ], 225 + 220 / 2
mov word [ elem.butAppleWidth ], 80 + 80 / 3
mov word [ elem.butAppleHeight ], 20 + 20 / 3
mov word [ elem.textDelta ], 3
mov word [ elem.butDialWidth ], 30 + 10
mov word [ elem.butDialHeight ], 14 + 7
mov word [ elem.textHeight ], 9 * 2
mov word [ elem.editCommandWidth ], 150 + 50
mov word [ elem.butModeWidth ], 221
mov word [ elem.butModeY ], 160 + 90
draw_window_old:
2018-09-18 04:52:36 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> :
mcall 14 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov dword [ coord ], eax ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
shr word [ coord.x ], 1 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
shr word [ coord.y ], 1
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
mov bx , word [ elem.winWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
shr bx , 1
sub word [ coord.x ], bx
mov bx , word [ elem.winHeight ]
shr bx , 1
sub word [ coord.y ], bx
2018-09-18 04:52:36 +02:00
mov eax , 0 ; function 0 : define and draw window
2018-09-23 08:23:29 +02:00
mov ebx , 0 ; [x start] *65536 + [x size]
2018-09-18 04:52:36 +02:00
mov bx , word [ coord.x ]
shl ebx , 16
2018-10-16 05:28:51 +02:00
mov bx , word [ elem.winWidth ]
2018-09-18 04:52:36 +02:00
mov ecx , 0
2018-09-23 08:23:29 +02:00
mov cx , word [ coord.y ] ; [y start] *65536 + [y size]
2018-09-18 04:52:36 +02:00
shl ecx , 16
2018-10-16 05:28:51 +02:00
mov cx , word [ elem.winHeight ]
2018-09-18 04:52:36 +02:00
mov edx , 0x14ffffff ; color of work area RRGGBB
; 0x02000000 = window type 4 (fixed size, skinned window)
mov esi , 0x808899ff ; color of grab bar RRGGBB
; 0x80000000 = color glide
mov edi , title
mcall
2018-10-16 05:28:51 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;push eax
xor eax , eax ;mov eax, 0
mov ax , word [ elem.editCommandWidth ]
mov dword [ edi tLU.width ], eax
mov dword [ edi tLD.width ], eax
mov dword [ edi tRU.width ], eax
mov dword [ edi tRD.width ], eax
;mov ax, word[elem.editRadiusWidth]
mov ax , word [ elem.winWidth ]
sub ax , word [ elem.butModeWidth ]
sub ax , Otstup
sub ax , word [ elem.butAppleHeight ] ;Otstup
shr ax , 1
sub ax , Otstup
mov dword [ edi tRadius.width ], eax
;mov ax, word[elem.butDialHeight]
xor ecx , ecx
call setNewSizeForText
mov dword [ edi tLU.text_color ], ecx ;0x90000000 ;eax
mov dword [ edi tLD.text_color ], ecx
mov dword [ edi tRU.text_color ], ecx
mov dword [ edi tRD.text_color ], ecx
mov dword [ edi tRadius.text_color ], ecx
;mov ecx, dword[editRadius.height]
;mov word[elem.butDialHeight], cx
;mov eax, 0
mov ax , word [ elem.winWidth ]
sub ax , Otstup
sub ax , word [ elem.butDialWidth ]
sub ax , word [ elem.editCommandWidth ]
mov dword [ edi tRU.left ], eax
mov dword [ edi tRD.left ], eax
mov ax , Otstup
add ax , word [ elem.butDialWidth ]
mov dword [ edi tLU.left ], eax
mov dword [ edi tLD.left ], eax
mov ax , word [ elem.textHeight ]
add ax , word [ elem.textDelta ]
shl ax , 2
add ax , BaseY + 2
mov dword [ edi tLU.top ], eax
mov dword [ edi tRU.top ], eax
add ax , 4
;mov ax, word[elem.textHeight]
;add ax, word[elem.textDelta]
;shl ax, 2
sub ax , word [ elem.textHeight ]
;add ax, BaseY
add ax , word [ elem.textHeight ]
;add ax, 6
add ax , word [ elem.butDialHeight ]
add ax , word [ elem.textHeight ]
add ax , word [ elem.textHeight ]
mov dword [ edi tLD.top ], eax
mov dword [ edi tRD.top ], eax
;pop eax
;mcall 48,3,sc,40
;edit_boxes_set_sys_color editRadius, sc ;editLU, editLD, editRU, editRD, editRadius, sc
2018-09-22 01:46:18 +02:00
invoke edi t_box_draw , edi tLU ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> edit box'<27> <>
invoke edi t_box_draw , edi tLD
invoke edi t_box_draw , edi tRU
invoke edi t_box_draw , edi tRD
2018-09-18 04:52:36 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
mov bx , word [ elem.winWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
sub bx , word [ elem.butAppleWidth ]
sub bx , Otstup
shl ebx , 16
add bx , word [ elem.butAppleWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov cx , word [ elem.winHeight ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Y
sub cx , word [ elem.butAppleHeight ]
sub cx , 15
shl ecx , 16
add cx , word [ elem.butAppleHeight ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov edx , 0x00000002 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-18 04:52:36 +02:00
mov esi , 0x00AABBCC ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mcall 8
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
mov bx , word [ elem.winWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
sub bx , word [ elem.butAppleWidth ]
sub bx , Otstup
add bx , 25
sub bx , buttonTextXoffset ;!!!use size
shl ebx , 16
add bx , word [ elem.winHeight ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Y <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
sub bx , word [ elem.butAppleHeight ]
sub bx , 15
add bx , 6 ;!!!use size
2018-09-18 04:52:36 +02:00
mov ecx , 0xFFFFFF ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
call setNewSizeForText
2018-09-18 04:52:36 +02:00
mov edx , buttonText
2018-10-10 20:01:49 +02:00
mov esi , buttonTextSize ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-19 01:38:30 +02:00
mcall 4
2018-09-18 04:52:36 +02:00
2018-10-05 20:58:13 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 4 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 4,5,6 <20> 7
2018-10-10 20:01:49 +02:00
buttonH = 14
2018-10-05 20:58:13 +02:00
buttonW = 30
2018-10-16 05:28:51 +02:00
2018-10-05 20:58:13 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
mov ebx , Otstup ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X
shl ebx , 16
add bx , word [ elem.butDialWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;mov ecx, 85 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Y 36+3*9+2*3+ 5 +9+2
;BaseY+4*(word[elem.textHeight]+word[elem.textDelta])+2
mov cx , word [ elem.textHeight ]
add cx , word [ elem.textDelta ]
shl cx , 2
add cx , BaseY + 2
shl ecx , 16
add cx , word [ elem.butDialHeight ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-05 20:58:13 +02:00
mov edx , 0x00000004 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov esi , 0x00AABBCC ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mcall 8
2018-10-16 05:28:51 +02:00
2018-10-05 20:58:13 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
mov ebx , Otstup ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X
shl ebx , 16
add bx , word [ elem.butDialWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;mov ecx, 120 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Y
mov cx , word [ elem.textHeight ]
add cx , word [ elem.textDelta ]
shl cx , 2
sub cx , word [ elem.textHeight ]
add cx , BaseY
add cx , word [ elem.textHeight ]
add cx , 6
add cx , word [ elem.butDialHeight ]
add cx , word [ elem.textHeight ]
add cx , word [ elem.textHeight ]
shl ecx , 16
add cx , word [ elem.butDialHeight ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-05 20:58:13 +02:00
mov edx , 0x00000005 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov esi , 0x00AABBCC ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mcall 8
2018-10-16 05:28:51 +02:00
2018-10-05 20:58:13 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
;mov ebx, (WindowsWidth-Otstup-buttonW)*65536 + buttonW ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X, <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov bx , word [ elem.winWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X
sub bx , Otstup
sub bx , word [ elem.butDialWidth ]
shl ebx , 16
add bx , word [ elem.butDialWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;mov ecx, 85 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Y 36+3*9+2*3+ 5 +9+2
;BaseY+4*(word[elem.textHeight]+word[elem.textDelta])+2
mov cx , word [ elem.textHeight ]
add cx , word [ elem.textDelta ]
shl cx , 2
add cx , BaseY + 2
shl ecx , 16
add cx , word [ elem.butDialHeight ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-05 20:58:13 +02:00
mov edx , 0x00000006 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov esi , 0x00AABBCC ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mcall 8
2018-10-16 05:28:51 +02:00
2018-10-05 20:58:13 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
mov bx , word [ elem.winWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X
sub bx , Otstup
sub bx , word [ elem.butDialWidth ]
shl ebx , 16
add bx , word [ elem.butDialWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov cx , word [ elem.textHeight ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Y
add cx , word [ elem.textDelta ]
shl cx , 2
sub cx , word [ elem.textHeight ]
add cx , BaseY
add cx , word [ elem.textHeight ]
add cx , 6
add cx , word [ elem.butDialHeight ]
add cx , word [ elem.textHeight ]
add cx , word [ elem.textHeight ]
shl ecx , 16
add cx , word [ elem.butDialHeight ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-05 20:58:13 +02:00
mov edx , 0x00000007 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov esi , 0x00AABBCC ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mcall 8
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 4 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov ecx , 0xFFFFFF ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
call setNewSizeForText
2018-10-05 20:58:13 +02:00
mov edx , commonButtonText ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov esi , commonButtonTextSize ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (x, y)
deltaCommonTextX = 7
deltaCommonTextY = 2
2018-10-16 05:28:51 +02:00
;mov ebx, (Otstup+deltaCommonTextX) * 65536 + (85 + deltaCommonTextY)
mov ebx , Otstup + deltaCommonTextX
shl ebx , 16
mov bx , word [ elem.textHeight ]
add bx , word [ elem.textDelta ]
shl bx , 2
add bx , BaseY + 2
add bx , deltaCommonTextY
2018-10-05 20:58:13 +02:00
mcall 4
2018-10-16 05:28:51 +02:00
;
;mov ebx, (Otstup+deltaCommonTextX) * 65536 + (120 + deltaCommonTextY)
mov ebx , Otstup + deltaCommonTextX
shl ebx , 16
mov bx , word [ elem.textHeight ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Y
add bx , word [ elem.textDelta ]
shl bx , 2
sub bx , word [ elem.textHeight ]
add bx , BaseY
add bx , word [ elem.textHeight ]
add bx , 6
add bx , word [ elem.butDialHeight ]
add bx , word [ elem.textHeight ]
add bx , word [ elem.textHeight ]
add bx , deltaCommonTextY
2018-10-05 20:58:13 +02:00
mcall 4
2018-10-16 05:28:51 +02:00
;mov ebx, (WindowsWidth-Otstup-buttonW+deltaCommonTextX) * 65536 + (85 + deltaCommonTextY)
mov bx , word [ elem.winWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X
sub bx , Otstup
sub bx , word [ elem.butDialWidth ]
add bx , deltaCommonTextX
shl ebx , 16
mov bx , word [ elem.textHeight ]
add bx , word [ elem.textDelta ]
shl bx , 2
add bx , BaseY + 2
add bx , deltaCommonTextY
2018-10-05 20:58:13 +02:00
mcall 4
2018-10-16 05:28:51 +02:00
;mov ebx, (WindowsWidth-Otstup-buttonW+deltaCommonTextX) * 65536 + (120 + deltaCommonTextY)
mov bx , word [ elem.winWidth ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X
sub bx , Otstup
sub bx , word [ elem.butDialWidth ]
add bx , deltaCommonTextX
shl ebx , 16
mov bx , word [ elem.textHeight ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Y
add bx , word [ elem.textDelta ]
shl bx , 2
sub bx , word [ elem.textHeight ]
add bx , BaseY
add bx , word [ elem.textHeight ]
add bx , 6
add bx , word [ elem.butDialHeight ]
add bx , word [ elem.textHeight ]
add bx , word [ elem.textHeight ]
add bx , deltaCommonTextY
2018-10-05 20:58:13 +02:00
mcall 4
2018-10-09 17:03:03 +02:00
;delete mode button, if it exist
mov edx , 0x80000008
mcall 8
;draw button Mode
2018-10-16 05:28:51 +02:00
buttonModeX = 30
buttonModeY = 160
2018-10-09 17:03:03 +02:00
buttonModeWidth = 221
2018-10-16 05:28:51 +02:00
buttonModeHeight = 14
buttonModeTextYoffset = 3
2018-10-09 17:03:03 +02:00
buttonModeTextXoffset = 5
2018-10-16 05:28:51 +02:00
;mov ebx, buttonModeX*65536 + buttonModeWidth ;X + Width
mov ebx , Otstup
shl ebx , 16
add bx , word [ elem.butModeWidth ]
mov cx , word [ elem.butModeY ] ;buttonModeY;*65536 + buttonModeHeight ;Y + Height
shl ecx , 16
mov cx , word [ elem.butDialHeight ]
2018-10-10 20:01:49 +02:00
mov edx , 0x00000008 ;button id
mov esi , 0x00FFFFFF ;color button
2018-10-09 17:03:03 +02:00
mcall 8
2018-10-16 05:28:51 +02:00
;mov ebx, (buttonModeX+2+buttonModeWidth-20)*65536 + (20-2) ;X + Width
mov ebx , Otstup + 2
add bx , word [ elem.butModeWidth ]
sub bx , 20
shl ebx , 16
add bx , 20 - 2
; mov ecx, (buttonModeY+1)*65536 + buttonModeHeight-2 ;Y + Height
mov cx , word [ elem.butModeY ]
inc ecx
shl ecx , 16
mov cx , word [ elem.butDialHeight ]
sub cx , 2
2018-10-10 20:01:49 +02:00
mov edx , 0xAABBCC
mcall 13
2018-10-09 17:03:03 +02:00
;draw text for button Mode
2018-10-16 05:28:51 +02:00
mov ebx , ( Otstup + buttonModeTextXoffset ) * 65536 ;(x, y)
mov bx , word [ elem.butModeY ]
add bx , buttonModeTextYoffset
2018-10-10 20:01:49 +02:00
mov ecx , 0x000000
2018-10-16 05:28:51 +02:00
call setNewSizeForText
and ecx , 0x7FFFFFFF
2018-10-09 17:03:03 +02:00
call setTextModeMenu
2018-10-16 05:28:51 +02:00
mov esi , valueModeMenuSize
cmp byte [ si zeStyle ], 'x'
jne @ f
mov esi , 25 ;valueModeMenuSize -3 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <>
@ @ :
2018-10-09 17:03:03 +02:00
mcall 4
2018-10-16 05:28:51 +02:00
mov ebx , ( Otstup - 12 )
add bx , word [ elem.butModeWidth ]
shl ebx , 16
mov bx , word [ elem.butModeY ]
add bx , buttonModeTextYoffset
mov ecx , 0x80FFFFFF ;80
call setNewSizeForText
and ecx , 0x7FFFFFFF
;or ecx, 0x80000000
2018-10-10 20:01:49 +02:00
mov edx , symbolDownArrow
2018-10-16 05:28:51 +02:00
mov esi , 1
2018-10-10 20:01:49 +02:00
mcall 4
2018-10-09 17:03:03 +02:00
2018-10-14 04:39:53 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
buttonHotKeyX = 270
2018-10-14 04:39:53 +02:00
buttonHotKeyWidth = 90
mov edx , 0x80000009 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mcall 8
cmp byte [ mode ], 49 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> mode > 1
jbe @ f
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
push eax ebx ecx edx esi
2018-10-16 05:28:51 +02:00
; mov ebx, buttonHotKeyX*65536 + buttonHotKeyWidth ;X + Width
mov ebx , Otstup
add bx , word [ elem.butModeWidth ]
add bx , word [ elem.butAppleHeight ]
shl ebx , 16
mov bx , word [ elem.winWidth ] ;buttonHotKeyWidth
sub bx , word [ elem.butModeWidth ]
sub bx , Otstup
sub bx , word [ elem.butAppleHeight ] ;Otstup
shr bx , 1
sub bx , Otstup
; mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height
mov cx , word [ elem.butModeY ]
shl ecx , 16
mov cx , word [ elem.butDialHeight ]
2018-10-14 04:39:53 +02:00
mov edx , 0x00000009 ;button id
mov esi , 0x00FFFFFF ;color button
mcall 8
pop esi edx ecx ebx eax
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-16 05:28:51 +02:00
;mov ebx, (buttonHotKeyX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset) ;(x, y)
mov ebx , Otstup
add bx , word [ elem.butModeWidth ]
add bx , word [ elem.butAppleHeight ]
add bx , buttonModeTextYoffset
shl ebx , 16
mov bx , word [ elem.butModeY ]
add bx , buttonModeTextYoffset
; xor ecx, ecx
; mov ch, byte[mysize]
; shl ecx, 16
; add ecx, 0x80224466
mov ecx , 0x224466
call setNewSizeForText
;and ecx, 0x7FFFFFFF
or ecx , 0x80000000
2018-10-14 04:39:53 +02:00
call setTextForHotKey
mov esi , valueModeMenuSize
mcall 4
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
push eax ebx ecx edx edi esi
2018-10-16 05:28:51 +02:00
;mov ebx, buttonHotKeyX * 65536 + (buttonModeY-11)
mov ebx , Otstup ;buttonHotKeyX ;Otstup
add bx , word [ elem.butModeWidth ]
add bx , word [ elem.butAppleHeight ]
shl ebx , 16
add bx , word [ elem.butModeY ]
sub bx , 2
sub bx , word [ elem.textHeight ]
; xor ecx, ecx
; mov ch, byte[mysize]
; shl ecx, 16
; add ecx, 0x80224466
mov ecx , 0x224466
call setNewSizeForText
;and ecx, 0x7FFFFFFF
or ecx , 0x80000000
2018-10-14 04:39:53 +02:00
mov edx , hkCaption
mov esi , 3
mcall 4
pop esi edi edx ecx ebx eax
@ @ :
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 3
cmp byte [ mode ], 51
jne @ f
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
push eax ebx ecx edx edi esi
2018-10-16 05:28:51 +02:00
xor ebx , ebx
mov bx , word [ elem.winWidth ]
sub bx , Otstup
sub ebx , dword [ edi tRadius.width ]
shl ebx , 16
add bx , word [ elem.butModeY ]
sub bx , 2
sub bx , word [ elem.textHeight ]
; mov ecx, 0
; mov ch, byte[mysize]
; shl ecx, 16
; add ecx, 0x80224466
mov ecx , 0x224466
call setNewSizeForText
;and ecx, 0x7FFFFFFF
or ecx , 0x80000000
;mov ecx, 0x80224466
2018-10-14 04:39:53 +02:00
mov edx , radiusCaption
mov esi , 3
mcall 4
pop esi edi edx ecx ebx eax
2018-10-16 05:28:51 +02:00
xor eax , eax
mov ax , word [ elem.winWidth ]
sub ax , Otstup
sub eax , dword [ edi tRadius.width ]
mov dword [ edi tRadius.left ], eax
mov ax , word [ elem.butModeY ]
mov dword [ edi tRadius.top ], eax
2018-10-14 04:39:53 +02:00
invoke edi t_box_draw , edi tRadius
@ @ :
2018-09-18 04:52:36 +02:00
call draw_super_text
2018-09-23 08:23:29 +02:00
LineLength = 62
2018-10-16 05:28:51 +02:00
mov ebx , 40 * 65536 + BaseY ; draw info text with function 4 (x, y)
2018-10-14 04:39:53 +02:00
2018-10-16 05:28:51 +02:00
mov ecx , 0x224466
call setNewSizeForText
and ecx , 0x7FFFFFFF
2018-10-14 04:39:53 +02:00
2018-09-18 04:52:36 +02:00
mov edx , text
mov esi , LineLength
mov eax , 4
.newline: ; text from the DATA AREA
mcall
2018-10-16 05:28:51 +02:00
add bx , word [ elem.textHeight ] ;9*n+3 ;12
add bx , word [ elem.textDelta ]
2018-09-18 04:52:36 +02:00
add edx , LineLength
cmp byte [ edx ], 0
jne .newline
mov eax , 12 ; function 12:tell os about windowdraw
mov ebx , 2 ; 2, end of draw
mcall
ret
2018-10-16 05:28:51 +02:00
setNewSizeForText:
push ebx
mov ebx , ecx
cmp byte [ si zeStyle ], 'x'
je .x
mov ecx , 0
mov ch , byte [ mysize ]
shl ecx , 16
jmp @ f
.x:
mov ecx ,[ sc.work_text ]
or ecx , 0x90000000
@ @ :
add ecx , ebx
pop ebx
ret
2018-10-14 04:39:53 +02:00
hkSymbol: db 0 , 0
setTextForHotKey:
push eax
mov al , byte [ hkSymbol ]
cmp al , 0
jne @ f
mov edx , hkHint
mov dword [ hkSize ], 5 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> SPACE ;shift
jmp setTextForHotKey.end
@ @ :
cmp al , 1
jne @ f
mov edx , hkAlt
mov dword [ hkSize ], 3
jmp setTextForHotKey.end
@ @ :
cmp al , 2
jne @ f
mov edx , hkShift
mov dword [ hkSize ], 5
jmp setTextForHotKey.end
@ @ :
cmp al , 3
jne @ f
mov edx , hkCtrl
mov dword [ hkSize ], 4
jmp setTextForHotKey.end
@ @ :
cmp al , 32
jne @ f
mov edx , hkSpace
mov dword [ hkSize ], 5
jmp setTextForHotKey.end
@ @ :
cmp al , 96 ;'`'
je setTextForHotKey.symb
cmp al , 126 ;'~'
je setTextForHotKey.symb
cmp al , 48 ;'0'
jb @ f
cmp al , 57 ;'9'
ja @ f
.symb:
mov edx , hkSymbol
mov dword [ hkSize ], 1
jmp setTextForHotKey.end
@ @ :
cmp al , 97 ;'a'
jb @ f
cmp al , 122 ;'z'
ja @ f
;jmp setTextForHotKey.symb
mov edx , hkSymbol
mov dword [ hkSize ], 1
jmp setTextForHotKey.end
@ @ :
cmp al , 65 ;'A'
jb @ f
cmp al , 90 ;'Z'
ja @ f
;jmp setTextForHotKey.symb
mov edx , hkSymbol
mov dword [ hkSize ], 1
jmp setTextForHotKey.end
@ @ :
mov word [ hkSymbol ], 0 ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> -<2D> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
mov edx , hkHint
mov dword [ hkSize ], 5 ;shift or space - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.end:
pop eax
ret
2018-09-18 04:52:36 +02:00
2018-10-09 17:03:03 +02:00
setTextModeMenu:
cmp byte [ mode ], 48
jne @ f
mov edx , valueModeMenu0
ret
@ @ :
cmp byte [ mode ], 49
jne @ f
mov edx , valueModeMenu1
ret
@ @ :
cmp byte [ mode ], 50
jne @ f
mov edx , valueModeMenu2
ret
@ @ :
cmp byte [ mode ], 51
jne @ f
mov edx , valueModeMenu3
ret
@ @ :
mov edx , valueModeMenu1
ret
2018-09-19 01:38:30 +02:00
2018-09-18 04:52:36 +02:00
2018-10-14 04:39:53 +02:00
saveKey:
cmp word [ hkSymbol ], 0
je .default
cmp byte [ hkSymbol ], 1
je .alt
cmp byte [ hkSymbol ], 2
je .shift
cmp byte [ hkSymbol ], 3
je .ctrl
cmp byte [ hkSymbol ], 32
je .space
.other:
mov esi , hkSymbol
mov byte [ esi + 1 ], 0
mov dword [ hkSize ], 1
jmp .end
.space:
mov esi , hkSpace
mov dword [ hkSize ], 5
jmp .end
.ctrl:
mov esi , hkCtrl
mov dword [ hkSize ], 4
jmp .end
.alt:
mov esi , hkAlt
mov dword [ hkSize ], 3
jmp .end
.default:
.shift:
mov esi , hkShift
mov dword [ hkSize ], 5
.end:
mov ebx , hkSize ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> dword[hkSize]
call copyParam
ret
2018-09-22 01:46:18 +02:00
align 16
@ IMPORT:
library box_lib , 'box_lib.obj'
import box_lib , \
edit_box_draw , 'edit_box' , \
edit_box_key , 'edit_box_key' , \
edit_box_mouse , 'edit_box_mouse' , \
init_checkbox , 'init_checkbox2' , \
check_box_draw , 'check_box_draw2' , \
check_box_mouse , 'check_box_mouse2' , \
option_box_draw , 'option_box_draw' , \
option_box_mouse , 'option_box_mouse'
2018-10-05 20:58:13 +02:00
common ButtonText db '...' , 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> OpenDial
common ButtonTextSize = 3
2018-09-19 01:38:30 +02:00
if lang eq ru ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
text db "<22> <> <EFBFBD> 䨣<EFBFBD> <E4A8A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Hot Angles <20> ⢥砥<E2A2A5> <20> <> <20> <> <EFBFBD> <EFBFBD> ன<EFBFBD> <E0AEA9> <20> <> ⨢<EFBFBD> <E2A8A2> <EFBFBD> 㣫<> <E3A3AB> . "
2018-10-16 05:28:51 +02:00
db "<22> <> <EFBFBD> <EFBFBD> ன<EFBFBD> <E0AEA9> <20> <> ࠬ<EFBFBD> <E0A0AC> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ᥡ<> <20> <> <EFBFBD> <20> ⪫<EFBFBD> <E2AAAB> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> . " , 0
; db " ", 0
2018-09-19 01:38:30 +02:00
hed:
title db "<22> <> <EFBFBD> 䨣<EFBFBD> <E4A8A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⨫<EFBFBD> <E2A8AB> <EFBFBD> Hot Angles" , 0
buttonText db "<22> ਬ<EFBFBD> <E0A8AC> <EFBFBD> <EFBFBD> <EFBFBD> " , 0
buttonTextSize = 9
buttonTextXoffset = 12
2018-09-22 01:46:18 +02:00
ch_text db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> /<2F> <> ⨢<EFBFBD> <EFBFBD> <E0AEA2> <EFBFBD> "Hot Angles"' , 0
2018-09-19 01:38:30 +02:00
superText:
.lu db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 孥<EFBFBD> <E5ADA5> 㣫<> : ' , 0
.ld db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 㣫<> : ' , 0
.ru db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <20> <> <EFBFBD> 孥<EFBFBD> <E5ADA5> 㣫<> :' , 0
.rd db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 㣫<> : ' , 0
superTextSize = 30
2018-10-09 17:03:03 +02:00
valueModeMenuSize = 32
ModeMenu db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> ࠡ<> <E0A0A1> <EFBFBD> :' , 0
valueModeMenu0 db '<27> ⪫<EFBFBD> 祭<EFBFBD> ' , 0
valueModeMenu1 db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᪨<EFBFBD> ० <> <E0A5A6> ' , 0
valueModeMenu2 db '० <> <E0A5A6> <20> <> <EFBFBD> <EFBFBD> 祩 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ' , 0
valueModeMenu3 db '० <> <E0A5A6> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ⨢<EFBFBD> 樨' , 0
2018-10-10 20:01:49 +02:00
head_f_i:
head_f_l db '<27> <> <EFBFBD> ⥬<EFBFBD> <E2A5AC> <EFBFBD> <20> 訡<EFBFBD> <E8A8A1> ' , 0
err_message_found_lib0 db '<27> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> ' , 39 , 'proc_lib.obj' , 39 , 0
err_message_import0 db '<27> 訡<EFBFBD> <E8A8A1> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> ' , 39 , 'proc_lib.obj' , 39 , 0
err_message_found_lib1 db '<27> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> ' , 39 , 'kmenu.obj' , 39 , 0
err_message_import1 db '<27> 訡<EFBFBD> <E8A8A1> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> ' , 39 , 'kmenu' , 39 , 0
2018-10-14 04:39:53 +02:00
hkCaption: db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :' , 0
radiusCaption: db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :' , 0
2018-09-19 01:38:30 +02:00
else ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
text db "This is a Hot Angles Configurator. "
2018-10-16 05:28:51 +02:00
db "Set the parameters bellow for yourself or disable this option." , 0
; db " ", 0
2018-09-19 01:38:30 +02:00
hed:
title db "Hot Angles Configurator" , 0
buttonText db "Apply" , 0
buttonTextSize = 5
buttonTextXoffset = 0
2018-09-22 01:46:18 +02:00
ch_text db 'Activate "Hot Angles"' , 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-18 04:52:36 +02:00
superText:
2018-09-19 01:38:30 +02:00
.lu db 'Left up angle command: ' , 0
.ld db 'Left down angle command: ' , 0
.ru db 'Right up angle command: ' , 0
2018-09-18 04:52:36 +02:00
.rd db 'Right down angle command:' , 0
2018-09-19 01:38:30 +02:00
superTextSize = 25
2018-10-09 17:03:03 +02:00
valueModeMenuSize = 32
ModeMenu db 'Mode:' , 0
valueModeMenu0 db 'disabled ' , 0
valueModeMenu1 db 'classic mode ' , 0
valueModeMenu2 db 'hot key mode ' , 0
valueModeMenu3 db 'activation key gesture mode ' , 0
2018-10-10 20:01:49 +02:00
head_f_i:
head_f_l db 'System error' , 0
err_message_found_lib0 db 'Could not find library ' , 39 , 'proc_lib.obj' , 39 , 0
err_message_import0 db 'Error importing library ' , 39 , 'proc_lib.obj' , 39 , 0
err_message_found_lib1 db 'Could not find library ' , 39 , 'kmenu.obj' , 39 , 0
err_message_import1 db 'Error importing library ' , 39 , 'kmenu' , 39 , 0
2018-10-14 04:39:53 +02:00
hkCaption: db 'Key:' , 0
radiusCaption: db 'Radius:' , 0
2018-09-19 01:38:30 +02:00
end if
2018-10-14 04:39:53 +02:00
hkAlt: db 'Alt' , 0
hkShift: db 'Shift' , 0
hkCtrl: db 'Ctrl' , 0
hkSpace: db 'Space' , 0
hkHint: db '?' , 0
hkSize: rd 1 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-18 04:52:36 +02:00
draw_super_text:
push eax ebx ecx edx edi esi
2018-10-14 04:39:53 +02:00
2018-10-16 05:28:51 +02:00
; mov ecx, 0
; mov ch, byte[mysize]
; shl ecx, 16
; add ecx, 0x224466
mov ecx , 0x224466
call setNewSizeForText
;and ecx, 0x7FFFFFFF
or ecx , 0x80000000
;mov ebx, Otstup * 65536 + 74 ; draw info text with function 4 (x, y)
mov bx , Otstup
shl ebx , 16
mov bx , word [ elem.textHeight ]
add bx , word [ elem.textDelta ]
shl bx , 2
sub bx , word [ elem.textHeight ]
add bx , BaseY
2018-10-14 04:39:53 +02:00
;mov ecx, 0x224466
2018-09-18 04:52:36 +02:00
mov eax , superText.lu
mov edx , eax
2018-09-23 08:23:29 +02:00
mov esi , superTextSize
2018-09-18 04:52:36 +02:00
mcall 4
2018-10-16 05:28:51 +02:00
;mov ebx, Otstup * 65536 + 109 ;9+2+14+(9+1)
add bx , word [ elem.textHeight ]
add bx , 4 ;3
add bx , word [ elem.butDialHeight ]
add bx , word [ elem.textHeight ]
2018-09-18 04:52:36 +02:00
mov edx , superText.ld
2018-09-23 08:23:29 +02:00
mov esi , superTextSize
2018-09-18 04:52:36 +02:00
mcall 4
2018-10-16 05:28:51 +02:00
;mov ebx, 240 * 65536 + 74
mov bx , word [ elem.winWidth ]
sub bx , word [ elem.butDialWidth ]
sub bx , word [ elem.editCommandWidth ]
sub bx , Otstup
shl ebx , 16
mov bx , word [ elem.textHeight ]
add bx , word [ elem.textDelta ]
shl bx , 2
sub bx , word [ elem.textHeight ]
add bx , BaseY
2018-09-18 04:52:36 +02:00
mov edx , superText.ru
2018-09-23 08:23:29 +02:00
mov esi , superTextSize
2018-09-18 04:52:36 +02:00
mcall 4
2018-10-16 05:28:51 +02:00
;mov ebx, 240 * 65536 + 109
add bx , word [ elem.textHeight ]
add bx , 4 ;3;2
add bx , word [ elem.butDialHeight ]
add bx , word [ elem.textHeight ]
2018-09-18 04:52:36 +02:00
mov edx , superText.rd
2018-09-23 08:23:29 +02:00
mov esi , superTextSize
2018-09-18 04:52:36 +02:00
mcall 4
2018-10-16 05:28:51 +02:00
;mov ebx, Otstup * 65536 + (buttonModeY-11)
mov ebx , Otstup
shl ebx , 16
add bx , word [ elem.butModeY ]
sub bx , 2
sub bx , word [ elem.textHeight ]
2018-10-09 17:03:03 +02:00
or ecx , 0x80000000
mov edx , ModeMenu
mov esi , 3
mcall 4
2018-09-18 04:52:36 +02:00
pop esi edi edx ecx ebx eax
ret
2018-10-05 20:58:13 +02:00
editID db 0
initEBX:
cmp byte [ edi tID ], 4
jne @ f
mov ebx , dataBuffer.1
ret
@ @ :
cmp byte [ edi tID ], 5
jne @ f
mov ebx , dataBuffer.2
ret
@ @ :
cmp byte [ edi tID ], 6
jne @ f
mov ebx , dataBuffer.3
ret
@ @ :
cmp byte [ edi tID ], 7
jne @ f
mov ebx , dataBuffer.4
ret
@ @ :
ret
setRESULT:
cmp byte [ edi tID ], 4
jne @ f
mov dword [ dataBuffer.size1 ], ecx
mov dword [ edi tLU.size ], ecx
mov dword [ edi tLU.pos ], ecx
ret
@ @ :
cmp byte [ edi tID ], 5
jne @ f
mov dword [ dataBuffer.size2 ], ecx
mov dword [ edi tLD.size ], ecx
mov dword [ edi tLD.pos ], ecx
ret
@ @ :
cmp byte [ edi tID ], 6
jne @ f
mov dword [ dataBuffer.size3 ], ecx
mov dword [ edi tRU.size ], ecx
mov dword [ edi tRU.pos ], ecx
ret
@ @ :
cmp byte [ edi tID ], 7
jne @ f
mov dword [ dataBuffer.size4 ], ecx
mov dword [ edi tRD.size ], ecx
mov dword [ edi tRD.pos ], ecx
ret
@ @ :
ret
copyPath:
push eax ebx ecx edx ;copy file name path
mov eax , openfile_path ;dword[OpenDialog_data.openfile_path]
call initEBX ;mov ebx, dataBuffer.1 ;.data
mov ecx , 0
@ @ :
mov dl , byte [ eax ]
cmp dl , 0 ;byte[eax], 0
je @ f
mov byte [ ebx ], dl
inc eax
inc ebx
inc ecx
jmp @ b
@ @ :
mov byte [ ebx ], 0
call setRESULT
pop edx ecx ebx eax
ret
2018-10-14 04:39:53 +02:00
IntToStr: ;in esi - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ; e<> x - <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
push eax ecx edx esi
cmp ecx , 0
jne @ f
mov byte [ esi ], 48 ; '0'
inc esi
jmp .end
@ @ :
mov eax , ecx
mov ecx , 10
.next:
mov edx , 0
div ecx
add edx , 48
mov byte [ esi ], dl
inc esi
cmp eax , 0
je .end
jmp .next
.end:
mov byte [ esi ], 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
pop esi edx ecx eax
call reverseString ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ret
;<3B> <> <EFBFBD> <EFBFBD> : esi - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
reverseString:
push eax esi edi
mov al , byte [ esi ] ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD>
cmp al , 0
je reverseString.end
mov edi , esi ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> edi
.go_last_symbol:
mov al , byte [ edi + 1 ]
cmp al , 0
je @ f
inc edi
jmp reverseString.go_last_symbol
@ @ :
push ebx
.rev:
cmp esi , edi
jae @ f
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
mov al , byte [ edi ]
mov bl , byte [ esi ]
mov byte [ edi ], bl
mov byte [ esi ], al
inc esi
dec edi
jmp reverseString.rev
@ @ :
pop ebx
.end:
pop edi esi eax
ret
2018-10-05 20:58:13 +02:00
align 4
but_open_dlg:
pushad
copy_path open_dialog_name , communication_area_default_path , file_name , 0
mov [ OpenDialog_data.type ], 0
stdcall [ OpenDialog_Start ], OpenDialog_data
cmp [ OpenDialog_data.status ], 2
je @ f
cmp [ OpenDialog_data.status ], 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Cancel?
je .end_open
;<3B> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
call copyPath
jmp .end_open
@ @ :
;<3B> <> <EFBFBD> <20> <> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;...
.end_open:
popad
ret
2018-10-10 20:01:49 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-05 20:58:13 +02:00
align 4
OpenDialog_data:
.type dd 0 ;0 - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , 1 - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , 2 - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.procinfo dd procinfo
.com_area_name dd communication_area_name ;+8
2018-10-09 17:03:03 +02:00
.com_area dd 0 ;+12
2018-10-05 20:58:13 +02:00
.opendir_path dd plugin_path ;+16
.dir_default_path dd default_dir ;+20
2018-10-09 17:03:03 +02:00
.start_path dd file_name ;+24 <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-05 20:58:13 +02:00
.draw_window dd draw_window ;+28
2018-10-09 17:03:03 +02:00
.status dd 0 ;+32
2018-10-05 20:58:13 +02:00
.openfile_path dd openfile_path ;+36 <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
.filename_area dd filename_area ;+40
.filter_area dd Filter
.x:
.x_size dw 420 ;+48 ; Window X size
2018-10-09 17:03:03 +02:00
.x_start dw 10 ;+50 ; Window X position
2018-10-05 20:58:13 +02:00
.y:
.y_size dw 320 ;+52 ; Window y size
2018-10-09 17:03:03 +02:00
.y_start dw 10 ;+54 ; Window Y position
2018-10-05 20:58:13 +02:00
default_dir db '/rd/1' , 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
communication_area_name: db 'FFFFFFFF_open_dialog' , 0
open_dialog_name: db 'opendial' , 0
communication_area_default_path: db '/rd/1/File managers/' , 0
Filter:
dd Filter.end - Filter.1
.1:
;db 'KEX',0
.end:
db 0
2018-10-09 17:03:03 +02:00
mode db 49 ;'1'
modeMenu dd 0
coordModeMenu:
.x dw 100
.y dw 200
2018-10-05 20:58:13 +02:00
align 4
proclib_import: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
OpenDialog_Init dd aOpenDialog_Init
OpenDialog_Start dd aOpenDialog_Start
dd 0 , 0
aOpenDialog_Init db 'OpenDialog_init' , 0
aOpenDialog_Start db 'OpenDialog_start' , 0
system_dir0 db '/sys/lib/'
lib0_name db 'proc_lib.obj' , 0
2018-10-09 17:03:03 +02:00
lib1_name db 'kmenu.obj' , 0
2018-10-10 20:01:49 +02:00
symbolDownArrow db 25 , 0
2018-10-05 20:58:13 +02:00
;library structures
l_libs_start:
2018-10-09 17:03:03 +02:00
lib0 l_libs lib0_name , sys_path , file_name , system_dir0 , err_message_found_lib0 , head_f_l , proclib_import , err_message_import0 , head_f_i
lib1 l_libs lib1_name , sys_path , file_name , system_dir0 , err_message_found_lib1 , head_f_l , import_libkmenu , err_message_import1 , head_f_i
2018-10-05 20:58:13 +02:00
load_lib_end:
2018-10-10 20:01:49 +02:00
2018-10-05 20:58:13 +02:00
2018-09-22 01:46:18 +02:00
edMaxSize = 510 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 511 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-09-18 04:52:36 +02:00
edMax = 0 ;max, size, pos
2018-09-22 01:46:18 +02:00
align 4
2018-10-05 20:58:13 +02:00
editLU edi t_box 180 - buttonW , Otstup + buttonW , 85 , 0xffffff , 0x6a9480 , 0 , 0xAABBCC , 0 , edMaxSize , dataBuffer.1 , mouse_dd , 0 , edMax , edMax ;ed_focus
editLD edi t_box 180 - buttonW , Otstup + buttonW , 120 , 0xffffff , 0x6a9480 , 0 , 0xAABBCC , 0 , edMaxSize , dataBuffer.2 , mouse_dd , 0 , edMax , edMax
editRU edi t_box 180 - buttonW , 240 , 85 , 0xffffff , 0x6a9480 , 0 , 0xAABBCC , 0 , edMaxSize , dataBuffer.3 , mouse_dd , 0 , edMax , edMax
editRD edi t_box 180 - buttonW , 240 , 120 , 0xffffff , 0x6a9480 , 0 , 0xAABBCC , 0 , edMaxSize , dataBuffer.4 , mouse_dd , 0 , edMax , edMax
2018-10-14 04:39:53 +02:00
editRadius edi t_box 40 ,( buttonHotKeyX + buttonHotKeyWidth + 20 ), buttonModeY , 0xffffff , 0x6a9480 , 0 , 0xAABBCC , 0 , 4 , radiusBuffer.data , mouse_dd , ed_figure_only , edMax , edMax
2018-10-05 20:58:13 +02:00
2018-10-09 17:03:03 +02:00
align 4
import_libkmenu:
kmenu_init dd akmenu_init
kmainmenu_draw dd akmainmenu_draw
kmainmenu_dispatch_cursorevent dd akmainmenu_dispatch_cursorevent
ksubmenu_new dd aksubmenu_new
ksubmenu_delete dd aksubmenu_delete
ksubmenu_draw dd aksubmenu_draw
ksubmenu_add dd aksubmenu_add
kmenuitem_new dd akmenuitem_new
kmenuitem_delete dd akmenuitem_delete
kmenuitem_draw dd akmenuitem_draw
dd 0 , 0
akmenu_init db 'kmenu_init' , 0
akmainmenu_draw db 'kmainmenu_draw' , 0
akmainmenu_dispatch_cursorevent db 'kmainmenu_dispatch_cursorevent' , 0
aksubmenu_new db 'ksubmenu_new' , 0
aksubmenu_delete db 'ksubmenu_delete' , 0
aksubmenu_draw db 'ksubmenu_draw' , 0
aksubmenu_add db 'ksubmenu_add' , 0
akmenuitem_new db 'kmenuitem_new' , 0
akmenuitem_delete db 'kmenuitem_delete' , 0
akmenuitem_draw db 'kmenuitem_draw' , 0
2018-10-05 20:58:13 +02:00
sc system_colors
2018-10-14 04:39:53 +02:00
mouse_dd rd 1
sizeStyle: rb 1 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
mysize: rb 1 ;rd 1
radiusBuffer: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
.data: rb 6
.size: rd 1
radiusBufferEnd:
2018-09-22 01:46:18 +02:00
2018-10-09 17:03:03 +02:00
button_press rd 0 ;for kmenu
sys_path: rb 4096
file_name: rb 4096
plugin_path: rb 4096
openfile_path: rb 4096
filename_area: rb 256
rb 1024
procinfo process_information
pi rb 1024
2018-10-14 04:39:53 +02:00
keyscan: rb 1
keystr:
.data: rb 4 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.size: rd 1 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2018-10-09 17:03:03 +02:00
2018-09-18 04:52:36 +02:00
dataBuffer:
.1: rb 512
.2: rb 512
.3: rb 512
.4: rb 512
.size1: rd 1
.size2: rd 1
.size3: rd 1
.size4: rd 1
2018-10-10 20:01:49 +02:00
;255+255+2 = 512
2018-09-18 04:52:36 +02:00
;<3B> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 0
dataBufferEnd:
I_END:
2018-10-16 05:28:51 +02:00
rb 256 ;1024 ;4096
align 4 ;16
2018-09-18 04:52:36 +02:00
STACKTOP:
MEM: