Subversion Repositories Kolibri OS

Rev

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