Rev 1245 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1245 | Rev 1776 | ||
---|---|---|---|
Line 434... | Line 434... | ||
434 | ;--------------in: eax - x1 |
434 | ;--------------in: eax - x1 |
435 | ;-------------- ebx - x2 |
435 | ;-------------- ebx - x2 |
436 | ;-------------- edi - pointer to screen buffer |
436 | ;-------------- edi - pointer to screen buffer |
437 | ;stack - another parameters : |
437 | ;stack - another parameters : |
438 | .y equ dword [ebp+4] |
438 | .y equ dword [ebp+4] |
439 | .bx1 equ dword [ebp+8] ; --- |
439 | .bx1 equ [ebp+8] ; --- |
440 | .by1 equ dword [ebp+12] ; | |
440 | .by1 equ dword [ebp+12] ; | |
441 | .bx2 equ dword [ebp+16] ; | |
441 | .bx2 equ [ebp+16] ; | |
442 | .by2 equ dword [ebp+20] ; |> bump and env coords |
442 | .by2 equ dword [ebp+20] ; |> bump and env coords |
443 | .ex1 equ dword [ebp+24] ; |> shifted shl ROUND |
443 | .ex1 equ [ebp+24] ; |> shifted shl ROUND |
444 | .ey1 equ dword [ebp+28] ; | |
444 | .ey1 equ dword [ebp+28] ; | |
445 | .ex2 equ dword [ebp+32] ; | |
445 | .ex2 equ [ebp+32] ; | |
446 | .ey2 equ dword [ebp+36] ; --- |
446 | .ey2 equ dword [ebp+36] ; --- |
447 | .bmap equ dword [ebp+40] |
447 | .bmap equ dword [ebp+40] |
448 | .emap equ dword [ebp+44] |
448 | .emap equ dword [ebp+44] |
Line 449... | Line 449... | ||
449 | 449 | ||
450 | .x1 equ dword [ebp-4] |
450 | .x1 equ dword [ebp-4] |
451 | .x2 equ dword [ebp-8] |
451 | .x2 equ dword [ebp-8] |
452 | .dbx equ dword [ebp-12] |
452 | .dbx equ dword [ebp-12] |
453 | .dby equ dword [ebp-16] |
453 | .dby equ [ebp-16] |
454 | .dex equ dword [ebp-20] |
454 | .dex equ dword [ebp-20] |
455 | .dey equ dword [ebp-24] |
455 | .dey equ [ebp-24] |
456 | .cbx equ dword [ebp-28] |
456 | .cbx equ dword [ebp-28] |
457 | .cby equ dword [ebp-32] |
457 | .cby equ [ebp-32] |
458 | .cex equ dword [ebp-36] |
458 | .cex equ dword [ebp-36] |
459 | .cey equ dword [ebp-40] |
459 | .cey equ [ebp-40] |
Line 460... | Line 460... | ||
460 | mov ebp,esp |
460 | mov ebp,esp |
461 | 461 | ||
462 | mov ecx,.y |
462 | mov ecx,.y |
Line 468... | Line 468... | ||
468 | cmp eax,ebx |
468 | cmp eax,ebx |
469 | jl .bl_ok |
469 | jl .bl_ok |
470 | je .bl_end |
470 | je .bl_end |
Line 471... | Line 471... | ||
471 | 471 | ||
472 | xchg eax,ebx |
472 | xchg eax,ebx |
473 | 473 | if Ext = NON |
|
474 | mov edx,.bx1 |
474 | mov edx,.bx1 |
475 | xchg edx,.bx2 |
475 | xchg edx,.bx2 |
476 | mov .bx1,edx |
476 | mov .bx1,edx |
477 | mov edx,.by1 |
477 | mov edx,.by1 |
Line 482... | Line 482... | ||
482 | xchg edx,.ex2 |
482 | xchg edx,.ex2 |
483 | mov .ex1,edx |
483 | mov .ex1,edx |
484 | mov edx,.ey1 |
484 | mov edx,.ey1 |
485 | xchg edx,.ey2 |
485 | xchg edx,.ey2 |
486 | mov .ey1,edx |
486 | mov .ey1,edx |
- | 487 | else |
|
- | 488 | movq mm0,.bx1 |
|
- | 489 | movq mm1,.bx2 |
|
- | 490 | movq mm2,.ex1 |
|
- | 491 | movq mm3,.ex2 |
|
- | 492 | movq .bx2,mm0 |
|
- | 493 | movq .bx1,mm1 |
|
- | 494 | movq .ex1,mm3 |
|
- | 495 | movq .ex2,mm2 |
|
- | 496 | end if |
|
487 | .bl_ok: |
497 | .bl_ok: |
488 | push eax |
498 | push eax |
489 | push ebx ;store x1, x2 |
499 | push ebx ;store x1, x2 |
Line 490... | Line 500... | ||
490 | 500 | ||
Line 521... | Line 531... | ||
521 | sub eax,.ey1 |
531 | sub eax,.ey1 |
522 | cdq |
532 | cdq |
523 | idiv ecx |
533 | idiv ecx |
524 | push eax |
534 | push eax |
Line 525... | Line 535... | ||
525 | 535 | ||
526 | push .bx1 |
536 | push dword .bx1 |
527 | push .by1 |
537 | push .by1 |
528 | push .ex1 |
538 | push dword .ex1 |
529 | push .ey1 |
539 | push .ey1 |
530 | .draw: |
540 | .draw: |
Line 531... | Line 541... | ||
531 | ; if TEX = SHIFTING ;bump drawing only in shifting mode |
541 | ; if TEX = SHIFTING ;bump drawing only in shifting mode |
Line 589... | Line 599... | ||
589 | .black: |
599 | .black: |
590 | xor eax,eax |
600 | xor eax,eax |
591 | .put_pixel: |
601 | .put_pixel: |
592 | stosd |
602 | stosd |
593 | dec edi |
603 | dec edi |
- | 604 | ;if Ext >= MMX |
|
- | 605 | ; movq mm0,.cby |
|
- | 606 | ; movq mm1,.cey |
|
- | 607 | ; paddd mm0,.dby |
|
- | 608 | ; paddd mm1,.dey |
|
- | 609 | ; movq .cby,mm0 |
|
- | 610 | ; movq .cey,mm1 |
|
594 | 611 | ;else |
|
595 | mov eax,.dbx |
612 | mov eax,.dbx |
596 | add .cbx,eax |
613 | add .cbx,eax |
597 | mov eax,.dby |
614 | mov eax,.dby |
598 | add .cby,eax |
615 | add .cby,eax |
599 | mov eax,.dex |
616 | mov eax,.dex |
600 | add .cex,eax |
617 | add .cex,eax |
601 | mov eax,.dey |
618 | mov eax,.dey |
602 | add .cey,eax |
619 | add .cey,eax |
603 | 620 | ;end if |
|
604 | dec ecx |
621 | dec ecx |
605 | jnz .draw |
622 | jnz .draw |
606 | ; end if |
623 | ; end if |
607 | .bl_end: |
624 | .bl_end: |
608 | mov esp,ebp |
625 | mov esp,ebp |