forked from KolibriOS/kolibrios
672 lines
20 KiB
NASM
672 lines
20 KiB
NASM
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|||
|
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|||
|
; Compile with FASM
|
|||
|
; Version 0.1: Sep 18, 2018
|
|||
|
|
|||
|
; 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.
|
|||
|
; --------------------------------------------------------------------------------------
|
|||
|
|
|||
|
;P.S. <20><><EFBFBD> <20><><EFBFBD><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>)
|
|||
|
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>
|
|||
|
include '../../../macros.inc'
|
|||
|
include 'editbox.inc'
|
|||
|
use_edit_box
|
|||
|
include 'check.inc' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> check.inc
|
|||
|
version_ch1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> new <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> check_box1
|
|||
|
use_check_box ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
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>
|
|||
|
|
|||
|
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, sizeof.system_colors
|
|||
|
mcall
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
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>
|
|||
|
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.
|
|||
|
|
|||
|
mouse_edit_boxes editboxes,editboxes_end
|
|||
|
mouse_check_boxes check_boxes,check_boxes_end ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
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.
|
|||
|
key_edit_boxes editboxes,editboxes_end
|
|||
|
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
|
|||
|
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>"
|
|||
|
jne butend
|
|||
|
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>
|
|||
|
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>
|
|||
|
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
|
|||
|
defaultDataSize = 48+19
|
|||
|
|
|||
|
|
|||
|
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>
|
|||
|
.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>
|
|||
|
mov ecx, 5*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> 5 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 13, 10)
|
|||
|
add ecx, dword[editLU.size] ;dataBuffer.size1] ;<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[editLD.size] ;dataBuffer.size2]
|
|||
|
add ecx, dword[editRU.size] ;dataBuffer.size3]
|
|||
|
add ecx, dword[editRD.size] ;dataBuffer.size4]
|
|||
|
;<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>:
|
|||
|
mov byte[eax], 110; 'n' ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
cmp word[ch1.flags], ch_flag_en ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> checkBox <20><><EFBFBD> <20><><EFBFBD>?
|
|||
|
jne applyButton.no
|
|||
|
mov byte[eax], 121 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'y'
|
|||
|
.no:
|
|||
|
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><>
|
|||
|
|
|||
|
mov esi, dataBuffer.1 ;editLU.text
|
|||
|
mov ebx, dataBuffer.size1 ;editLU.size
|
|||
|
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.2 ;editLD.text
|
|||
|
mov ebx, dataBuffer.size2 ;editLD.size
|
|||
|
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>
|
|||
|
|
|||
|
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>
|
|||
|
call restartHotAnglesApp ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @HOTANGLES
|
|||
|
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
|
|||
|
|
|||
|
|
|||
|
restartHotAnglesApp: ;!!!
|
|||
|
;<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
|
|||
|
jne restartHotAnglesApp.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>
|
|||
|
|
|||
|
;push eax ebx ecx
|
|||
|
mcall 18, 2, ecx ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
;pop ecx ebx eax
|
|||
|
|
|||
|
.next:
|
|||
|
inc ecx
|
|||
|
cmp ecx, dword[slotMax]
|
|||
|
ja @f
|
|||
|
jmp @b
|
|||
|
@@:
|
|||
|
pop edi esi ecx ebx eax
|
|||
|
|
|||
|
;<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
|
|||
|
;db 0
|
|||
|
;.name: dd HotAnglesAppName
|
|||
|
;HotAnglesAppName db '@HOTANGLES', 0
|
|||
|
|
|||
|
|
|||
|
UpdateEditsSizes:
|
|||
|
push eax
|
|||
|
mov eax, dword[editLU.size]
|
|||
|
mov dword[dataBuffer.size1], eax
|
|||
|
|
|||
|
mov eax, dword[editLD.size]
|
|||
|
mov dword[dataBuffer.size2], eax
|
|||
|
|
|||
|
mov eax, dword[editRU.size]
|
|||
|
mov dword[dataBuffer.size3], eax
|
|||
|
|
|||
|
mov eax, dword[editRD.size]
|
|||
|
mov dword[dataBuffer.size4], eax
|
|||
|
|
|||
|
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:
|
|||
|
cmp byte[eax], 121 ;'y' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> checkBox - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
jne loadConfig.no
|
|||
|
.yes:
|
|||
|
mov word[ch1.flags], ch_flag_en
|
|||
|
jmp loadConfig.chEnd
|
|||
|
.no:
|
|||
|
mov word[ch1.flags], 0
|
|||
|
.chEnd:
|
|||
|
;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>
|
|||
|
mov edi, dataBuffer.1 ;dword[dataBuffer.1]
|
|||
|
mov esi, dataBuffer.size1 ;dword[dataBuffer.size1]
|
|||
|
;ecx - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; mov ecx, 0 ;xor ecx, ecx
|
|||
|
.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>
|
|||
|
je loadConfig.block ;propusk ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
|||
|
cmp byte[eax], 13
|
|||
|
je loadConfig.block ;propusk
|
|||
|
|
|||
|
; <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
|
|||
|
; mov ecx, 0 ;xor ecx, ecx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
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>
|
|||
|
pop edx ecx ebx eax
|
|||
|
ret
|
|||
|
|
|||
|
|
|||
|
updateParams: ;max, size, pos
|
|||
|
push eax
|
|||
|
mov eax, dword[dataBuffer.size1]
|
|||
|
mov dword[editLU.size], eax
|
|||
|
mov dword[editLU.pos], eax
|
|||
|
|
|||
|
mov eax, dword[dataBuffer.size2]
|
|||
|
mov dword[editLD.size], eax
|
|||
|
mov dword[editLD.pos], eax
|
|||
|
|
|||
|
mov eax, dword[dataBuffer.size3]
|
|||
|
mov dword[editRU.size], eax
|
|||
|
mov dword[editRU.pos], eax
|
|||
|
|
|||
|
mov eax, dword[dataBuffer.size4]
|
|||
|
mov dword[editRD.size], eax
|
|||
|
mov dword[editRD.pos], eax
|
|||
|
pop eax
|
|||
|
ret
|
|||
|
|
|||
|
|
|||
|
|
|||
|
selfName db 'HACONFIG', 0 ;'@HOTANGLES',0
|
|||
|
selfNameSize = 8;9 ;<3B><> 11 byte
|
|||
|
;
|
|||
|
compareBytes:
|
|||
|
push edi esi ecx ebx
|
|||
|
mov eax, 0 ;xor eax, eax
|
|||
|
mov ecx, selfNameSize ;11 ;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
|
|||
|
;
|
|||
|
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
|
|||
|
|
|||
|
WindowsWidth = 450
|
|||
|
WindowsHeight = 195
|
|||
|
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
|
|||
|
|
|||
|
draw_window:
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
mov edx, 0x80000002
|
|||
|
mcall 8
|
|||
|
|
|||
|
mov eax, 12 ; function 12: tell os about windowdraw
|
|||
|
mov ebx, 1 ; 1, start of draw
|
|||
|
mcall
|
|||
|
|
|||
|
;<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>
|
|||
|
sub word[coord.x], WindowsWidth/2
|
|||
|
sub word[coord.y], WindowsHeight/2
|
|||
|
|
|||
|
mov eax, 0 ; function 0 : define and draw window
|
|||
|
mov ebx, 0 ;* 65536 + WindowsWidth ; [x start] *65536 + [x size]
|
|||
|
mov bx, word[coord.x]
|
|||
|
shl ebx, 16
|
|||
|
mov bx, WindowsWidth
|
|||
|
|
|||
|
mov ecx, 0
|
|||
|
mov cx, word[coord.y] ;* 65536 + WindowsHeight ; [y start] *65536 + [y size]
|
|||
|
shl ecx, 16
|
|||
|
mov cx, WindowsHeight
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
draw_check_boxes check_boxes,check_boxes_end ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
draw_edit_boxes editboxes,editboxes_end ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edit box'<27><>
|
|||
|
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> X, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov ecx, 160*65536 + 20 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Y, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov edx, 0x00000002 ;2 ;<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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov ebx, (WindowsWidth-80-Otstup+25) * 65536 + 166 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (x, y)
|
|||
|
mov ecx, 0xFFFFFF ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov edx, buttonText
|
|||
|
mov esi, 5 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mcall 4
|
|||
|
|
|||
|
call draw_super_text
|
|||
|
|
|||
|
LineLength = 62 ;42
|
|||
|
mov ebx, 40 * 65536 + 36 ; draw info text with function 4 (x, y)
|
|||
|
mov ecx, 0x224466
|
|||
|
mov edx, text
|
|||
|
mov esi, LineLength
|
|||
|
mov eax, 4
|
|||
|
|
|||
|
.newline: ; text from the DATA AREA
|
|||
|
mcall
|
|||
|
add ebx, 12
|
|||
|
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
|
|||
|
|
|||
|
|
|||
|
text db "This is a Hot Angles Configurator. "
|
|||
|
db "Set the parameters bellow for yourself or disable this option."
|
|||
|
db " ", 0
|
|||
|
hed:
|
|||
|
title db "Hot Angles Configurator", 0
|
|||
|
buttonText db "Apply", 0
|
|||
|
|
|||
|
align 4
|
|||
|
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|||
|
;DATA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> check_box1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>
|
|||
|
check_boxes:
|
|||
|
ch1 check_box1 30,160,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en
|
|||
|
check_boxes_end:
|
|||
|
|
|||
|
ch_text: ;<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><EFBFBD>
|
|||
|
.1 db 'Activate "Hot Angles"'
|
|||
|
.e1:
|
|||
|
|
|||
|
superText:
|
|||
|
.lu db 'Left up angle command:', 0
|
|||
|
.ld db 'Left down angle command:', 0
|
|||
|
.ru db "Right up angle command:", 0
|
|||
|
.rd db 'Right down angle command:', 0
|
|||
|
|
|||
|
draw_super_text:
|
|||
|
push eax ebx ecx edx edi esi
|
|||
|
mov ebx, Otstup * 65536 + 74 ; draw info text with function 4 (x, y)
|
|||
|
mov ecx, 0x224466
|
|||
|
mov eax, superText.lu
|
|||
|
mov edx, eax
|
|||
|
mov esi, 22
|
|||
|
mcall 4
|
|||
|
|
|||
|
mov ebx, Otstup * 65536 + 109
|
|||
|
mov edx, superText.ld
|
|||
|
mov esi, 24
|
|||
|
mcall 4
|
|||
|
|
|||
|
mov ebx, 240 * 65536 + 74
|
|||
|
mov edx, superText.ru
|
|||
|
mov esi, 23
|
|||
|
mcall 4
|
|||
|
|
|||
|
mov ebx, 240 * 65536 + 109
|
|||
|
mov edx, superText.rd
|
|||
|
mov esi, 25
|
|||
|
mcall 4
|
|||
|
|
|||
|
pop esi edi edx ecx ebx eax
|
|||
|
ret
|
|||
|
|
|||
|
|
|||
|
edMaxSize = 510
|
|||
|
edMax = 0 ;max, size, pos
|
|||
|
|
|||
|
editboxes:
|
|||
|
editLU edit_box 180,Otstup,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.1,ed_focus,edMax,edMax
|
|||
|
editLD edit_box 180,Otstup,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.2,ed_focus,edMax,edMax
|
|||
|
editRU edit_box 180,240,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.3,ed_focus,edMax,edMax
|
|||
|
editRD edit_box 180,240,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.4,ed_focus,edMax,edMax
|
|||
|
editboxes_end:
|
|||
|
|
|||
|
data_of_code dd 0
|
|||
|
mouse_flag dd 0x0
|
|||
|
|
|||
|
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
|
|||
|
;255+255+2
|
|||
|
;<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:
|
|||
|
|
|||
|
sc system_colors
|
|||
|
|
|||
|
I_END:
|
|||
|
rb 4096
|
|||
|
align 16
|
|||
|
STACKTOP:
|
|||
|
|
|||
|
MEM:
|