Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1.   encoding_raw:
  2.     DEBUGF 1,'FRAME: RAW\n'
  3.  
  4.     mov   ax,[screen.width]                   ;
  5.     mov   bx,[frame.y]                        ;
  6.     mul   bx                                  ;
  7.     DEBUGF 1,'screen.width*frame.y=%u\n',ax
  8.     mov   bx,3                                ;
  9.     mul   bx                                  ;
  10.     shl   edx,16                              ;
  11.     mov   dx,ax                               ;
  12.     mov   ebx,edx                             ; mov ebx,[screen.width]*[frame.y]*3
  13.     push  ebx
  14.     DEBUGF 1,'screen.width*frame.y*3=%u\n',edx
  15.     mov   ax,[frame.x]                        ;
  16.     mov   bx,3                                ;
  17.     mul   bx                                  ;
  18.     shl   edx,16                              ;
  19.     mov   dx,ax                               ;
  20.     pop   ebx
  21.     add   ebx,edx                             ; add ebx,[frame.x]*3
  22.     add   ebx,framebuffer_data                ; add ebx,framebuffer_data
  23.     push  ebx
  24.     DEBUGF 1,'frame.x*3=%u\n',edx
  25.  
  26.     mov   ax,[frame.width]                    ;
  27.     mov   bx,3                                ;
  28.     mul   bx                                  ;
  29.     shl   edx,16                              ;
  30.     mov   dx,ax                               ;
  31.     DEBUGF 1,'frame.width*3=%u\n',edx
  32.     pop   ebx
  33.     add   edx,ebx                             ; mov edx,ebx+[frame.width]*3
  34.  
  35.     push  ebx
  36.     push  edx                                 ;
  37.     mov   ax,[frame.height]                   ;
  38.     mov   bx,3                                ;
  39.     mul   bx                                  ;
  40.     mov   bx,[screen.width]                   ;
  41.     mul   bx                                  ;
  42.     shl   edx,16                              ;
  43.     mov   dx,ax                               ;
  44.     mov   ecx,edx                             ;
  45.     pop   edx                                 ;
  46.     DEBUGF 1,'frame.height*screen.width*3=%u\n',ecx
  47.     add   ecx,edx                             ; mov ecx,edx+[frame.height]*[screen.width]*3
  48.     pop   ebx
  49.  
  50.     DEBUGF 1,'FRAME: framebuffer:%u ebx:%u ecx:%u edx:%u\n',framebuffer_data,ebx,ecx,edx
  51.  
  52.    .pixelloop32:
  53.     cmp   ebx,ecx
  54.     jge   next_rectangle
  55.  
  56.     add   esi,2           ; 32 bit code RAW
  57.     mov   al,[esi]        ;
  58.     mov   [ebx],al        ;
  59.     inc   ebx             ;
  60.     dec   esi             ;
  61.                           ;
  62.     mov   al,[esi]        ;
  63.     mov   [ebx],al        ;
  64.     inc   ebx             ;
  65.     dec   esi             ;
  66.                           ;
  67.     mov   al,[esi]        ;
  68.     mov   [ebx],al        ;
  69.     inc   ebx             ;
  70.     add   esi,4           ;
  71.  
  72. ;    mov   ax,[esi]        ; 16 bit code RAW
  73. ;    and   ax,32
  74. ;    mov   [ebx],al
  75. ;    inc   ebx
  76. ;
  77. ;    mov   ax,[esi]
  78. ;    shr   ax,5
  79. ;    and   ax,32
  80. ;    mov   [ebx],al
  81. ;    inc   ebx
  82. ;
  83. ;    mov   ax,[esi]
  84. ;    shr   ax,10
  85. ;    and   ax,64
  86. ;    mov   [ebx],al
  87. ;    inc   ebx
  88. ;    inc   esi
  89. ;    inc   esi
  90.  
  91.  
  92. ;    mov   al,[esi]        ; 8 bit code RAW
  93. ;    and   al,7            ;
  94. ;    mov   byte[ebx],0xff;al        ;
  95. ;    inc   ebx             ;
  96. ;                          ;
  97. ;    mov   al,[esi]        ;
  98. ;    shr   al,3            ;
  99. ;    and   al,7            ;
  100. ;    mov   [ebx],al        ;
  101. ;    inc   ebx             ;
  102. ;                          ;
  103. ;    mov   al,[esi]        ;
  104. ;    shr   al,6            ;
  105. ;    and   al,3            ;
  106. ;    mov   [ebx],al        ;
  107. ;    inc   ebx             ;
  108. ;                          ;
  109. ;    inc   esi             ;
  110.  
  111.  
  112.     cmp   ebx,edx
  113.     jl    .pixelloop32
  114.  
  115.     push  edx
  116.     push  ebx
  117.     mov   ax,[screen.width]
  118.     mov   bx,3
  119.     mul   bx
  120.     shl   edx,16
  121.     mov   dx,ax
  122.     mov   eax,edx
  123.     pop   ebx
  124.     pop   edx
  125.  
  126.     add   ebx,eax ; eax = [screen.width]*3
  127.     add   edx,eax
  128.  
  129.     push  edx
  130.     push  ebx
  131.     mov   ax,[frame.width]
  132.     mov   bx,3
  133.     mul   bx
  134.     shl   edx,16
  135.     mov   dx,ax
  136.     mov   eax,edx
  137.     pop   ebx
  138.     pop   edx
  139.  
  140.     sub   ebx,eax ; eax = [frame.width]*3
  141.  
  142.     jmp   .pixelloop32
  143.  
  144.  
  145.  
  146.