Rev 1476 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1476 | Rev 2249 | ||
---|---|---|---|
1 | ;ä ©« ᮧ¤ 13.02.2009 |
1 | ;ä ©« ᮧ¤ 13.02.2009 |
2 | ; ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
2 | ; ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
3 | ;Optionbox |
3 | ;Optionbox |
4 | 4 | ||
5 | macro use_optionbox_driver ;¬ ªà®áë ª®â®àë¥ ã¯à ¢«ïîâ à ¡®â®© ¡®ªá ) |
5 | macro use_optionbox_driver ;¬ ªà®áë ª®â®àë¥ ã¯à ¢«ïîâ à ¡®â®© ¡®ªá ) |
6 | { |
6 | { |
7 | option_box_draw: |
7 | option_box_draw: |
8 | pusha |
8 | pusha |
9 | 9 | ||
10 | mov eax,dword [esp+36] |
10 | mov eax,dword [esp+36] |
11 | @@: mov edi,dword [eax] |
11 | @@: mov edi,dword [eax] |
12 | test edi,edi |
12 | test edi,edi |
13 | je option_check |
13 | je option_check |
14 | call option_box_draw_box |
14 | call option_box_draw_box |
15 | add eax,4 |
15 | add eax,4 |
16 | jmp @b |
16 | jmp @b |
17 | 17 | ||
18 | option_check: |
18 | option_check: |
19 | mov eax,dword [esp+36] |
19 | mov eax,dword [esp+36] |
20 | @@: mov edi,dword [eax] |
20 | @@: mov edi,dword [eax] |
21 | test edi,edi |
21 | test edi,edi |
22 | je @f |
22 | je @f |
23 | 23 | ||
24 | mov ebx,dword [edi] |
24 | mov ebx,dword [edi] |
25 | mov ebx,dword [ebx] |
25 | mov ebx,dword [ebx] |
26 | cmp edi,ebx |
26 | cmp edi,ebx |
27 | jne .clear_op |
27 | jne .clear_op |
28 | 28 | ||
29 | pusha |
29 | pusha |
30 | call option_box_draw_op |
30 | call option_box_draw_op |
31 | popa |
31 | popa |
32 | add eax,4 |
32 | add eax,4 |
33 | jmp @b |
33 | jmp @b |
34 | 34 | ||
35 | .clear_op: |
35 | .clear_op: |
36 | pusha |
36 | pusha |
37 | call option_box_clear_op |
37 | call option_box_clear_op |
38 | popa |
38 | popa |
39 | add eax,4 |
39 | add eax,4 |
40 | jmp @b |
40 | jmp @b |
41 | 41 | ||
42 | 42 | ||
43 | @@: popa |
43 | @@: popa |
44 | ret 4 |
44 | ret 4 |
45 | ; exit ¢®®¡é¥ :) |
45 | ; exit ¢®®¡é¥ :) |
46 | 46 | ||
47 | 47 | ||
48 | option_box_mouse: |
48 | option_box_mouse: |
49 | pusha |
49 | pusha |
50 | mcall 37,2 |
50 | mcall 37,2 |
51 | test eax,eax |
51 | test eax,eax |
52 | jnz @f |
52 | jnz @f |
53 | popa |
53 | popa |
54 | ret 4 |
54 | ret 4 |
55 | @@: |
55 | @@: |
56 | mov eax,dword [esp+36] |
56 | mov eax,dword [esp+36] |
57 | @@: mov edi,dword [eax] |
57 | @@: mov edi,dword [eax] |
58 | test edi,edi |
58 | test edi,edi |
59 | je option_check |
59 | je option_check |
60 | call option_box_mouse_op |
60 | call option_box_mouse_op |
61 | add eax,4 |
61 | add eax,4 |
62 | jmp @b |
62 | jmp @b |
63 | 63 | ||
64 | } |
64 | } |
65 | macro use_optionbox_draw |
65 | macro use_optionbox_draw |
66 | { |
66 | { |
67 | option_box_draw_box: |
67 | option_box_draw_box: |
68 | pusha ;á®åà ¨¬ ¢á¥ ॣ¨áâàë |
68 | pusha ;á®åà ¨¬ ¢á¥ ॣ¨áâàë |
69 | 69 | ||
70 | movzx ebx,word op_left |
70 | movzx ebx,word op_left |
71 | shl ebx,16 |
71 | shl ebx,16 |
72 | add ebx,dword op_size |
72 | add ebx,dword op_size |
73 | movzx ecx,word op_top |
73 | movzx ecx,word op_top |
74 | shl ecx,16 |
74 | shl ecx,16 |
75 | add ecx,dword op_size |
75 | add ecx,dword op_size |
76 | mov edx,dword op_border_color |
76 | mov edx,dword op_border_color |
77 | mov eax,13 |
77 | mov eax,13 |
78 | mcall ;à¨á㥬 à ¬ªã |
78 | mcall ;à¨á㥬 à ¬ªã |
79 | 79 | ||
80 | mov edx,dword op_color |
80 | mov edx,dword op_color |
81 | add ebx,1 shl 16 - 2 |
81 | add ebx,1 shl 16 - 2 |
82 | add ecx,1 shl 16 - 2 |
82 | add ecx,1 shl 16 - 2 |
83 | mcall ;§ ªà 訢 ¥¬ ¢ãâ८á⨠祪¡®ªá |
83 | mcall ;§ ªà 訢 ¥¬ ¢ãâ८á⨠祪¡®ªá |
84 | 84 | ||
85 | ; mov eax,dword option_group |
85 | ; mov eax,dword option_group |
86 | ; mov dword eax,[eax] |
86 | ; mov dword eax,[eax] |
87 | ; cmp eax,edi |
87 | ; cmp eax,edi |
88 | ; jne @f |
88 | ; jne @f |
89 | ; call option_box_draw_op ; à¨á®¢ âì ¢ª«îç¥ë© 祪 ¡®ªá |
89 | ; call option_box_draw_op ; à¨á®¢ âì ¢ª«îç¥ë© 祪 ¡®ªá |
90 | 90 | ||
91 | 91 | ||
92 | ;---------------------------- |
92 | ;---------------------------- |
93 | ;à áç¥â ªã¤ ¡ã¤¥â ¯à®¨§¢¥¤¥ ¢ë¢®¤ ⥪áâ |
93 | ;à áç¥â ªã¤ ¡ã¤¥â ¯à®¨§¢¥¤¥ ¢ë¢®¤ ⥪áâ |
94 | ;---------------------------- |
94 | ;---------------------------- |
95 | @@: movzx ebx,word op_left ;§ £à㧨âì § 票¥ å ¤«ï 祪 ¡®ªá |
95 | @@: movzx ebx,word op_left ;§ £à㧨âì § 票¥ å ¤«ï 祪 ¡®ªá |
96 | add ebx,dword op_size |
96 | add ebx,dword op_size |
97 | add ebx,dword op_text_margin;¤®¡ ¢¨âì à §¬¥à áâ®à®ë ¨ à ááâ®ï¨¥ ª®â®à®¬ ç¥âáï ¢ë¢®¤ ⥪áâ |
97 | add ebx,dword op_text_margin;¤®¡ ¢¨âì à §¬¥à áâ®à®ë ¨ à ááâ®ï¨¥ ª®â®à®¬ ç¥âáï ¢ë¢®¤ ⥪áâ |
98 | shl ebx,16 ;ᤢ¨¥¬ 16 à §à冷¢ ¢ «¥¢® (㬮¦¨¬ 65536) |
98 | shl ebx,16 ;ᤢ¨¥¬ 16 à §à冷¢ ¢ «¥¢® (㬮¦¨¬ 65536) |
99 | mov bx,word op_top ;§ £à㧨¬ § 票¥ ¯® y |
99 | mov bx,word op_top ;§ £à㧨¬ § 票¥ ¯® y |
100 | add ebx,op_size |
100 | mov eax,op_size |
- | 101 | shr eax,1 |
|
- | 102 | add eax,4 |
|
- | 103 | add ebx,eax |
|
101 | mov ecx,dword op_text_color ;§ £à㧨¬ 梥⠤¯¨á¨ + flags |
104 | mov ecx,dword op_text_color ;§ £à㧨¬ 梥⠤¯¨á¨ + flags |
102 | sub ebx,7 ;¤®¡ ¢¨¬ § 票¥ ¤«¨ë áâ®à®ë -9+2 |
105 | sub ebx,7 ;¤®¡ ¢¨¬ § 票¥ ¤«¨ë áâ®à®ë -9+2 |
103 | 106 | ||
104 | mov edx,dword op_text_ptr ;㪠¦¥¬ ¤à¥á ®â ªã¤ 㦮 ¢ë¢®¤¨âì áâபã |
107 | mov edx,dword op_text_ptr ;㪠¦¥¬ ¤à¥á ®â ªã¤ 㦮 ¢ë¢®¤¨âì áâபã |
105 | mov esi,dword op_text_length |
108 | mov esi,dword op_text_length |
106 | ;¢¥á¥¬ ¢ eax § 票¥ ¢ë¢®¤ ¤¯¨á¨ ª ¢ã |
109 | ;¢¥á¥¬ ¢ eax § 票¥ ¢ë¢®¤ ¤¯¨á¨ ª ¢ã |
107 | mov eax,4 |
110 | mov eax,4 |
108 | mcall ;뢮¤ |
111 | mcall ;뢮¤ |
109 | popa ;¢®ááâ ®¢¨âì § 票ï ॣ¨áâ஢ ¨§ á⥪ |
112 | popa ;¢®ááâ ®¢¨âì § 票ï ॣ¨áâ஢ ¨§ á⥪ |
110 | ret ;¢ë©¤¥¬ ¨§ ¯à®æ¥¤ãàë |
113 | ret ;¢ë©¤¥¬ ¨§ ¯à®æ¥¤ãàë |
111 | 114 | ||
112 | option_box_clear_op: ;®ç¨á⪠祪 ¡®ªá |
115 | option_box_clear_op: ;®ç¨á⪠祪 ¡®ªá |
113 | mov edx,dword op_color ;梥⠢ãâਠ祪 ¡®ªá |
116 | mov edx,dword op_color ;梥⠢ãâਠ祪 ¡®ªá |
114 | jmp @f ;¡¥§ãá«®¢ë© ¯à릮ª ¨¦îî ¬¥âªã @@ |
117 | jmp @f ;¡¥§ãá«®¢ë© ¯à릮ª ¨¦îî ¬¥âªã @@ |
115 | 118 | ||
116 | 119 | ||
117 | option_box_draw_op: ; à¨á®¢ âì ¢ª«îç¥ë© 祪 ¡®ªá |
120 | option_box_draw_op: ; à¨á®¢ âì ¢ª«îç¥ë© 祪 ¡®ªá |
118 | mov edx,dword op_border_color ;§ £à㧨âì 梥â |
121 | mov edx,dword op_border_color ;§ £à㧨âì 梥â |
119 | @@: |
122 | @@: |
120 | movzx ebx,word op_left ;§ £à㧨âì ª®®à¤¨ âã ¯® å |
123 | movzx ebx,word op_left ;§ £à㧨âì ª®®à¤¨ âã ¯® å |
121 | mov eax,dword op_size |
124 | mov eax,dword op_size |
122 | mov bp,ax |
125 | mov bp,ax |
123 | shr eax,2 |
126 | shr eax,2 |
124 | push ax |
127 | push ax |
125 | 128 | ||
126 | push ax |
129 | push ax |
127 | add ebx,eax |
130 | add ebx,eax |
128 | shl ebx,16 ;ᤢ¨¥¬ 16 à §à冷¢ ¢ «¥¢® (㬮¦¨¬ 65536) |
131 | shl ebx,16 ;ᤢ¨¥¬ 16 à §à冷¢ ¢ «¥¢® (㬮¦¨¬ 65536) |
129 | pop ax |
132 | pop ax |
130 | lea eax,[eax*2] |
133 | lea eax,[eax*2] |
131 | sub bp,ax ;á®åà ¨¬ ॣ¨áâà bx ¢ ॣ¨áâॠ㪠§ â¥«ï ¡ §ë |
134 | sub bp,ax ;á®åà ¨¬ ॣ¨áâà bx ¢ ॣ¨áâॠ㪠§ â¥«ï ¡ §ë |
132 | mov bx,bp |
135 | mov bx,bp |
133 | 136 | ||
134 | movzx ecx,word op_top ;§ £à㧨âì ª®®à¤¨ âã ¯® ã |
137 | movzx ecx,word op_top ;§ £à㧨âì ª®®à¤¨ âã ¯® ã |
135 | pop ax |
138 | pop ax |
136 | add cx,ax |
139 | add cx,ax |
137 | shl ecx,16 ;ᤢ¨¥¬ 16 à §à冷¢ ¢ «¥¢® (㬮¦¨¬ 65536) |
140 | shl ecx,16 ;ᤢ¨¥¬ 16 à §à冷¢ ¢ «¥¢® (㬮¦¨¬ 65536) |
138 | mov cx,bp ;§ £à㧨¬ § 票ï ॣ¨áâà 㪠§ â¥«ï ¡ §ë ¢ cx |
141 | mov cx,bp ;§ £à㧨¬ § 票ï ॣ¨áâà 㪠§ â¥«ï ¡ §ë ¢ cx |
139 | mov eax,13 ;¢ eax - § 票ï äãªæ¨¨ ¤«ï ¢ë¢®¤ ¯®«®áë â.¥. ¯® áã⨠¯àאַ㣮«ì¨ª , ª®â®àë© ®â®¡à ¦ ¥â ¢ª«îç¥ë© ª®¬¯®¥â 祪 ¡®ªá |
142 | mov eax,13 ;¢ eax - § 票ï äãªæ¨¨ ¤«ï ¢ë¢®¤ ¯®«®áë â.¥. ¯® áã⨠¯àאַ㣮«ì¨ª , ª®â®àë© ®â®¡à ¦ ¥â ¢ª«îç¥ë© ª®¬¯®¥â 祪 ¡®ªá |
140 | mcall ;¢ë¢®¤ |
143 | mcall ;¢ë¢®¤ |
141 | ret ;¢ë©â¨ ¨§ ¯à®æ¥¤ãàë |
144 | ret ;¢ë©â¨ ¨§ ¯à®æ¥¤ãàë |
142 | } |
145 | } |
143 | 146 | ||
144 | 147 | ||
145 | macro use_optionbox_mouse |
148 | macro use_optionbox_mouse |
146 | { |
149 | { |
147 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
150 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
148 | ;¡à ¡®â稪 mouse |
151 | ;¡à ¡®â稪 mouse |
149 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
152 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
150 | option_box_mouse_op: ;®¡à ¡®âª ¬ëè¨ |
153 | option_box_mouse_op: ;®¡à ¡®âª ¬ëè¨ |
151 | pusha |
154 | pusha |
152 | mov esi,dword op_text_length ;§ £à㧨âì ª®«-¢® ᨬ¢®«®¢ ¢ ⥪á⮢®© áâப¥ |
155 | mov esi,dword op_text_length ;§ £à㧨âì ª®«-¢® ᨬ¢®«®¢ ¢ ⥪á⮢®© áâப¥ |
153 | ;¬®¦¥¨¥ 6 ëáâ஥ 㬮¦¥¨¥ ¬®¦® ¢®á¯®«ì§®¢ âìáï «î¡ë¬ ¬§ ¬¥â®¤®¢, ® áâ àëå à®æ¥áá®à å (386,486,P1)¡ëáâ॥ ¡ã¤¥â á ¨áâàãªæ¨¥© Lea |
156 | ;¬®¦¥¨¥ 6 ëáâ஥ 㬮¦¥¨¥ ¬®¦® ¢®á¯®«ì§®¢ âìáï «î¡ë¬ ¬§ ¬¥â®¤®¢, ® áâ àëå à®æ¥áá®à å (386,486,P1)¡ëáâ॥ ¡ã¤¥â á ¨áâàãªæ¨¥© Lea |
154 | ; lea esi,[eax*2+eax] |
157 | ; lea esi,[eax*2+eax] |
155 | ; shl eax,1 |
158 | ; shl eax,1 |
156 | imul esi,6 ; ¨«¨ ¬®¦® ¨ â ª 㬮¦¨âì 6 |
159 | imul esi,6 ; ¨«¨ ¬®¦® ¨ â ª 㬮¦¨âì 6 |
157 | xor ebx,ebx |
160 | xor ebx,ebx |
158 | add esi,dword op_text_margin ;¤®¡ ¢¨âì 3 - à ááâ®ï¨¥ ®â 祪 ¡®ªá ¤® ¤¯¨á¨ |
161 | add esi,dword op_text_margin ;¤®¡ ¢¨âì 3 - à ááâ®ï¨¥ ®â 祪 ¡®ªá ¤® ¤¯¨á¨ |
159 | 162 | ||
160 | mov eax,37 ;¯®«ã稬 ª®®à¤¨ âë ¬ë誨 |
163 | mov eax,37 ;¯®«ã稬 ª®®à¤¨ âë ¬ë誨 |
161 | inc ebx ;¤®¡ ¢¨âì 1 |
164 | inc ebx ;¤®¡ ¢¨âì 1 |
162 | mcall ;¯®«ãç¨âì ª®®à¤¨ âë ªãàá®à ®â®á¨â¥«ì® ®ª |
165 | mcall ;¯®«ãç¨âì ª®®à¤¨ âë ªãàá®à ®â®á¨â¥«ì® ®ª |
163 | 166 | ||
164 | movzx ebx,word op_top ;§ £à㧨âì ¢ bx § 票¥ ª®®à¤¨ âë ã |
167 | movzx ebx,word op_top ;§ £à㧨âì ¢ bx § 票¥ ª®®à¤¨ âë ã |
165 | cmp ax,bx ;áà ¢¨âì á á ª®®à¤¨ ⮩ ªãàá®à |
168 | cmp ax,bx ;áà ¢¨âì á á ª®®à¤¨ ⮩ ªãàá®à |
166 | jl option_box_mouse_end ;SF <> OF ¥á«¨ ¬¥ìè¥ |
169 | jl option_box_mouse_end ;SF <> OF ¥á«¨ ¬¥ìè¥ |
167 | add ebx,dword op_size ;¤®¡ ¢¨âì à §¬¥à |
170 | add ebx,dword op_size ;¤®¡ ¢¨âì à §¬¥à |
168 | cmp ax,bx ;áà ¢¨âì |
171 | cmp ax,bx ;áà ¢¨âì |
169 | jg option_box_mouse_end ;ZF = 0 ¨ SF = OF ¥á«¨ ¡®«ìè¥ |
172 | jg option_box_mouse_end ;ZF = 0 ¨ SF = OF ¥á«¨ ¡®«ìè¥ |
170 | 173 | ||
171 | shr eax,16 ;à §¤¥«¨¬ 65536 ¨«¨ ¯à®á⮠ᤢ¨¥¬ ¡¨âë 16 § 票© |
174 | shr eax,16 ;à §¤¥«¨¬ 65536 ¨«¨ ¯à®á⮠ᤢ¨¥¬ ¡¨âë 16 § 票© |
172 | movzx ebx,word op_left ;¯à®¨§¢¥¤¥¬ «®£¨ç®¥ áà ¢¥¨¥ |
175 | movzx ebx,word op_left ;¯à®¨§¢¥¤¥¬ «®£¨ç®¥ áà ¢¥¨¥ |
173 | cmp ax,bx ;áà ¢¨âì ॣ¨áâàë |
176 | cmp ax,bx ;áà ¢¨âì ॣ¨áâàë |
174 | jl option_box_mouse_end ;¥á«¨ ¬¥ìè¥ |
177 | jl option_box_mouse_end ;¥á«¨ ¬¥ìè¥ |
175 | add ebx,dword op_size ;¤®¡ ¢¨âì ¤«¨ã áâ®à®ë ¯àאַ㣮«ì¨ª |
178 | add ebx,dword op_size ;¤®¡ ¢¨âì ¤«¨ã áâ®à®ë ¯àאַ㣮«ì¨ª |
176 | add ebx,esi ;ç¥áâì ¢ § 票¨ ¯® å ¥é¥ ¨ ¤«¨ã ¤¯¨á¨ ª 祪¡®ªáã |
179 | add ebx,esi ;ç¥áâì ¢ § 票¨ ¯® å ¥é¥ ¨ ¤«¨ã ¤¯¨á¨ ª 祪¡®ªáã |
177 | cmp ax,bx ;áâà ¢¨âì ॣ¨áâàë |
180 | cmp ax,bx ;áâà ¢¨âì ॣ¨áâàë |
178 | jg option_box_mouse_end ;¥á«¨ ¡®«ìè¥ |
181 | jg option_box_mouse_end ;¥á«¨ ¡®«ìè¥ |
179 | mov eax,dword option_group |
182 | mov eax,dword option_group |
180 | mov [eax],edi |
183 | mov [eax],edi |
181 | 184 | ||
182 | option_box_mouse_end: |
185 | option_box_mouse_end: |
183 | popa ;¢®ááâ ®¢¨âì ॣ¨áâàë ¨§ á⥪ |
186 | popa ;¢®ááâ ®¢¨âì ॣ¨áâàë ¨§ á⥪ |
184 | ret ;¢ë©â¨ |
187 | ret ;¢ë©â¨ |
185 | 188 | ||
186 | }> |
189 | }> |