Subversion Repositories Kolibri OS

Rev

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

  1. .pbm:
  2.         stdcall img.create, [width], [height], Image.bpp1
  3.         test    eax, eax
  4.         jz      .quit
  5.         mov     [retvalue], eax
  6.         mov     ebx, eax
  7.  
  8.         mov     edi, [ebx+Image.Palette]
  9.         mov     [edi], dword 0x00ffffff
  10.         mov     [edi + 4], dword 0x00000000
  11.  
  12.         cmp     [data_type], PNM_ASCII
  13.         je      .pbm.ascii
  14.  
  15.   .pbm.raw:
  16.         mov     ecx, [ebx+Image.Width]
  17.         add     ecx, 7
  18.         shr     ecx, 3
  19.         imul    ecx, [ebx+Image.Height]
  20.         mov     edi, [ebx+Image.Data]
  21.         rep     movsb
  22.         jmp     .quit
  23.  
  24.   .pbm.ascii:
  25.         mov     edi, [ebx+Image.Data]
  26.   .pbm.next_line:
  27.         mov     edx, [width]
  28.         mov     ecx, 7
  29.         xor     eax, eax
  30.   .pbm.next_char:
  31.         lodsb
  32.         cmp     al, ' '
  33.         jna     .pbm.next_char
  34.   .pbm.get_number:
  35.         cmp     al, '1'
  36.         sete    bl
  37.         shl     bl, cl
  38.         or      ah, bl
  39.         dec     ecx
  40.         jns     @f
  41.         shr     eax, 8
  42.         stosb
  43.         mov     ecx, 7
  44.     @@:
  45.         dec     edx
  46.         jnz     .pbm.next_char
  47.         test    byte[width], 0x07
  48.         jz      @f
  49.         shr     eax, 8
  50.         stosb
  51.     @@:
  52.         dec     [height]
  53.         jnz     .pbm.next_line
  54.         jmp     .quit
  55.