Rev 49 | Rev 54 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 49 | Rev 52 | ||
---|---|---|---|
Line 266... | Line 266... | ||
266 | ; ebx = [top]*65536+[bottom] |
266 | ; ebx = [top]*65536+[bottom] |
267 | ; eax = 6 ; set screen workarea |
267 | ; eax = 6 ; set screen workarea |
268 | ; input : ecx = [left]*65536+[right] |
268 | ; input : ecx = [left]*65536+[right] |
269 | ; edx = [top]*65536+[bottom] |
269 | ; edx = [top]*65536+[bottom] |
270 | ; output : nothing |
270 | ; output : nothing |
- | 271 | ; eax = 7 ; get skin margins |
|
- | 272 | ; input : nothing |
|
- | 273 | ; output : eax = [left]*65536+[right] |
|
- | 274 | ; ebx = [top]*65536+[bottom] |
|
- | 275 | ; eax = 8 ; set window skin |
|
- | 276 | ; input : ecx = pointer to file info block |
|
- | 277 | ; output : eax = FS error code |
|
Line 271... | Line 278... | ||
271 | 278 | ||
Line 272... | Line 279... | ||
272 | 279 | ||
Line 307... | Line 314... | ||
307 | 314 | ||
308 | cmp eax,2 ; set common window colours |
315 | cmp eax,2 ; set common window colours |
309 | jne no_com_colours |
316 | jne no_com_colours |
310 | mov [windowtypechanged],dword 1 |
317 | mov [windowtypechanged],dword 1 |
311 | mov esi,[0x3010] |
318 | mov esi,[0x3010] |
312 | add esi,0x10 |
- | |
313 | add ebx,[esi] |
- | |
314 | mov esi,ebx |
319 | add esi,[esi+0x10] |
315 | mov edi,common_colours |
320 | mov edi,common_colours |
316 | and ecx,127 |
321 | and ecx,127 |
317 | cld |
322 | cld |
318 | rep movsb |
323 | rep movsb |
Line 382... | Line 387... | ||
382 | .exit: |
387 | .exit: |
383 | popad |
388 | popad |
384 | ret |
389 | ret |
385 | no_set_workarea: |
390 | no_set_workarea: |
Line -... | Line 391... | ||
- | 391 | ||
- | 392 | cmp eax,7 ; get skin margins |
|
- | 393 | jne no_get_skinmargins |
|
- | 394 | popad |
|
- | 395 | mov eax,dword[_skinmargins+0] |
|
- | 396 | mov [esp+36],eax |
|
- | 397 | mov eax,dword[_skinmargins+4] |
|
- | 398 | mov [esp+24],eax |
|
- | 399 | ret |
|
- | 400 | no_get_skinmargins: |
|
- | 401 | ||
- | 402 | cmp eax,8 ; set window skin |
|
- | 403 | jne no_set_skin |
|
- | 404 | mov eax,ebx |
|
- | 405 | mov edi,[0x3010] |
|
- | 406 | add ebx,[edi+0x10] ; abs start of info block |
|
- | 407 | pushd [ebx+0] [ebx+4] [ebx+8] [ebx+12] |
|
- | 408 | mov dword[ebx+0],0 ; read |
|
- | 409 | mov dword[ebx+4],0 ; from the beginning |
|
- | 410 | mov dword[ebx+8],64 ; 32 KBytes maximum |
|
- | 411 | mov ecx,skin_data+64*512 |
|
- | 412 | sub ecx,[edi+0x10] |
|
- | 413 | mov dword[ebx+12],ecx ; destination |
|
- | 414 | push eax |
|
- | 415 | pushad |
|
- | 416 | call file_system |
|
- | 417 | popad |
|
- | 418 | pop eax |
|
- | 419 | popd [ebx+12] [ebx+8] [ebx+4] [ebx+0] |
|
- | 420 | cmp eax,ERROR_SUCCESS |
|
- | 421 | je @f |
|
- | 422 | cmp eax,ERROR_END_OF_FILE |
|
- | 423 | jne .exit |
|
- | 424 | @@: cmp [skin_data+64*512+SKIN_HEADER.ident],'SKIN' |
|
- | 425 | mov eax,ERROR_UNKNOWN_FS |
|
- | 426 | jne .exit |
|
- | 427 | mov esi,skin_data+64*512 |
|
- | 428 | mov edi,skin_data |
|
- | 429 | mov ecx,(64*512)/4 |
|
- | 430 | rep movsd |
|
- | 431 | call parse_skin_data |
|
- | 432 | call calculatescreen |
|
- | 433 | mov dword[esp+32+36],0 |
|
- | 434 | jmp redraw_screen_direct |
|
- | 435 | .exit: |
|
- | 436 | mov [esp+32+36],eax |
|
- | 437 | popad |
|
- | 438 | ret |
|
- | 439 | no_set_skin: |
|
386 | 440 | ||
387 | popad |
441 | popad |
Line 388... | Line 442... | ||
388 | ret |
442 | ret |
Line 1322... | Line 1376... | ||
1322 | mov eax,[npye] |
1376 | mov eax,[npye] |
1323 | mov [edi+12],eax |
1377 | mov [edi+12],eax |
Line 1324... | Line 1378... | ||
1324 | 1378 | ||
Line 1325... | Line 1379... | ||
1325 | @@: mov [reposition],cl |
1379 | @@: mov [reposition],cl |
1326 | 1380 | ||
1327 | cmp [reposition],1 ; save new X and Y start |
1381 | cmp [reposition],1 ; save new position and size |
1328 | jne no_xy_save |
1382 | jne no_bounds_save |
1329 | ; |
1383 | ; |
1330 | push esi edi ecx |
1384 | push esi edi ecx |
1331 | mov esi,edi |
1385 | mov esi,edi |
1332 | sub edi,window_data |
1386 | sub edi,window_data |
1333 | shr edi,5 |
1387 | shr edi,5 |
1334 | shl edi,8 |
1388 | shl edi,8 |
1335 | add edi,0x80000+0x90 |
1389 | add edi,0x80000+0x90 |
1336 | mov ecx,2 |
1390 | mov ecx,4 |
1337 | cld |
1391 | cld |
1338 | rep movsd |
1392 | rep movsd |
1339 | pop ecx edi esi |
1393 | pop ecx edi esi |
Line 1340... | Line 1394... | ||
1340 | ; |
1394 | ; |
Line 1341... | Line 1395... | ||
1341 | no_xy_save: |
1395 | no_bounds_save: |
1342 | 1396 |