1
0
kolibrios/programs/system/rb/trunk/@RB.ASM

394 lines
11 KiB
NASM
Raw Normal View History

;
; DESKTOP CONTEXT MENU
; written by Ivan Poddubny
;
; <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E3A1AD>
; e-mail: ivan-yar@bk.ru
;
; Compile with flat assembler
;
;------------------------------------------------------------------------------
; version: 1.1
; last update: 27/03/2012
; changed by: Marat Zakiyanov aka Mario79, aka Mario
; changes: The program uses only 3404 bytes memory is now.
; Optimisations and code refactoring.
;------------------------------------------------------------------------------
include 'lang.inc'
include '..\..\..\macros.inc'
;------------------------------------------------------------------------------
use32
org 0x0
db 'MENUET01' ; 8 byte id
dd 0x01 ; header version
dd START ; start of code
dd IM_END ; size of image
dd I_END ; memory for app
dd stack_area ; esp
dd 0 ; boot parameters
dd 0 ; path
;------------------------------------------------------------------------------
START:
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD><><E6A2A5>
mcall 48,3,sc,sizeof.system_colors
; <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><>⨩ - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD>
mcall 40,100000b
;------------------------------------------------------------------------------
align 4
still: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><EFBFBD><E1ADAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mcall 10 ; <20><><EFBFBD><EFBFBD><><E1AEA1><EFBFBD><EFBFBD>
mcall 37,2 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
cmp eax,ebx ; <20><20><> <20><EFBFBD><E0A0A2>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jne still
;--------------------------------------
; <20><><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E2ABA0><EFBFBD> - <20><20><><EFBFBD><EFBFBD> <20> <20><>窥 (0;0), <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD>
; xor ebx,ebx
; mcall 37
; test eax,eax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>窥 (0;0), <20>.<2E>. eax = 0
; je exit
;--------------------------------------
; <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
xor ebx,ebx
mcall 37
mov ebx,eax ; eax = cursor_x
shr eax,16 ; ebx = cursor_y
and ebx,0xffff
mov [curx1],eax ; curx1 = cursor_x
mov [cury1],ebx ; cury1 = cursor_y
; <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>窠?
mcall 34,[curx1],[cury1]
cmp al,1 ; 1 - <20><><EFBFBD><EFBFBD>
jne still
;--------------------------------------
align 4
@@: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><ECA7AE><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><20><EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mcall 37,2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>?
test eax,ebx ; <20><20><><EFBFBD><EFBFBD><EFBFBD>⨫, (eax != 2)
jz @f ; <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E6A8AA>
mcall 68,1 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AA><EFBFBD><E7A8AC> <20><><><E1ABA5><EFBFBD><20><><20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
jmp @b ; <20><EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0ADA5><EFBFBD> <20><EFBFBD> <20><><EFBFBD>, <20><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
;--------------------------------------
align 4
@@:
; <20>᫨ 㦥 <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD>:
cmp [menu_opened],0
je @f
mcall 68,1 ; <20><><EFBFBD><E0A5AA><EFBFBD><E7A8AC> <20><><><E1ABA5><EFBFBD><20><><20><><EFBFBD><EFBFBD>
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><>䥪⨢<E4A5AA><E2A8A2><EFBFBD> ᯮᮡ <20><><EFBFBD><EFBFBD><EFBFBD> 祬 mcall 5
jmp @b
;--------------------------------------
align 4
@@:
; <20><><E2A5AF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><><E1ACA5> <20><><EFBFBD><EFBFBD><EFBFBD><E1AAA0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>⮪) <20><><EFBFBD><EFBFBD>
mcall 51,1,start_wnd,stack_wnd
jmp still
;------------------------------------------------------------------------------
align 4
exit_menu: ; <20><20><><EFBFBD><E5AEA4> <20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> [menu_opened] 0
mov [menu_opened],0
;--------------------------------------
align 4
exit: ; <20><20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E5AEA4> <20><> <20><EFBFBD><E1ADAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
or eax,-1 ; eax = -1
mcall
;------------------------------------------------------------------------------
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
;------------------------------------------------------------------------------
align 4
start_wnd:
mov [menu_opened],1
; <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>⨩: <20><><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2>
mcall 40,100101b
;------------------------------------------------------------------------------
align 4
red:
call draw_window
;------------------------------------------------------------------------------
align 4
still2: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mcall 10 ; <20><><EFBFBD><EFBFBD><><E1AEA1><EFBFBD><EFBFBD>
cmp eax,1 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2>?
je red
cmp eax,3 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
je button
cmp eax,6 ; <20><><EFBFBD><EFBFBD>?
je mouse
jmp still2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E6A8AA>
;------------------------------------------------------------------------------
align 4
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mouse: ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><ECA7AE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><E0AEA5><EFBFBD>
mcall 37,2 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
test eax,eax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? - ⮣<><E2AEA3> <20><EFBFBD><E0A5AA>᭮! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>
jz still2
mcall 37,0
mov esi, eax
shr esi, 16
movzx edi, ax
mcall 9, procinfo, -1
mov eax, [procinfo.box.left]
cmp esi, eax
jl exit_menu
add eax, [procinfo.box.width]
cmp esi, eax
jge exit_menu
mov eax, [procinfo.box.top]
cmp edi, eax
jl exit_menu
add eax, [procinfo.box.height]
cmp edi, eax
jge exit_menu
jmp still2
;------------------------------------------------------------------------------
align 4
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
button:
mcall 17 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sub ah,10 ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 10
jl nofuncbtns ; <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD>
movzx ebx,ah ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20> ᯨ᪥ <20> ebx
mov esi,[startapps + ebx*4]
mov edi,start_info.path
cld
;--------------------------------------
align 4
@@:
lodsb
stosb
test al,al
jnz @b
mcall 70, start_info
; mov eax,5 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; mov ebx,1 ; <20> <20><> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> (<28><><EFBFBD> <20> <20><><EFBFBD><EFBFBD>???)
; mcall ; <20><><EFBFBD><E1AAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>, <20><20> <20><><EFBFBD> <20><EFBFBD><E0AEA1><EFBFBD><EFBFBD>
; <20> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD>
;--------------------------------------
align 4
nofuncbtns: ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD>
jmp exit_menu
;------------------------------------------------------------------------------
_BTNS_ = 6 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ("<22>㭪⮢ <20><><EFBFBD><EFBFBD>")
if lang eq ru
font = 0x00000000
string_length = 20 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
wnd_x_size = 133 ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
title_pos = 36 shl 16 + 7
else
font = 0x10000000
string_length = 12 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
wnd_x_size = 105 ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
title_pos = 23 shl 16 + 7
end if
;------------------------------------------------------------------------------
;*******************************
;******** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ********
;*******************************
draw_window:
mcall 12,1 ; <20><><EFBFBD><E7A8AD><EFBFBD> "<22><><EFBFBD><E1AEA2><EFBFBD>"
mov eax,[curx1] ; ⥪<><20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov [curx],eax ; <20><><EFBFBD><EFBFBD><20> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov eax,[cury1]
mov [cury],eax
; ⥯<><E2A5AF><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><EFBFBD> <20><><EFBFBD> <20><> <20><20><><EFBFBD> <20><> <20><EFBFBD><EBABA5><EFBFBD>
mcall 14 ; <20><><EFBFBD><EFBFBD>稬 ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD>
mov ebx,eax
shr eax,16 ; <20> eax - x_screen
and ebx,0xffff ; <20> ebx - y_screen
add eax,-wnd_x_size ; eax = [x_screen - <20><><EFBFBD> <20><><EFBFBD><EFBFBD>]
add ebx,-_BTNS_*15-21 ; ebx = [y_screen - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>]
cmp eax,[curx]
jg .okx ; <20><20><><EFBFBD><EFBFBD> ᫨誮<E1ABA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><E0A0A2><EFBFBD> <20><><EFBFBD><EFBFBD>,
add [curx],-wnd_x_size ; ᤢ<><E1A4A2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> 100
;--------------------------------------
align 4
.okx:
cmp ebx, [cury]
jg .oky ; <20><> <20><><EFBFBD><EFBFBD><E2A8AA><EFBFBD> <20><>筮 ⠪<><E2A0AA>
add [cury], -_BTNS_*15-21
;--------------------------------------
align 4
.oky:
xor eax, eax ; <20><EFBFBD><E3ADAA><EFBFBD> 0 - ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov ebx, [curx] ; ebx = [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x] shl 16 + [<5B><><EFBFBD>]
shl ebx, 16
add ebx, wnd_x_size
mov ecx, [cury] ; ecx = [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y] shl 16 + [<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
shl ecx, 16
add ecx, _BTNS_*15+21
mov edx, [sc.work] ; 梥<><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov esi, [sc.grab] ; 梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
or esi, 0x81000000
mov edi, [sc.frame] ; 梥<><><E0A0AC>
mcall
mov eax, 4 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx, title_pos ; [x] shl 16 + [y]
mov ecx, [sc.grab_text]; <20><><EFBFBD><EFBFBD><EFBFBD> <20><> (<28><><EFBFBD><EFBFBD><EFBFBD>)
or ecx, 0x10000000
push ecx
push ecx
xor edx,edx
;--------------------------------------
align 4
.dec_color:
sub byte [esp+edx], 0x33
jae @f
mov byte [esp+edx], 0
;--------------------------------------
align 4
@@:
inc edx
jnp .dec_color
pop ecx
mov edx, title ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov esi, title.size ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ("M E N U")
mcall
pop ecx
add ebx, 1 shl 16 ; ᤢ<><E1A4A2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> 1
mcall
mov ebx, 1*65536+wnd_x_size-2 ; <20><><EFBFBD><E7A8AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ecx, 20*65536+15
mov edx, 10 or 0x40000000 ; <20><><EFBFBD> 30 <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> => <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov edi,_BTNS_ ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>稪)
;--------------------------------------
align 4
newbtn: ; <20><><EFBFBD><><E6A8AA>
mcall 8 ; ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <20><>襬 ⥪<><E2A5AA> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pushad ; ᯠᠥ<E1AFA0><><E0A5A3><EFBFBD><EFBFBD><EFBFBD>
shr ecx, 16
and ebx, 0xffff0000
add ebx, ecx ; ebx = [x] shl 16 + [y];
add ebx, 10*65536+4 ; ebx += ᬥ饭<E1ACA5><E9A5AD> <20><EFBFBD><E2ADAE>⥫쭮 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mov ecx, [sc.work_text] ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><>
or ecx, font
add edx, -10 ; edx = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
imul edx, string_length ; edx *= <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>;
add edx, text ; edx += text; ⥯<><E2A5AF><EFBFBD> <20> edx <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
mov esi, string_length ; <20> esi - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
mcall 4
popad
inc edx ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>++;
add ecx,15*65536 ; 㢥<><E3A2A5>稬 ᬥ饭<E1ACA5><E9A5AD> <20><> y
dec edi ; 㬥<><E3ACA5><20><><EFBFBD><EFBFBD>
jnz newbtn ; <20><20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD> <20><><EFBFBD>
mcall 12,2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><E1AEA2><EFBFBD>"
ret ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;------------------------------------------------------------------------------
align 4
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
macro strtbl name, [string]
{
common
label name dword
forward
local str
dd str
forward
str db string
}
strtbl startapps ,\
<"/sys/PIC4",0> ,\
<"/sys/DESKTOP",0> ,\
<"/sys/ICON",0>,\
<"/sys/SETUP",0> ,\
<"/sys/DEVELOP/BOARD",0> ,\
<"/sys/CPU",0>
sz title, "KolibriOS"
lsz text,\
en, 'Background ',\
en, 'Desktop ',\
en, 'Icon manager',\
en, 'Device setup',\
en, 'Debug board ',\
en, 'Processes ',\
\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ',\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><E0AEA9> <20><><EFBFBD><EFBFBD> ',\
ru, '<27><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><E0AEA9> <20><><EFBFBD><EFBFBD><E0AEA9><EFBFBD> ',\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2ABA0><EFBFBD> ',\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',\
\
et, 'Taust ',\
et, 'T<><54>laud ',\
et, 'Ikooni hald.',\
et, 'Seadme hald.',\
et, 'Silumis aken',\
et, 'Protsessid '
;------------------------------------------------------------------------------
align 4
start_info:
.mode dd 7
dd 0
.params dd 0
dd 0
dd 0
db 0
dd start_info.path
;------------------------------------------------------------------------------
IM_END:
align 4
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
curx1 dd ? ; <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cury1 dd ?
curx dd ? ; <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
cury dd ?
menu_opened db ? ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>? (1-<2D><>, 0-<2D><><EFBFBD>)
;------------------------------------------------------------------------------
align 4
start_info.path rb 256
;------------------------------------------------------------------------------
align 4
sc system_colors ; <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD><><E6A2A5>
;------------------------------------------------------------------------------
align 4
procinfo process_information ; <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;------------------------------------------------------------------------------
align 4
rb 512 ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> - 墠<><E5A2A0><EFBFBD> <20> 1 <20><>
stack_wnd:
;------------------------------------------------------------------------------
align 4
rb 512
stack_area:
;------------------------------------------------------------------------------
I_END:
;------------------------------------------------------------------------------
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;------------------------------------------------------------------------------