Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 382 → Rev 383

/programs/develop/examples/template/trunk/build_en.bat
1,4 → 1,5
@erase lang.inc
@echo lang fix en >lang.inc
@fasm template.asm template
@erase lang.inc
@pause
/programs/develop/examples/template/trunk/build_fr.bat
0,0 → 1,5
@erase lang.inc
@echo lang fix fr >lang.inc
@fasm template.asm template
@erase lang.inc
@pause
/programs/develop/examples/template/trunk/build_ru.bat
1,4 → 1,5
@erase lang.inc
@echo lang fix ru >lang.inc
@fasm template.asm template
@erase lang.inc
@pause
/programs/develop/examples/template/trunk/macros.inc
123,8 → 123,10
end if
}
 
macro __mov reg,a { ; mike.dld
if ~a eq
macro __mov reg,a,b { ; mike.dld
if (~a eq)&(~b eq)
mpack reg,a,b
else if (~a eq)&(b eq)
mov reg,a
end if
}
141,11 → 143,6
 
 
 
; language for programs
lang fix ru ; ru en fr ge fi
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
177,7 → 174,7
 
macro mov arg1,arg2
{
if (arg1 in __regs) & (arg2 eqtype 0)
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
221,7 → 218,13
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
rb (1024-52)
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
}
struct process_information
 
/programs/develop/examples/template/trunk/template.asm
1,12 → 1,12
; <--- description --->
; compiler: FASM 1.50
; name: Basic window example for MenuetOS
; version: 1.01
; last update: 25/08/2004
; compiler: FASM 1.67
; name: Basic window example for KolibriOS
; version: 1.02
; last update: 1/03/2007
; written by: Ivan Poddubny
; e-mail: ivan-yar@bk.ru
;modified by: Heavyiron
 
 
; <--- include all MeOS stuff --->
include "lang.inc"
include "macros.inc"
18,36 → 18,28
 
; <--- start of code --->
CODE
call draw_window ; at first create and draw the window
 
wait_event: ; main cycle
mov eax, 10
mov eax,48 ; get system colors
mov ebx,3
mov ecx,sc
mov edx,sizeof.system_colors
int 0x40
 
cmp eax, 1 ; if event == 1
je redraw ; jump to redraw handler
cmp eax, 2 ; else if event == 2
je key ; jump to key handler
cmp eax, 3 ; else if event == 3
je button ; jump to button handler
 
jmp wait_event ; else return to the start of main cycle
 
 
redraw: ; redraw event handler
call draw_window
jmp wait_event
call draw_window ; at first create and draw the window
 
 
key: ; key event handler
mov eax, 2 ; get key code
wait_event: ; main cycle
mov eax, 10
int 0x40
 
jmp wait_event
dec eax ; if event = 1
jz redraw ; jump to redraw handler
dec eax ; else if event = 2
jz key ; jump to key handler
 
 
button: ; button event handler
mov eax, 17 ; get button identifier
mov al, 17 ; get button identifier
int 0x40
 
cmp ah, 1
56,27 → 48,25
or eax, -1 ; exit application
int 0x40
 
key: ; key event handler
mov al, 2 ; get key code
int 0x40
 
jmp wait_event
 
draw_window:
mov eax, 12 ; start drawing
mov ebx, 1
int 0x40
 
mov eax, 0 ; create and draw the window
mov ebx, 100*65536+300 ; (window_cx)*65536+(window_sx)
mov ecx, 100*65536+200 ; (window_cy)*65536+(window_sy)
mov edx, 0x03ffffff ; work area color & window type 3
; mov esi, 0 ; grab color (not used)
; mov edi, 0 ; frame color (not used)
xor eax, eax ; create and draw the window
mov ebx, 100*65536+200 ; (window_cx)*65536+(window_sx)
mov ecx, 100*65536+100 ; (window_cy)*65536+(window_sy)
mov edx, [sc.work] ; work area color
or edx, 0x33000000 ; & window type 3
mov edi, header ; window header
int 0x40
 
mov eax, 4 ; window header
mov ebx, 8*65536+8 ; coordinates
mov ecx, 0x10ffffff ; color & font N1
mov edx, header ; address of text
mov esi, header.size ; length of text
int 0x40
 
mov eax, 12 ; finish drawing
mov ebx, 2
int 0x40
83,20 → 73,20
 
ret
 
 
 
; <--- initialised data --->
DATA
lsz header,\
ru, "˜ ¡«®­ ¯à®£à ¬¬ë",\
en, "Template program",\
fr, "La programme poncive"
 
if lang eq ru
header db '˜ ¡«®­ ¯à®£à ¬¬ë',0
else if lang eq fr
header db 'La programme poncive',0
else
header db 'Template program',0
end if
 
 
; <--- uninitialised data --->
UDATA
sc system_colors
 
 
MEOS_APP_END
; <--- end of MenuetOS application --->