Rev 1998 | Rev 2484 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1998 | Rev 2234 | ||
---|---|---|---|
Line 21... | Line 21... | ||
21 | include '../../../macros.inc' |
21 | include '../../../macros.inc' |
22 | include 'debug.inc' |
22 | include 'debug.inc' |
23 | purge newline |
23 | purge newline |
24 | MAXSTRINGS = 16 |
24 | MAXSTRINGS = 16 |
25 | TMP = 80*(MAXSTRINGS+1) |
25 | TMP = 80*(MAXSTRINGS+1) |
26 | - | ||
- | 26 | ;------------------------------------------------------------------------------ |
|
27 | START: ; start of execution |
27 | START: ; start of execution |
28 | mov edi, filename |
28 | mov edi,filename |
29 | cmp byte [edi], 0 |
29 | cmp [edi],byte 0 |
30 | jnz param |
30 | jnz param |
31 | mov esi, default_filename |
31 | mov esi,default_filename |
32 | @@: |
32 | @@: |
33 | lodsb |
33 | lodsb |
34 | stosb |
34 | stosb |
Line 37... | Line 37... | ||
37 | param: |
37 | param: |
Line 38... | Line 38... | ||
38 | 38 | ||
39 | ; allow user to see messages written before start |
39 | ; allow user to see messages written before start |
40 | ; mov ecx,4096 |
40 | ; mov ecx,4096 |
41 | ; flush: |
- | |
42 | ; mov eax,63 |
- | |
43 | ; mov ebx,2 |
41 | ;flush: |
44 | ; mcall |
42 | ; mcall 63,2 |
Line 45... | Line 43... | ||
45 | ; loop flush |
43 | ; loop flush |
46 | 44 | ||
47 | mov ecx, TMP |
45 | mov ecx,TMP |
48 | xor eax, eax |
46 | xor eax,eax |
Line 49... | Line 47... | ||
49 | mov edi, [targ] |
47 | mov edi,[targ] |
50 | rep stosb |
48 | rep stosb |
Line 51... | Line -... | ||
51 | - | ||
52 | mov [tmp1],'x' |
49 | |
53 | mov [tmp2],'x' |
50 | mov [tmp1],'x' |
54 | 51 | mov [tmp2],'x' |
|
55 | mov eax,14 |
52 | |
56 | mcall |
53 | mcall 14 |
57 | and eax,0xffff0000 |
- | |
58 | sub eax,399 shl 16 |
- | |
59 | add eax,399 |
- | |
60 | mov [xstart],eax |
- | |
61 | 54 | and eax,0xffff0000 |
|
62 | mov eax,48 |
- | |
63 | mov ebx,3 |
55 | sub eax,399 shl 16 |
64 | mov ecx,sc |
56 | add eax,399 |
65 | mov edx,sizeof.system_colors |
57 | mov [xstart],eax |
66 | mcall |
58 | mcall 48,3,sc,sizeof.system_colors |
67 | if WRITE_LOG |
- | |
- | 59 | if WRITE_LOG |
|
68 | mov esi, filename |
60 | mov esi,filename |
69 | call CreateFile |
61 | call CreateFile |
70 | end if |
- | |
- | 62 | end if |
|
71 | 63 | ;------------------------------------------------------------------------------ |
|
72 | red: |
- | |
73 | call draw_window |
64 | red: |
74 | - | ||
75 | still: |
- | |
76 | - | ||
77 | mov eax,23 ; wait here for event |
65 | call draw_window |
78 | mov ebx,1 |
66 | ;------------------------------------------------------------------------------ |
- | 67 | still: |
|
79 | mcall |
68 | mcall 23,1 ; wait here for event |
80 | 69 | cmp eax,1 ; redraw request ? |
|
- | 70 | je red |
|
81 | cmp eax,1 ; redraw request ? |
71 | |
82 | je red |
72 | cmp eax,2 ; key in buffer ? |
Line 83... | Line -... | ||
83 | cmp eax,2 ; key in buffer ? |
- | |
84 | je key |
- | |
85 | cmp eax,3 ; button in buffer ? |
73 | je key |
86 | je button |
- | |
87 | 74 | ||
88 | mov eax,63 |
75 | cmp eax,3 ; button in buffer ? |
Line 89... | Line 76... | ||
89 | mov ebx,2 |
76 | je button |
90 | mcall |
77 | |
Line 109... | Line 96... | ||
109 | jnc .write_to_logfile |
96 | jnc .write_to_logfile |
110 | @@: |
97 | @@: |
111 | inc [filepos] |
98 | inc [filepos] |
112 | popa |
99 | popa |
113 | end if |
100 | end if |
114 | - | ||
115 | mov ebp,[targ] |
101 | mov ebp,[targ] |
116 | .no4: |
102 | .no4: |
117 | cmp al,13 |
103 | cmp al,13 |
118 | jne no13 |
104 | jne no13 |
119 | and dword[ebp-8],0 |
105 | and [ebp-8],dword 0 |
120 | jmp new_check |
106 | jmp new_check |
- | 107 | ;------------------------------------------ |
|
121 | no13: |
108 | no13: |
122 | cmp al,10 |
109 | cmp al,10 |
123 | jne no10 |
110 | jne no10 |
124 | and dword[ebp-8],0 |
111 | and [ebp-8],dword 0 |
125 | inc dword[ebp-4] |
112 | inc dword [ebp-4] |
126 | cmp dword[ebp-4],MAXSTRINGS |
113 | cmp [ebp-4],dword MAXSTRINGS |
127 | jbe .noypos |
114 | jbe .noypos |
128 | mov dword[ebp-4],MAXSTRINGS |
115 | mov [ebp-4],dword MAXSTRINGS |
129 | lea esi,[ebp+80] |
116 | lea esi,[ebp+80] |
130 | mov edi,ebp |
117 | mov edi,ebp |
131 | mov ecx,80*(MAXSTRINGS) |
118 | mov ecx,80*(MAXSTRINGS) |
132 | cld |
119 | cld |
133 | rep movsb |
120 | rep movsb |
Line 141... | Line 128... | ||
141 | rep stosb |
128 | rep stosb |
142 | .noypos: |
129 | .noypos: |
143 | mov [targ],text2 |
130 | mov [targ],text2 |
144 | and [krnl_cnt],0 |
131 | and [krnl_cnt],0 |
145 | jmp new_check |
132 | jmp new_check |
- | 133 | ;------------------------------------------ |
|
146 | no10: |
134 | no10: |
147 | cmp ebp,text1 |
135 | cmp ebp,text1 |
148 | je add2 |
136 | je add2 |
149 | mov ecx,[krnl_cnt] |
137 | mov ecx,[krnl_cnt] |
150 | cmp al,[krnl_msg+ecx] |
138 | cmp al,[krnl_msg+ecx] |
Line 167... | Line 155... | ||
167 | and [krnl_cnt],0 |
155 | and [krnl_cnt],0 |
168 | add2: |
156 | add2: |
169 | call add_char |
157 | call add_char |
Line 170... | Line 158... | ||
170 | 158 | ||
171 | new_check: |
- | |
172 | - | ||
173 | mov eax,63 |
- | |
174 | mov ebx,2 |
159 | new_check: |
175 | mcall |
- | |
176 | 160 | mcall 63,2 |
|
177 | cmp ebx,1 |
161 | cmp ebx,1 |
178 | je new_data |
- | |
179 | 162 | je new_data |
|
180 | call draw_window |
- | |
181 | 163 | call draw_text |
|
182 | jmp still |
- | |
- | 164 | jmp still |
|
183 | 165 | ;------------------------------------------------------------------------------ |
|
184 | key: ; key |
- | |
185 | mov al,2 ; just read it and ignore |
166 | key: |
186 | mcall |
167 | mcall 2 |
187 | cmp ah,' ' |
168 | cmp ah,' ' |
188 | je button.noclose |
169 | je button.noclose |
189 | jmp still |
- | |
- | 170 | jmp still |
|
190 | 171 | ;------------------------------------------------------------------------------ |
|
191 | button: ; button |
172 | button: |
192 | mov al,17 ; get id |
- | |
193 | mcall |
- | |
194 | 173 | mcall 17 ; get id |
|
195 | cmp ah,1 ; button id=1 ? |
174 | cmp ah,1 ; button id=1 ? |
196 | jne .noclose |
- | |
197 | 175 | jne .noclose |
|
198 | or eax,-1 ; close this program |
176 | or eax,-1 ; close this program |
199 | mcall |
177 | mcall |
200 | .noclose: |
178 | .noclose: |
201 | xor [vmode],1 |
179 | xor [vmode],1 |
202 | jmp red |
- | |
- | 180 | jmp red |
|
203 | 181 | ;------------------------------------------------------------------------------ |
|
204 | add_char: |
182 | add_char: |
205 | push esi |
183 | push esi |
206 | mov esi,[ebp-4] |
184 | mov esi,[ebp-4] |
207 | imul esi,80 |
185 | imul esi,80 |
Line 212... | Line 190... | ||
212 | jb .ok |
190 | jb .ok |
213 | mov dword[ebp-8],79 |
191 | mov dword[ebp-8],79 |
214 | .ok: |
192 | .ok: |
215 | pop esi |
193 | pop esi |
216 | ret |
194 | ret |
217 | - | ||
- | 195 | ;------------------------------------------------------------------------------ |
|
218 | ; ********************************************* |
196 | ; ********************************************* |
219 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
197 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
220 | ; ********************************************* |
198 | ; ********************************************* |
221 | - | ||
222 | - | ||
223 | draw_window: |
199 | draw_window: |
224 | - | ||
225 | mov eax,12 ; function 12:tell os about windowdraw |
- | |
226 | mov ebx,1 ; 1, start of draw |
200 | mcall 12,1 ; 1, start of draw |
227 | mcall |
- | |
228 | - | ||
229 | ; DRAW WINDOW |
- | |
230 | xor eax,eax ; function 0 : define and draw window |
201 | xor eax,eax ; function 0 : define and draw window |
231 | ; mov ebx,50*65536+400 ; [x start] *65536 + [x size] |
- | |
232 | mov ebx,[xstart] |
- | |
233 | mov ecx,MAXSTRINGS*10+45 ; [y start] *65536 + [y size] |
202 | mov ecx,MAXSTRINGS*10+45 ; [y start] *65536 + [y size] |
234 | mov edx,[sc.work] ; color of work area RRGGBB,8->color gl |
203 | mov edx,[sc.work] ; color of work area RRGGBB,8->color gl |
235 | or edx,0x13000000 |
204 | or edx,0x13000000 |
236 | mov edi,title ; WINDOW LABEL |
- | |
237 | mcall |
- | |
238 | - | ||
239 | mov ecx,4 |
205 | xor esi,esi |
240 | mov esi,[sc.work] |
206 | mcall ,[xstart],,,,title |
241 | mov ebx,296 shl 16+5*6 |
207 | mov ebx,296 shl 16+5*6 |
242 | mov edx,3;+1 shl 30 |
- | |
243 | mcall 8,,<5,12> |
208 | mcall 8,,<5,12>,3,[sc.work] |
244 | mov edx,[vmode] |
209 | mov edx,[vmode] |
245 | lea edx,[edx*4+duk] |
210 | lea edx,[edx*4+duk] |
246 | mcall 4,<300,8>,,,4 |
211 | mcall 4,<300,8>,,,4 |
- | 212 | call draw_text |
|
- | 213 | mcall 12,2 ; 2, end of draw |
|
247 | 214 | ret |
|
- | 215 | ;------------------------------------------------------------------------------ |
|
- | 216 | draw_text: |
|
248 | mov ebx,15*65536+33 ; draw info text with function 4 |
217 | mov ebx,15*65536+30 ; draw info text with function 4 |
249 | mov ecx,[sc.work_text] |
218 | mov ecx,[sc.work_text] |
- | 219 | or ecx,0x40000000 |
|
- | 220 | mov edi,[sc.work] |
|
250 | mov edx,text1 |
221 | mov edx,text1 |
251 | cmp [vmode],0 |
222 | cmp [vmode],0 |
252 | je .kern |
223 | je .kern |
253 | mov edx,text2 |
224 | mov edx,text2 |
254 | .kern: |
225 | .kern: |
- | 226 | push ebx ecx edx |
|
- | 227 | mcall 9,procinfo,-1 |
|
- | 228 | mov eax,[ebx+42] |
|
- | 229 | xor edx,edx |
|
- | 230 | mov ebx,6 |
|
- | 231 | div ebx |
|
- | 232 | pop edx ecx ebx |
|
255 | mov esi,80 |
233 | mov esi,80 |
- | 234 | cmp eax,esi |
|
- | 235 | ja @f |
|
- | 236 | mov esi,eax |
|
- | 237 | @@: |
|
- | 238 | cmp esi,5 |
|
- | 239 | ja @f |
|
- | 240 | mov esi,5 |
|
- | 241 | @@: |
|
- | 242 | sub esi,4 |
|
256 | mov eax,4 |
243 | mov eax,4 |
257 | newline: |
244 | newline: |
258 | mcall |
245 | mcall |
259 | add ebx,10 |
246 | add ebx,10 |
260 | add edx,80 |
247 | add edx,80 |
261 | cmp [edx],byte 'x' |
248 | cmp [edx],byte 'x' |
262 | jne newline |
249 | jne newline |
263 | mov eax,12 ; function 12:tell os about windowdraw |
- | |
264 | mov ebx,2 ; 2, end of draw |
- | |
265 | mcall |
- | |
266 | - | ||
267 | ret |
250 | ret |
268 | - | ||
269 | - | ||
- | 251 | ;------------------------------------------------------------------------------ |
|
270 | if WRITE_LOG |
252 | if WRITE_LOG |
271 | ;******************************************** |
253 | ;******************************************** |
272 | ;* input: esi = pointer to the file name * |
254 | ;* input: esi = pointer to the file name * |
273 | ;******************************************** |
255 | ;******************************************** |
Line 286... | Line 268... | ||
286 | jz .out |
268 | jz .out |
287 | stc |
269 | stc |
288 | .out: |
270 | .out: |
289 | popa |
271 | popa |
290 | ret |
272 | ret |
291 | - | ||
- | 273 | ;------------------------------------------------ |
|
292 | ;******************************************** |
274 | ;******************************************** |
293 | ;* input: esi = pointer to the file name * |
275 | ;* input: esi = pointer to the file name * |
294 | ;* edx = pointer to data buffer * |
276 | ;* edx = pointer to data buffer * |
295 | ;* ecx = data length * |
277 | ;* ecx = data length * |
296 | ;******************************************** |
278 | ;******************************************** |
Line 311... | Line 293... | ||
311 | jz .out |
293 | jz .out |
312 | stc |
294 | stc |
313 | .out: |
295 | .out: |
314 | pop ebx |
296 | pop ebx |
315 | ret |
297 | ret |
316 | - | ||
317 | - | ||
- | 298 | ;-------------------------------------------------- |
|
318 | InfoStructure: |
299 | InfoStructure: |
319 | dd 0x0 ; subfunction number |
300 | dd 0x0 ; subfunction number |
320 | dd 0x0 ; position in the file in bytes |
301 | dd 0x0 ; position in the file in bytes |
321 | dd 0x0 ; upper part of the position address |
302 | dd 0x0 ; upper part of the position address |
322 | dd 0x0 ; number of bytes to read |
303 | dd 0x0 ; number of bytes to read |
Line 326... | Line 307... | ||
326 | 307 | ||
327 | filepos dd 0 |
308 | filepos dd 0 |
328 | default_filename db '/sys/boardlog.txt',0 |
309 | default_filename db '/sys/boardlog.txt',0 |
329 | tmp db 0 |
310 | tmp db 0 |
330 | end if |
- | |
331 | - | ||
332 | - | ||
333 | - | ||
- | 311 | end if |
|
334 | 312 | ;------------------------------------------------------------------------------ |
|
335 | krnl_msg db 'K : ' |
313 | krnl_msg db 'K : ' |
Line 336... | Line 314... | ||
336 | duk db 'KernUser' |
314 | duk db 'KernUser' |
Line 347... | Line 325... | ||
347 | title db 'Allgemeines debug- & nachrichtenboard',0 |
325 | title db 'Allgemeines debug- & nachrichtenboard',0 |
348 | end if |
326 | end if |
349 | krnl_cnt dd 0 |
327 | krnl_cnt dd 0 |
350 | vmode dd 1 |
328 | vmode dd 1 |
351 | targ dd text2 |
329 | targ dd text2 |
- | 330 | ;------------------------------------------------------------------------------ |
|
352 | I_END: |
331 | I_END: |
- | 332 | ;------------------------------------------------------------------------------ |
|
353 | offs dd ? |
333 | offs dd ? |
354 | flag rb 1 |
334 | flag rb 1 |
355 | rd 2 |
335 | rd 2 |
356 | ; x1pos dd ? |
336 | ;x1pos dd ? |
357 | ; y1pos dd ? |
337 | ;y1pos dd ? |
Line 361... | Line 341... | ||
361 | ; x2pos dd ? |
341 | ;x2pos dd ? |
362 | ; y2pos dd ? |
342 | ;y2pos dd ? |
363 | text2 rb 80*(MAXSTRINGS+1) |
343 | text2 rb 80*(MAXSTRINGS+1) |
364 | tmp2 db ? |
344 | tmp2 db ? |
365 | xstart dd ? |
345 | xstart dd ? |
- | 346 | ||
366 | sc system_colors |
347 | sc system_colors |
- | 348 | ||
367 | i_end: |
349 | i_end: |
Line 368... | Line 350... | ||
368 | 350 | ||
- | 351 | filename rb 256 |
|
- | 352 | ;------------------------------------------------------------------------------ |
|
- | 353 | align 4 |
|
- | 354 | procinfo: |
|
- | 355 | rb 1024 |
|
369 | filename rb 256 |
356 | ;------------------------------------------------------------------------------ |
370 | align 4 |
357 | align 4 |
- | 358 | stackbuf rb 2000h |
|
371 | stackbuf rb 2000h |
359 | ;------------------------------------------------------------------------------ |