4,18 → 4,23 |
; <diamond> note that 'mov al,xx' is shorter than 'mov eax,xx' |
; and if we know that high 24 bits of eax are zero, we can use 1st form |
; the same about ebx,ecx,edx |
; |
; 15.02.2007 merge old END with new one (fron Veliant & Leency) by Heavyiron |
|
include "lang.inc" |
include "..\..\..\macros.inc" |
|
meos_app_start |
code |
|
draw: |
do_draw: |
|
mov eax,48 |
mov ebx,3 |
mov ecx,sc |
mov edx,sizeof.system_colors |
mcall |
|
mov al,12 ; eax=12 - tell os about redraw start |
mov ebx,1 |
mov bl,1 |
mcall |
|
mov al,14 ; eax=14 - get screen max x & max y |
22,39 → 27,73 |
mcall |
|
movzx ecx, ax |
shr eax, 16 |
|
shr eax,17 |
shl eax,16 |
lea ebx,[eax-110*10000h+220] |
|
shr ecx, 1 |
shr eax, 1 |
sub eax, 157 |
sub ecx, 100 |
mov ebx, eax |
shl ebx, 16 |
add ebx, 253 |
shl ecx, 16 |
add ecx, 154 |
sub ecx,50*10000h - 120 |
|
xor eax,eax ; define and draw window |
mov edx,0x41ffffff |
mov edx,[sc.work] |
mov esi,edx |
mov edi,edx |
mcall |
|
mov al, 7 |
mov ebx, background |
mov ecx, 254 shl 16 + 155 |
xor edx, edx |
mov edx,0x444444 |
mov al,13 |
mcall ,18 shl 16+90,29 shl 16+27 |
push ebx |
mcall ,121 shl 16+90 |
xchg ebx,[esp] |
mcall ,,63 shl 16+27 |
pop ebx |
mcall |
mcall ,179 shl 16+30,99 shl 16+15 |
|
|
xor edx,edx |
mov al,8 |
mcall ,58 shl 16 + 32,59 shl 16 + 34, 1 shl 30 + 1 |
inc edx |
mcall ,110 shl 16 + 32,54 shl 16 + 32 |
mcall ,15 shl 16+87,26 shl 16+24,,0xbb0055 |
inc edx |
mcall ,161 shl 16 + 32,59 shl 16 + 34 |
mcall ,118 shl 16+87,,,0xaaaa ;cccc |
inc edx |
mcall ,193 shl 16 + 43,125 shl 16 + 16, |
mcall ,15 shl 16+87,60 shl 16+24,,0x9900 |
inc edx |
mcall ,144 shl 16 + 43 |
mcall ,118 shl 16+87,,,0xaaaaaa ;cccccc |
inc edx |
mcall ,175 shl 16+30,95 shl 16+15,,[sc.work_button] |
|
mov al,4 ; 0x00000004 = write text |
mov ebx,75*65536+10 |
mov ecx,[sc.work_text] ; 8b window nro - RR GG BB color |
or ecx,0x90000000 |
mov edx,label1 ; pointer to text beginning |
mcall |
|
mov ebx,15*65536+101 |
mov edx,label4 |
mcall |
|
mov ecx,0x90eeeeee ; 8b window nro - RR GG BB color |
mov ebx,25*65536+30 |
mov edx,label2 ; pointer to text beginning |
mcall |
|
mov ebx,20*65536+64 |
mov edx,label3 |
mcall |
|
mov ebx,45*65536+41 |
mov edx,label5 |
mcall |
|
mov ebx,40*65536+75 |
mov edx,label6 |
mcall |
|
mov al,12 ;end of redraw |
mov ebx,2 |
mcall |
65,7 → 104,7 |
mcall |
|
dec eax |
jz draw |
jz do_draw |
dec eax |
jnz button |
key: |
87,10 → 126,10 |
mcall |
xchg al,ah |
dec eax |
jz power_off |
dec eax |
jz restart_kernel |
dec eax |
jz power_off |
dec eax |
jz restart |
dec eax |
jnz run_rdsave |
123,7 → 162,53 |
jmp still |
|
data |
background file 'back.raw' |
|
if lang eq ru |
label1: |
db ' è ¢ë¡®à:',0 |
label2: |
db '몫îç¨âì ¤à®',0 |
label3: |
db '¥à¥§ ¯ã᪠⬥ ',0 |
label4: |
db '®åà ¨âì áâனª¨',0 |
|
else if lang eq en |
label1: |
db ' SELECT:',0 |
label2: |
db 'POWER OFF KERNEL',0 |
label3: |
db ' RESTART CANCEL',0 |
label4: |
db 'Save settings',0 |
|
else if lang eq et |
label1: |
db ' VALI:',0 |
label2: |
db 'LÜLITA VÄLJA KERNEL',0 |
label3: |
db ' RESTART TÜHISTA',0 |
label4: |
db 'Save settings',0 |
|
else |
label1: |
db 'WAEHLEN:',0 |
label2: |
db ' BEENDEN KERNEL',0 |
label3: |
db ' NEUSTART ABBRECHEN',0 |
label4: |
db 'Save settings',0 |
|
end if |
label5: |
db '(End) (Home)',0 |
label6: |
db '(Enter) (Esc)',0 |
|
rdsave: |
dd 7 |
dd 0 |
132,5 → 217,6 |
dd 0 |
db '/sys/rdsave',0 |
udata |
sc system_colors |
|
meos_app_end |