Rev 1805 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1805 | Rev 8287 | ||
---|---|---|---|
Line 4... | Line 4... | ||
4 | 4 | ||
5 | char os_name[8] = {'M','E','N','U','E','T','0','1'}; |
5 | char os_name[8] = {'M','E','N','U','E','T','0','1'}; |
6 | dword os_version = 0x00000001; |
6 | dword os_version = 0x00000001; |
7 | dword start_addr = #main; |
7 | dword start_addr = #main; |
8 | dword final_addr = #stop+32; |
8 | dword final_addr = #stop+32; |
9 | dword alloc_mem = 0x00100000; |
9 | dword alloc_mem = 0x0090000; |
10 | dword x86esp_reg = 0x00100000; |
10 | dword x86esp_reg = 0x0090000; |
11 | dword I_Param = #param; |
11 | dword I_Param = 0x0; |
12 | dword I_Icon = 0x0; |
- | |
Line 13... | Line 12... | ||
13 | char param[256]=""; |
12 | dword I_Icon = 0x0; |
14 | - | ||
15 | //Events |
13 | |
16 | #define evMouse 6 |
14 | //Events |
17 | #define evButton 3 |
15 | #define evButton 3 |
Line 18... | Line 16... | ||
18 | #define evKey 2 |
16 | #define evKey 2 |
Line 42... | Line 40... | ||
42 | EAX = 17; |
40 | EAX = 17; |
43 | $int 0x40 |
41 | $int 0x40 |
44 | EAX = EAX >> 8; |
42 | EAX = EAX >> 8; |
45 | } |
43 | } |
Line 46... | Line 44... | ||
46 | 44 | ||
47 | inline fastcall dword strlen(dword EDI){ |
- | |
48 | EAX=0; |
45 | inline fastcall ExitProcess(){ |
49 | ECX=-1; |
46 | EAX = -1; // close this program |
50 | $REPNE $SCASB |
- | |
51 | EAX-=2+ECX; |
47 | $int 0x40 |
Line 52... | Line -... | ||
52 | } |
- | |
53 | 48 | } |
|
54 | byte WindowRePaint=0; |
49 | |
55 | inline fastcall void WindowRedrawStatus(dword EBX) |
50 | void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType,dword mainAreaColour,EDI) |
- | 51 | { |
|
56 | { |
52 | EAX = 12; // function 12:tell os about windowdraw |
57 | EAX = 12; // function 12:tell os about windowdraw |
- | |
58 | $int 0x40 |
- | |
Line 59... | Line -... | ||
59 | IF (EBX==1) WindowRePaint=1; ELSE WindowRePaint=0; |
- | |
60 | } |
- | |
61 | 53 | EBX = 1; |
|
62 | void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType,dword mainAreaColour,byte headerType,dword headerColour,EDI) |
54 | $int 0x40 |
63 | { |
55 | |
64 | EBX = x << 16 + sizeX; |
- | |
65 | ECX = y << 16 + sizeY; |
56 | EBX = x << 16 + sizeX; |
66 | EDX = mainAreaType << 24 | mainAreaColour; |
57 | ECX = y << 16 + sizeY; |
67 | ESI = headerType << 24 | headerColour; |
- | |
Line -... | Line 58... | ||
- | 58 | EDX = mainAreaType << 24 | mainAreaColour; |
|
- | 59 | $xor eax,eax |
|
- | 60 | $int 0x40 |
|
- | 61 | ||
Line 68... | Line 62... | ||
68 | $xor eax,eax |
62 | EAX = 12; // function 12:tell os about windowdraw |
69 | $int 0x40 |
63 | EBX = 2; |
70 | } |
64 | $int 0x40 |
71 | 65 | } |
|
Line 85... | Line 79... | ||
85 | EDX = x<<16+y; |
79 | EDX = x<<16+y; |
86 | ESI = fontType<<24+ESI; |
80 | ESI = fontType<<24+ESI; |
87 | $int 0x40; |
81 | $int 0x40; |
88 | } |
82 | } |
Line 89... | Line -... | ||
89 | - | ||
90 | - | ||
91 | 83 | ||
92 | void DrawBar(dword x,y,w,h,EDX) |
84 | void DrawBar(dword x,y,w,h,EDX) |
93 | { |
85 | { |
94 | EAX = 13; |
86 | EAX = 13; |
95 | EBX = x<<16+w; |
87 | EBX = x<<16+w; |
Line 110... | Line 102... | ||
110 | EAX = 8; |
102 | EAX = 8; |
111 | EDX += BT_DEL; |
103 | EDX += BT_DEL; |
112 | $int 0x40; |
104 | $int 0x40; |
113 | } |
105 | } |
Line 114... | Line -... | ||
114 | - | ||
115 | void DrawFlatButton(dword x,y,width,height,id,color,text) |
- | |
116 | { |
- | |
117 | DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE); |
- | |
118 | DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7); |
- | |
119 | DrawBar(x+2,y+2,width-3,height-3,color); //§ «¨¢ª |
- | |
120 | IF (id<>0) DefineButton(x,y,width,height,id+BT_HIDE,0xEFEBEF); //ª®¯ª |
- | |
121 | WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0); |
- | |
122 | } |
- | |
123 | - | ||
124 | 106 | ||
Line 125... | Line 107... | ||
125 | dword generator; // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë |
107 | dword generator; // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë |
126 | 108 | ||
127 | :int random(int max) |
109 | :int random(int max) |
Line 151... | Line 133... | ||
151 | int 0x40 |
133 | int 0x40 |
152 | ror eax,16 |
134 | ror eax,16 |
153 | } |
135 | } |
154 | generator = EAX; |
136 | generator = EAX; |
155 | } |
137 | }16+h; |
156 | - | ||
157 | inline fastcall ExitProcess(){ |
- | |
158 | EAX = -1; // close this program |
- | |
159 | $int 0x40 |
- | |
160 | } |
- | |
161 | - | ||
162 | void DrawRegion_3D(dword x,y,width,height,color1,color2) |
- | |
163 | { |
- | |
164 | DrawBar(x,y,width+1,1,color1); |
- | |
165 | DrawBar(x,y+1,1,height-1,color1); |
- | |
166 | DrawBar(x+width,y+1,1,height,color2); |
- | |
167 | DrawBar(x,y+height,width,1,color2); |
- | |
168 | }>16+h; |
- | |
169 | ><16+h; |
138 | ><16+h; |