home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / VOGLE.ZIP / VOGLE / DRIVERS / IBMPC / EGAPADDR.ASM < prev    next >
Assembly Source File  |  2000-02-11  |  967b  |  67 lines

  1.         TITLE    EGAPADDR - Return video buffer address of a pixel.
  2.         NAME    EGAPADDR
  3.         PAGE    55,132
  4.  
  5.  
  6.         COMMENT    $
  7.  
  8.     Name:        EGAPADDR
  9.  
  10.     Function:    Determine buffer address of pixel in native EGA and VGA modes:
  11.             320 x 200 16 colour
  12.             640 x 200 16 colour
  13.             640 x 350 16 colour
  14.             640 x 350 monochrome (4 colour)
  15.             640 x 480 2 colour
  16.             640 x 480 16 colour
  17.  
  18.     Caller:        AX = y co-ord
  19.             BX = x co-ord
  20.  
  21.     Returns:
  22.             AH = bit mask
  23.             CL = number of bits to shift left
  24.             BX = byte offset in buffer
  25.             ES = video buffer segment
  26.  
  27.                                 $
  28.  
  29. BytesPerLine    EQU        80
  30.  
  31.         extrn    __buffer_segment:word
  32.  
  33. VEGA_TEXT    SEGMENT    byte public 'CODE'
  34.         ASSUME    cs:VEGA_TEXT
  35.  
  36.         PUBLIC    egapaddr
  37.  
  38. egapaddr    PROC    far
  39.  
  40.     mov        cl,bl
  41.     push        dx
  42.  
  43.     mov        dx,BytesPerLine
  44.     mul        dx
  45.  
  46.     pop        dx
  47.     shr        bx,1
  48.     shr        bx,1
  49.     shr        bx,1
  50.     add        bx,ax
  51.  
  52.     mov        ax,__buffer_segment
  53.     mov        es,ax
  54.  
  55.     and        cl,7
  56.     xor        cl,7
  57.     mov        ah,1
  58.     ret
  59.  
  60. egapaddr    endp
  61.  
  62. VEGA_TEXT    ends
  63.  
  64.         end
  65.  
  66.  
  67.