Kernel: fixed work with zero-size windows

launcher, @rb: modified to use function 70

git-svn-id: svn://kolibrios.org@142 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond)
2006-08-29 12:52:52 +00:00
parent 1eba0190d0
commit 7e19914ef4
6 changed files with 100 additions and 70 deletions

View File

@@ -816,12 +816,11 @@ terminate: ; terminate application
add eax,[esi+WDATA.box.height]
mov [dlye],eax
mov [esi+WDATA.box.left], 0
mov [esi+WDATA.box.width], 5
mov eax,[0xFE04]
mov [esi+WDATA.box.top],eax
mov [esi+WDATA.box.height], 5
xor eax, eax
mov [esi+WDATA.box.left],eax
mov [esi+WDATA.box.width],eax
mov [esi+WDATA.box.top],eax
mov [esi+WDATA.box.height],eax
mov [esi+WDATA.cl_workarea],eax
mov [esi+WDATA.cl_titlebar],eax
mov [esi+WDATA.cl_frames],eax

View File

@@ -191,16 +191,17 @@
* ebx = [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> y]
* ecx = 0xX0RRGGBB, <20><><EFBFBD>
* RR, GG, BB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><><E2A5AA><EFBFBD>
* X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD><EFBFBD>: 0=<3D><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A8AD><EFBFBD>,
* X=ABnn (<28><><EFBFBD><EFBFBD>):
* nn <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD><EFBFBD>: 0=<3D><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A8AD><EFBFBD>,
1=<3D><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
* A=0 - <20><EFBFBD><EBA2AE><EFBFBD><EFBFBD> esi ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD>, A=1 - <20><EFBFBD><EBA2AE><EFBFBD><EFBFBD> ASCIIZ-<2D><><EFBFBD>
* B=1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8A8A2><EFBFBD> 䮭 梥⮬ edi
* edx = 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD>
* esi = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 255
* esi = <20><><EFBFBD> A=0 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 255;
<20><><EFBFBD> A=1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* <20><EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><EBA2AE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (esi and 0xFF) ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD>,
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> <20><> (<28><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
(<28><><EFBFBD> ASCIIZ-<2D><>ப) <20> <20><><EFBFBD><EFBFBD><EFBFBD><E1A8AC><EFBFBD><EFBFBD> <20><><>, <20><><EFBFBD> <20><EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0AD><EFBFBD>.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><><E4A0A9> char.mt,
<20><><EFBFBD>ன - <20><> char2.mt.
* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 9 <20><><EFBFBD><EFBFBD><E1A5AB>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A8AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -325,7 +326,7 @@
* +8: word: <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD>
* +10 = +0xA: 11 <20><><EFBFBD><EFBFBD>: <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(<28><><EFBFBD> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFA5AC><EFBFBD><><E4A0A9> <20> <20><><EFBFBD><E0ACA0> 8+3)
* +21 = +0x15: byte: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* +21 = +0x15: byte: <20><><EFBFBD>ࢨ஢<EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* +22 = +0x16: dword: <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* +26 = +0x1A: dword: ࠧ<><E0A0A7><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 1
* +30 = +0x1E: dword: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> (PID/TID)
@@ -344,6 +345,17 @@
* 5 = <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AEA1><EFBFBD><EFBFBD>
* 9 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8A5AD><EFBFBD><><><E1A2AE><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><>⠫쭠<E2A0AB> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> <20>
<><E1ABAE> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
* +52 = +0x34: word: <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD>, <20><><EFBFBD><><E1ABAE> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* +54 = +0x36: dword: <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><> <20><><EFBFBD> x
* +58 = +0x3A: dword: <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><> <20><><EFBFBD> y
* +62 = +0x3E: dword: <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* +66 = +0x42: dword: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* +70 = +0x46: byte: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> - <20><><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD>
* <20><><EFBFBD> 0 (<28><>᪠ 1): <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1A8AC><EFBFBD><EFBFBD><E0AEA2><EFBFBD>
* <20><><EFBFBD> 1 (<28><>᪠ 2): <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
* <20><><EFBFBD> 2 (<28><>᪠ 4): <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E3ACA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 1.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20><> <20><><EFBFBD><EFBFBD> <20><><20><><20><><EFBFBD><E2AEAA>, <20><><EFBFBD><E1AAAE><EFBFBD><EFBFBD>
@@ -366,7 +378,8 @@
* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A2> 0, ࠧ<><E0A0A7><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
16 Mb (0x1000000)
* PID=1
* <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>묨 0
* <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, ࠢ<><E0A0A2> <EFBFBD><EFBFBD><EFBFBD> <20> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<20><EFBFBD><E1ABAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>묨 0
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABAE> - <20><EFBFBD><E1A5A3> 0 (<28><EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
* <20><EFBFBD> <20><EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AAAB><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0A5AC><EFBFBD>, <20><EFBFBD><EFBFBD> <20><>
<><EFBFBD><E2A2A5><EFBFBD><><E0A0A1><EFBFBD>, <20> <20><EFBFBD><E0A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD>
@@ -385,8 +398,9 @@
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A0A5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2AEAA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2AEAD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
* <20><20><><20><><EFBFBD> <20><> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><> <20><><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> <20>㭪樨 0, <20><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E0A0A7><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ﬨ.
* <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2ADAE>⥫쭮 <20><><EFBFBD><EFBFBD>.
* <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7>
52 = 0x34 <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><><E0A5AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
71 = 0x47 <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><><E0A5AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
<><E0A0A7>஬ 1 <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>饩 ᮢ<><E1AEA2><EFBFBD><EFBFBD><E2A8AC><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
@@ -2083,7 +2097,12 @@ db 'Kolibri',0
* <20><><EFBFBD><EFBFBD> 22-31 <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 0
* ecx = <20><>᫮ (<28><><EFBFBD> bl=0) <20><><EFBFBD><><E3AAA0><EFBFBD> (<28><><EFBFBD> bl=1)
* edx = [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> y]
* esi = 0xN0RRGGBB, RRGGBB=梥<>, N=<3D><><EFBFBD><EFBFBD><EFBFBD> (0/1)
* esi = 0xX0RRGGBB:
* RR, GG, BB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>
* X = ABnn (<28><><EFBFBD><EFBFBD>)
* nn = <20><><EFBFBD><EFBFBD><EFBFBD> (0/1)
* A <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* B=1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8A8A2><EFBFBD> 䮭 梥⮬ edi
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* <20><EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:

View File

@@ -321,7 +321,7 @@ Returned value:
* +8: word: reserved
* +10 = +0xA: 11 bytes: name of the process
(name of corresponding executable file in the format 8+3)
* +21 = +0x15: byte: alignment, this byte preserves
* +21 = +0x15: byte: reserved, this byte is not changed
* +22 = +0x16: dword: address of the process in memory
* +26 = +0x1A: dword: size of used memory - 1
* +30 = +0x1E: dword: identifier (PID/TID)
@@ -340,6 +340,15 @@ Returned value:
* 5 = thread waits for event
* 9 = requested slot is free, all other information on the slot
is not meaningful
* +52 = +0x34: word: reserved, this word is not changed
* +54 = +0x36: dword: coordinate of the client area on axis x
* +58 = +0x3A: dword: coordinate of the client area on axis y
* +62 = +0x3E: dword: width of the client area
* +66 = +0x42: dword: height of the client area
* +70 = +0x46: byte: state of the window - bitfield
* bit 0 (mask 1): window is maximized
* bit 1 (mask 2): window is minimized to panel
* bit 2 (mask 4): window is rolled up
Remarks:
* Slots are numbered starting from 1.
* Returned value is not a total number of threads, because there
@@ -362,7 +371,8 @@ Remarks:
* address of the process in memory is 0, size of used memory is
16 Mb (0x1000000)
* PID=1
* coordinates and sizes of the window are by convention set to 0
* coordinates and sizes of the window and the client area are by
convention set to 0
* status of the slot is always 0 (running)
* the execution time adds of time leaving on operations itself
and idle time in waiting for interrupt (which can be got by call
@@ -381,8 +391,9 @@ Remarks:
* If the thread has not yet defined the window by call to
function 0, the position and the sizes
of its window are considered to be zero.
* Coordinates of the client area are relative to the window.
* At the moment only the part of the buffer by a size
52 = 0x34 bytes is used. Nevertheless it is recommended to use
71 = 0x37 bytes is used. Nevertheless it is recommended to use
1-Kb buffer for the future compatibility, in the future
some fields can be added.

View File

@@ -145,6 +145,17 @@ setscreen:
; edx y end
; esi process number
pushad
; \begin{diamond}[29.08.2006]
cmp esi, 1
jz @f
mov edi, esi
shl edi, 5
cmp [edi+window_data+WDATA.box.width], 0
jnz @f
cmp [edi+window_data+WDATA.box.height], 0
jz .ret
@@:
; \end{diamond}[29.08.2006]
mov edi, esi ;;;word [esi*2+0xc400]
shl edi, 8
add edi, 0x80000 ; address of random shaped window area
@@ -183,6 +194,7 @@ pushad
sub edi, ecx
dec edx
jnz .new_y
.ret:
popad
ret
.read_byte:

View File

@@ -28,7 +28,7 @@ START: ; start of execution
mcall 18,15
mov eax, 58 ; load AUTORUN.DAT
mov eax, 70 ; load AUTORUN.DAT
mov ebx, autorun_dat_info
int 0x40
@@ -59,7 +59,7 @@ START: ; start of execution
run_program: ; time to delay in eax
push eax
mcall 58, start_info
mcall 70, start_info
pop ebx
mov eax, 5
@@ -77,7 +77,6 @@ START: ; start of execution
mov ecx, 60
mov edi, parameters
xor al, al
rep stosb
popad
@@ -112,13 +111,11 @@ START: ; start of execution
xor ebx, ebx
.start:
lodsb
cmp al, '0'
jb .finish
cmp al, '9'
ja .finish
sub al, '0'
imul ebx, 10
add ebx, eax
cmp al, 9
ja .finish
lea ebx,[ebx*4+ebx]
lea ebx,[ebx*2+eax]
inc [position]
jmp .start
.finish:
@@ -180,17 +177,17 @@ START: ; start of execution
autorun_dat_info: ; AUTORUN.DAT
.mode dd 0 ; read file
.start_block dd 0 ; block to read
.blocks dd 0x10 ; 16*512 bytes max
dd 0
.blocks dd 16*512 ; 16*512 bytes max
.address dd file_data
.workarea dd work_area
db "/RD/1/AUTORUN.DAT",0
start_info:
.mode dd 16
.mode dd 7
dd 0
.params dd parameters
dd 0
.workarea dd work_area
dd 0
.path: ;      
I_END:
@@ -200,5 +197,4 @@ I_END:
number_of_files dd ?
work_area rb 0x4000
file_data rb 16*512

View File

@@ -13,10 +13,6 @@ include 'macros.inc'
meos_app_start
code
mov [start_info.mode], 16
mov [start_info.params], 0
mov [start_info.workarea], work_area
mov eax,40 ; <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><>
mov ebx,100000b ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD>
int 0x40
@@ -26,9 +22,6 @@ still: ;
mov eax,10 ; <20><><EFBFBD><EFBFBD><><E1AEA1><EFBFBD><EFBFBD>
int 0x40
cmp eax,6 ; <20><><EFBFBD><EFBFBD>?
jne still
mov eax,37 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
mov ebx,2
int 0x40
@@ -141,12 +134,13 @@ exit: ;
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
start_wnd:
mov [menu_opened],1
call draw_window
mov eax,40 ; <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx,100101b ; <20><><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2>
int 0x40
red:
call draw_window
still2: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov eax,10 ; <20><><EFBFBD><EFBFBD><><E1AEA1><EFBFBD><EFBFBD>
@@ -172,32 +166,24 @@ mouse: ;
jmp exit_menu ; <20> <20><20><><EFBFBD>-⠪<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
red:
call draw_window
jmp still2
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
button:
mov eax,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>
int 0x40
cmp ah,10 ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 10
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>
add ah,-10 ; <20><><EFBFBD><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10
movzx ebx,ah ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20> ᯨ᪥ <20> ebx
lea esi, [startapps + ebx*4]
lea edi, [start_info.path]
mov esi, [esi]
mov esi, [startapps + ebx*4]
mov edi, start_info.path
cld
@@:
lodsb
stosb
test al, al
jnz @b
mcall 58, start_info
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>???)
@@ -279,12 +265,23 @@ draw_window:
mov eax, 4 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx, header_pos ; [x] shl 16 + [y]
mov ecx, [sc.grab_text]; <20><><EFBFBD><EFBFBD><EFBFBD> <20><> (<28><><EFBFBD><EFBFBD><EFBFBD>)
add ecx, -0x333333
or ecx, 0x10000000
; add ecx, -0x333333
push ecx
push ecx
xor edx,edx
.dec_color:
sub byte [esp+edx], 0x33
jae @f
mov byte [esp+edx], 0
@@:
inc edx
jnp .dec_color
pop ecx
mov edx, header ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov esi, header.size ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ("M E N U")
int 0x40
add ecx, 0x333333 ; 梥<> <20><><EFBFBD><EFBFBD><EFBFBD>
pop ecx
add ebx, 1 shl 16 ; ᤢ<><E1A4A2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> 1
int 0x40
@@ -348,7 +345,7 @@ DATA
<"/RD/1/JPEGVIEW",0> ,\
<"/RD/1/CPU",0> ,\
<"/RD/1/SPANEL",0> ,\
<"/RD/1/ICONMNGR",0> ,\
<"/RD/1/ICON2",0> ,\
<"/RD/1/VRR",0>
; header: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -363,7 +360,7 @@ DATA
; db 'Panel setup '
; db 'Icon manager'
sz header, "MenuetOS"
sz header, "KolibriOS"
lsz text,\
en, 'Background ',\
@@ -384,7 +381,14 @@ DATA
ru, '<27><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><E0AEA9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '
start_info:
.mode dd 7
dd 0
.params dd 0
dd 0
dd 0
db 0
dd start_info.path
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UDATA
@@ -396,23 +400,12 @@ UDATA
menu_opened db ? ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>? (1-<2D><>, 0-<2D><><EFBFBD>)
align 32
start_info:
.mode dd ?
dd ?
.params dd ?
dd ?
.workarea dd ?
.path:
rb 256
align 4
start_info.path rb 256
sc system_colors ; <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD><><E6A2A5>
procinfo process_information ; <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
work_area:
rb 0x1000
rb 1024 ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> - 墠<><E5A2A0><EFBFBD> <20> 1 <20><>
align 32
stack_wnd: