Subversion Repositories Kolibri OS

Rev

Rev 102 | Rev 117 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 102 Rev 115
Line 69... Line 69...
69
 push edx ; +0 [xy]
69
 push edx ; +0 [xy]
Line 70... Line 70...
70
 
70
 
71
 movzx eax,word [esp+2]   ; eax:=x
71
 movzx eax,word [esp+2]   ; eax:=x
72
 movzx ebx,word [esp+0]   ; ebx:=y
72
 movzx ebx,word [esp+0]   ; ebx:=y
73
 mov ecx,[0x3010]         ;
73
 mov ecx,[0x3010]         ;
74
 add eax,[ecx-twdw]     ; eax+=Xwin
74
 add eax,[ecx-twdw+WDATA.box.left]     ; eax+=Xwin
75
 add ebx,[ecx-twdw+4]   ; ebx+=Ywin
75
 add ebx,[ecx-twdw+WDATA.box.top]   ; ebx+=Ywin
76
 mov ecx,ebx              ; ecx = y+Ywin
76
 mov ecx,ebx              ; ecx = y+Ywin
Line 77... Line 77...
77
 mov edx,eax              ; edx = x+Xwin
77
 mov edx,eax              ; edx = x+Xwin
78
 
78
 
Line 102... Line 102...
102
 
102
 
103
 push ecx ; B
103
 push ecx ; B
Line 104... Line 104...
104
 push eax ; LFB address
104
 push eax ; LFB address
105
 
105
 
106
 mov eax,[0x3010]
106
 mov eax,[0x3010]
107
 mov ecx,[eax+draw_data-0x3000+0]
107
 mov ecx,[eax+draw_data-0x3000+RECT.left]
Line 108... Line 108...
108
 cmp ecx,0
108
 cmp ecx,0
109
 jnz dbcblimitlset_vga
109
 jnz dbcblimitlset_vga
110
 
110
 
Line 111... Line 111...
111
 mov ecx,[eax+draw_data-0x3000+4]
111
 mov ecx,[eax+draw_data-0x3000+RECT.top]
112
 cmp ecx,0
112
 cmp ecx,0
113
 jnz dbcblimitlset_vga
113
 jnz dbcblimitlset_vga
Line 114... Line 114...
114
 
114
 
115
 mov ecx,[eax+draw_data-0x3000+8]
115
 mov ecx,[eax+draw_data-0x3000+RECT.right]
116
 cmp ecx,[0xfe00] ; ecx <> Screen X size
116
 cmp ecx,[0xfe00] ; ecx <> Screen X size
Line 117... Line 117...
117
 jnz dbcblimitlset_vga
117
 jnz dbcblimitlset_vga
118
 
118
 
Line 321... Line 321...
321
     push ebx ; +8
321
     push ebx ; +8
322
     push ecx ; +4
322
     push ecx ; +4
323
     push edx ; +0
323
     push edx ; +0
Line 324... Line 324...
324
 
324
 
325
     mov ecx,[0x3010] ;
325
     mov ecx,[0x3010] ;
326
     add eax,[ecx-twdw] ; eax:=Xwin+x
326
     add eax,[ecx-twdw+WDATA.box.left] ; eax:=Xwin+x
327
     add ebx,[ecx-twdw+4] ; ebx:=Ywin+y
327
     add ebx,[ecx-twdw+WDATA.box.top] ; ebx:=Ywin+y
328
     mov ecx, eax ; ecx:=(x+Xwin)
328
     mov ecx, eax ; ecx:=(x+Xwin)
Line 329... Line 329...
329
     mov edx, ebx ; edx:=(y+Ywin)
329
     mov edx, ebx ; edx:=(y+Ywin)
330
 
330
 
Line 375... Line 375...
375
     push eax
375
     push eax
376
     push ecx
376
     push ecx
Line 377... Line 377...
377
 
377
 
Line 378... Line 378...
378
     mov eax,[0x3010]
378
     mov eax,[0x3010]
379
 
379
 
380
     mov ecx,[eax+draw_data-0x3000+0]
380
     mov ecx,[eax+draw_data-0x3000+RECT.left]
Line 381... Line 381...
381
     cmp ecx,0
381
     cmp ecx,0
382
     jnz dbcblimitlset_vga2
382
     jnz dbcblimitlset_vga2
383
 
383
 
Line 384... Line 384...
384
     mov ecx,[eax+draw_data-0x3000+4]
384
     mov ecx,[eax+draw_data-0x3000+RECT.top]
385
     cmp ecx,0
385
     cmp ecx,0
386
     jnz dbcblimitlset_vga2
386
     jnz dbcblimitlset_vga2
Line 387... Line 387...
387
 
387
 
388
     mov ecx,[eax+draw_data-0x3000+8]
388
     mov ecx,[eax+draw_data-0x3000+RECT.right]
389
     cmp ecx,[0xfe00]
389
     cmp ecx,[0xfe00]
Line 390... Line 390...
390
     jnz dbcblimitlset_vga2
390
     jnz dbcblimitlset_vga2
391
 
391
 
Line 512... Line 512...
512
     mov edx,dword [0x400000-8] ; B
512
     mov edx,dword [0x400000-8] ; B
513
     add edx,dword [WinMapAddress-8] ; +B
513
     add edx,dword [WinMapAddress-8] ; +B
514
     add edx,dword [WinMapAddress-8] ; +B
514
     add edx,dword [WinMapAddress-8] ; +B
515
     push edx
515
     push edx
Line 516... Line 516...
516
 
516
 
517
     mov eax,[draw_data+32+0] ; x start:=(x+Xwin)
517
     mov eax,[draw_data+32+RECT.left] ; x start:=(x+Xwin)
518
     mov ebx,[draw_data+32+4] ; y start:=(y+Ywin)
518
     mov ebx,[draw_data+32+RECT.top] ; y start:=(y+Ywin)
519
     mov ecx,eax
519
     mov ecx,eax
Line 520... Line 520...
520
     mov edx,ebx
520
     mov edx,ebx
521
 
521
 
Line 585... Line 585...
585
     pop eax
585
     pop eax
Line 586... Line 586...
586
 
586
 
Line 587... Line 587...
587
   nbgpvga:
587
   nbgpvga:
588
 
588
 
589
     inc eax                       ; x++
589
     inc eax                       ; x++
Line 590... Line 590...
590
     cmp eax,[draw_data+32+8]         ; X > xend?
590
     cmp eax,[draw_data+32+RECT.right]         ; X > xend?
591
     jg  nodp3vga
591
     jg  nodp3vga
592
 
592
 
Line 600... Line 600...
600
     add esi,3                     ; ptrImage+=3
600
     add esi,3                     ; ptrImage+=3
601
     jmp dp3vga
601
     jmp dp3vga
Line 602... Line 602...
602
 
602
 
Line 603... Line 603...
603
   nodp3vga:
603
   nodp3vga:
604
 
604
 
605
     mov eax,[draw_data+32+0]         ; x+Xwin
605
     mov eax,[draw_data+32+RECT.left]         ; x+Xwin
606
     inc ebx                       ; y position
606
     inc ebx                       ; y position
Line 607... Line 607...
607
     mov ecx,eax
607
     mov ecx,eax
Line 620... Line 620...
620
   ;VGA start address >> EBP:=(y+Ywin)*BytesPerScanLine+X*BytesPerPixel+AddrV
620
   ;VGA start address >> EBP:=(y+Ywin)*BytesPerScanLine+X*BytesPerPixel+AddrV
Line 621... Line 621...
621
 
621
 
Line 622... Line 622...
622
 
622
 
623
     call calculate_edi
623
     call calculate_edi
Line 624... Line 624...
624
 
624
 
Line 625... Line 625...
625
     cmp ebx,[draw_data+32+12]         ; Y > yend
625
     cmp ebx,[draw_data+32+RECT.bottom]         ; Y > yend
Line 655... Line 655...
655
     mov edx,dword [WinMapAddress-8] ; B
655
     mov edx,dword [WinMapAddress-8] ; B
656
     add edx,dword [WinMapAddress-8] ; +B
656
     add edx,dword [WinMapAddress-8] ; +B
657
     add edx,dword [WinMapAddress-8] ; +B
657
     add edx,dword [WinMapAddress-8] ; +B
658
     push edx
658
     push edx
Line 659... Line 659...
659
 
659
 
660
     mov eax,[draw_data+32+0] ; x start:=(x+Xwin)
660
     mov eax,[draw_data+32+RECT.left] ; x start:=(x+Xwin)
661
     mov ebx,[draw_data+32+4] ; y start:=(y+Ywin)
661
     mov ebx,[draw_data+32+RECT.top] ; y start:=(y+Ywin)
662
     mov ecx,eax
662
     mov ecx,eax
Line 663... Line 663...
663
     mov edx,ebx
663
     mov edx,ebx
664
 
664
 
Line 729... Line 729...
729
     pop eax
729
     pop eax
Line 730... Line 730...
730
 
730
 
Line 731... Line 731...
731
   snbgpvga:
731
   snbgpvga:
732
 
732
 
733
     inc eax                       ; x++
733
     inc eax                       ; x++
Line 734... Line 734...
734
     cmp eax,[draw_data+32+8]         ; X > xend?
734
     cmp eax,[draw_data+32+RECT.right]         ; X > xend?
735
     jg  snodp3vga
735
     jg  snodp3vga
736
 
736
 
Line 744... Line 744...
744
     add esi,3                     ; ptrImage+=3
744
     add esi,3                     ; ptrImage+=3
745
     jmp sdp3vga
745
     jmp sdp3vga
Line 746... Line 746...
746
 
746
 
Line 747... Line 747...
747
   snodp3vga:
747
   snodp3vga:
748
 
748
 
749
     mov eax,[draw_data+32+0]         ; x+Xwin
749
     mov eax,[draw_data+32+RECT.left]         ; x+Xwin
750
     inc ebx                       ; y position
750
     inc ebx                       ; y position
Line 751... Line 751...
751
     mov ecx,eax
751
     mov ecx,eax
Line 764... Line 764...
764
          ;VGA start address >> EBP:=(y+Ywin)*BytesPerScanLine+X*BytesPerPixel+A
764
          ;VGA start address >> EBP:=(y+Ywin)*BytesPerScanLine+X*BytesPerPixel+A
Line 765... Line 765...
765
 
765
 
Line 766... Line 766...
766
 
766
 
767
     call calculate_edi
767
     call calculate_edi
Line 768... Line 768...
768
 
768
 
Line 769... Line 769...
769
     cmp ebx,[draw_data+32+12]        ; Y > yend
769
     cmp ebx,[draw_data+32+RECT.bottom]        ; Y > yend