home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / CLIPPER / NFPAT9 / ADAPTER.ASM next >
Assembly Source File  |  1993-08-17  |  3KB  |  116 lines

  1. ; File......: ADAPTER.ASM
  2. ; Author....: Ted Means
  3. ; Date......: $Date:   17 Aug 1993 19:25:38  $
  4. ; Revision..: $Revision:   1.3  $
  5. ; Log file..: $Logfile:   C:/nanfor/src/adapter.asv  $
  6. ; This is an original work by Ted Means and is placed in the
  7. ; public domain.
  8. ;
  9. ; Modification history:
  10. ; ---------------------
  11. ;
  12. ; $Log:   C:/nanfor/src/adapter.asv  $
  13. ;  
  14. ;     Rev 1.3   17 Aug 1993 19:25:38   GLENN
  15. ;  Ted modified so it would work in protected mode.
  16. ;  
  17. ;     Rev 1.2   15 Aug 1991 23:07:18   GLENN
  18. ;  Forest Belt proofread/edited/cleaned up doc
  19. ;  
  20. ;     Rev 1.1   14 Jun 1991 19:54:18   GLENN
  21. ;  Minor edit to file header
  22. ;  
  23. ;     Rev 1.0   01 Apr 1991 01:03:08   GLENN
  24. ;  Nanforum Toolkit
  25. ;  
  26. ;
  27.  
  28.  
  29.  
  30. ;  $DOC$
  31. ;  $FUNCNAME$
  32. ;     FT_ADAPTER()
  33. ;  $CATEGORY$
  34. ;     Video
  35. ;  $ONELINER$
  36. ;     Report the type of video adapter installed
  37. ;  $SYNTAX$
  38. ;     FT_ADAPTER() -> nResult
  39. ;  $ARGUMENTS$
  40. ;     None
  41. ;  $RETURNS$
  42. ;     Integer representing type of video adapter
  43. ;
  44. ;        0 - monochrome
  45. ;        1 - CGA
  46. ;        2 - EGA
  47. ;        3 - VGA
  48. ;  $DESCRIPTION$
  49. ;     This function is valuable if you use a graphics library and need to
  50. ;     know what type of graphics adapter is installed.
  51. ;
  52. ;     The source code is written to adhere to Turbo Assembler's IDEAL mode.
  53. ;     To use another assembler, you will need to rearrange the PROC and
  54. ;     SEGMENT directives, and also the ENDP and ENDS directives (a very
  55. ;     minor task).
  56. ;  $EXAMPLES$
  57. ;     iVideo := FT_ADAPTER()
  58. ;
  59. ;     DO CASE
  60. ;        CASE iVideo == 0
  61. ;           QOUT( "You have a monochrome adapter." )
  62. ;        CASE iVideo == 1
  63. ;           QOUT( "You have a CGA adapter." )
  64. ;        CASE iVideo == 2
  65. ;           QOUT( "You have an EGA adapter." )
  66. ;        CASE iVideo == 3
  67. ;           QOUT( "You have a VGA adapter." )
  68. ;     ENDCASE
  69. ;  $SEEALSO$
  70. ;     FT_SETMODE()
  71. ;  $END$
  72. ;
  73.  
  74. IDEAL
  75.  
  76. Public   FT_ADAPTER
  77.  
  78. Extrn    __RetNI:Far
  79.  
  80. Segment  _NanFor   Word      "CODE"
  81.          Assume    CS:_NanFor
  82.  
  83. Proc     FT_ADAPTER          Far
  84.  
  85.          Mov       AX,40h
  86.          Mov       ES,AX
  87.          Xor       AX,AX
  88.          Cmp       [Word Ptr ES:63h],3B4h
  89.          JE        Done
  90.  
  91. IsVGA:   Mov       AX,1A00h                  ; VGA-only BIOS call
  92.          Int       10h                       ; Call video BIOS
  93.          Cmp       AL,1Ah                    ; See if call supported
  94.          JNE       IsEGA                     ; If not, try EGA
  95.          Mov       AX,3                      ; Indicate VGA
  96.          JMP       Short Done                ; Return to application
  97.  
  98. IsEGA:   Mov       AH,12h                    ; EGA-only BIOS call
  99.          Mov       BL,10h                    ; Set BL to test value
  100.          Int       10h                       ; Call video BIOS
  101.          Cmp       BL,10h                    ; Did BL change?
  102.          JE        IsCGA                     ; No, so it's a CGA
  103.          Mov       AX,2                      ; Indicate EGA
  104.          Jmp       Short Done                ; Return to application
  105.  
  106. IsCGA:   Mov       AX,1                      ; Indicate CGA
  107.  
  108. Done:    Push      AX                        ; Save adapter type on stack
  109.          Call      __RetNI                   ; Return it
  110.          Pop       AX
  111.          RetF
  112. Endp     FT_ADAPTER
  113. Ends     _NanFor
  114. End
  115.