home *** CD-ROM | disk | FTP | other *** search
/ Current Shareware 1994 January / SHAR194.ISO / viewers / qpeg10c.zip / VESA.ASM < prev    next >
Assembly Source File  |  1993-10-15  |  1KB  |  62 lines

  1. ;
  2. ; QPEG video driver
  3. ; for VESA compatible graphics cards
  4. ;
  5.  
  6.         .286
  7. Code    Segment Para 'Code'
  8.         Assume  cs:Code
  9.         Org 100h
  10.  
  11. Procs   dw      Bank,Init,Exit,0
  12.  
  13. Bank:   pusha
  14.         mul     cs:VesaGranularity
  15.         mov     dx,ax
  16.         push    dx
  17.         xor     bx,bx           ; window A
  18.         call    cs:[VesaBankSwitch]
  19.         pop     dx
  20.         mov     bx,1            ; window B
  21.         call    cs:[VesaBankSwitch]
  22.         popa
  23.         retf
  24.  
  25. VesaBankSwitch  dd 0
  26. VesaGranularity db 0
  27.  
  28. Init:   push    cx
  29.         mov     dx,cs
  30.         mov     es,dx
  31.         xor     di,di           ; es:di - VESA info table
  32.         mov     cx,bx           ; mode number
  33.         mov     ax,4f01h        ; get VESA mode info
  34.         int     10h
  35.  
  36.         mov     ax,cs:[0ch]
  37.         mov     Word Ptr cs:VesaBankSwitch,ax
  38.         mov     ax,cs:[0eh]
  39.         mov     Word Ptr cs:VesaBankSwitch+2,ax
  40.  
  41.         mov     cx,cs:[04h]     ; VESA page granularity (in Kb)
  42.         mov     al,1
  43.         test    cx,cx
  44.         je      Gran64
  45.         mov     ax,64
  46.         div     cl
  47. Gran64: mov     cs:VesaGranularity,al
  48.  
  49.         pop     ax
  50.         mov     cx,cs:[10h]     ; bytes per line
  51.         cmp     cx,ax
  52.         jae     Ready
  53.         add     cx,cx
  54. Ready:  retf
  55.  
  56. Exit:   retf
  57.  
  58. Code    Ends
  59.         End Procs
  60.  
  61. ; End of source.
  62.