home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / video / 5 / 5_9.asm < prev   
Encoding:
Assembly Source File  |  1988-08-11  |  784 b   |  48 lines

  1.         TITLE    'Listing 5-9'
  2.         NAME    ReadPixel13
  3.         PAGE    55,132
  4.  
  5. ;
  6. ; Name:        ReadPixel13
  7. ;
  8. ; Function:    Read the value of a pixel in 320x200 256-color mode (MCGA and VGA)
  9. ;
  10. ; Caller:    Microsoft C:
  11. ;
  12. ;            int ReadPixel13(x,y);
  13. ;
  14. ;            int x,y;        /* pixel coordinates */
  15. ;
  16.  
  17. ARGx        EQU    word ptr [bp+4]    ; stack frame addressing
  18. ARGy        EQU    word ptr [bp+6]
  19.  
  20.  
  21. _TEXT        SEGMENT    byte public 'CODE'
  22.         ASSUME    cs:_TEXT
  23.  
  24.         EXTRN    PixelAddr13:near
  25.  
  26.         PUBLIC    _ReadPixel13
  27. _ReadPixel13    PROC    near
  28.  
  29.         push    bp        ; preserve caller registers
  30.         mov    bp,sp
  31.  
  32.         mov    ax,ARGy        ; AX := y
  33.         mov    bx,ARGx        ; BX := x
  34.         call    PixelAddr13    ; ES:BX -> buffer
  35.  
  36.         mov    al,es:[bx]    ; AL := pixel value
  37.         xor    ah,ah        ; AX := pixel value
  38.  
  39.         mov    sp,bp
  40.         pop    bp
  41.         ret
  42.  
  43. _ReadPixel13    ENDP
  44.  
  45. _TEXT        ENDS
  46.  
  47.         END
  48.