home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 05 / heimwerk / getvideo.bas next >
BASIC Source File  |  1990-02-07  |  5KB  |  184 lines

  1. DECLARE SUB getgraf (mode!)
  2. DECLARE FUNCTION bestvideo! ()
  3. '* ------------------------------------------------------- *
  4. '*                      GETVIDEO.BAS                       *
  5. '*      ermittelt die Konfiguration der Grafikkarte        *
  6. '*            (c) 1990 Kay Glahn  &  TOOLBOX               *
  7. '* ------------------------------------------------------- *
  8. TYPE video
  9.   maxx AS INTEGER
  10.   maxy AS INTEGER
  11.   maxh AS INTEGER
  12.   maxv AS INTEGER
  13.   maxcolor AS INTEGER
  14. END TYPE
  15. DIM graf AS video
  16.  
  17. '* ------------------------------------------------------- *
  18. '*                    Demoprogramm                         *
  19. best = bestvideo
  20. CLS
  21. IF best = 0 THEN
  22.   LOCATE 4, 15
  23.   PRINT "╔══════════════════════════════════════════════╗"
  24.   LOCATE 5, 15
  25.   PRINT "║  Leider kein grafikfähiger Bildschirmadapter ║"
  26.   LOCATE 6, 15
  27.   PRINT "║               vorhanden !!                   ║"
  28.   LOCATE 7, 15
  29.   PRINT "╚══════════════════════════════════════════════╝ "
  30.   WHILE INKEY$ = "": WEND
  31.   CLS
  32.   END
  33. END IF
  34. SCREEN best
  35. CALL getgraf(best)
  36. spalte = INT(graf.maxh / 4)
  37. zeile = INT(graf.maxv / 4)
  38. LOCATE zeile, spalte
  39. PRINT "Ermittlung der Grafikkarten-Konfiguration"
  40. LOCATE zeile + 2, spalte
  41. PRINT "Bestmöglicher Grafikmodus      : "; best
  42. LOCATE zeile + 3, spalte
  43. PRINT "Horizontale Grafikauflösung    : "; graf.maxx
  44. LOCATE zeile + 4, spalte
  45. PRINT "Vertikale Grafikauflösung      : "; graf.maxy
  46. LOCATE zeile + 5, spalte
  47. PRINT "Horizontale Textauflösung      : "; graf.maxh
  48. LOCATE zeile + 6, spalte
  49. PRINT "Vertikale Textauflösung        : "; graf.maxv
  50. LOCATE zeile + 7, spalte
  51. PRINT "Anzahl der Farben              : "; graf.maxcolor
  52. breite = graf.maxx / graf.maxh
  53. hoehe = graf.maxy / graf.maxv
  54. spalte = graf.maxx / 4 - 2 * breite
  55. zeile = graf.maxy / 4 - 2 * hoehe
  56. LINE (spalte, zeile)-STEP(breite * 43, hoehe * 9), , B
  57. LINE (spalte - 3, zeile - 2)-STEP(breite * 43 + 6, hoehe * 9 + 4), , B
  58. LINE (spalte, zeile + hoehe * 2.3)-(spalte + breite * 43, zeile + hoehe * 2.3)
  59. PAINT (1, 1)
  60. WHILE INKEY$ = "": WEND
  61. CLS
  62. END
  63.  
  64. '* ------------------------------------------------------- *
  65. '*               Rotinen zur Fehlerbehandlung              *
  66. Videoerr:
  67.    SELECT CASE bestmode
  68.       CASE 12 'VGA
  69.          bestmode = 11 'MCGA
  70.       CASE 11 'MCGA
  71.          bestmode = 9  'EGA256
  72.       CASE 9  'EGA256
  73.          bestmode = 10 'MONO
  74.       CASE 10 'MONO
  75.          bestmode = 2  'CGA
  76.       CASE 2  'CGA
  77.          bestmode = 3  'HERC
  78.       CASE ELSE
  79.          bestmode = 0  'KEINE
  80.    END SELECT
  81.    RESUME
  82. EGAErr:
  83.    bestmode = 8 'EGA64
  84.    RESUME NEXT
  85.  
  86.  
  87. '* ------------------------------------------------------- *
  88. '*             ermittlung des besten Grafikmodus           *
  89. FUNCTION bestvideo
  90.   SHARED bestmode
  91.   bestmode = 12 'VGA
  92.   ON ERROR GOTO Videoerr
  93.   IF bestmode = 0 THEN
  94.     SCREEN 0
  95.     WIDTH 80, 25
  96.     bestvideo = bestmode
  97.     EXIT FUNCTION
  98.   END IF
  99.   SCREEN bestmode
  100.   ON ERROR GOTO EGAErr
  101.   IF bestmode = 9 THEN SCREEN 8, , 1
  102.   ON ERROR GOTO 0
  103.   SCREEN 0, , 0
  104.   WIDTH 80, 25
  105.   bestvideo = bestmode
  106. END FUNCTION
  107.  
  108. '* ------------------------------------------------------- *
  109. '*   ermittlung der Auflösung und der Anzahl der Farben    *
  110. SUB getgraf (mode)
  111.   SHARED graf AS video
  112.   SELECT CASE mode
  113.     CASE 1
  114.       graf.maxx = 320
  115.       graf.maxy = 200
  116.       graf.maxh = 40
  117.       graf.maxv = 25
  118.       graf.maxcolor = 4
  119.     CASE 2
  120.       graf.maxx = 640
  121.       graf.maxy = 200
  122.       graf.maxh = 80
  123.       graf.maxv = 25
  124.       graf.maxcolor = 2
  125.     CASE 3
  126.       graf.maxx = 720
  127.       graf.maxy = 348
  128.       graf.maxh = 80
  129.       graf.maxv = 25
  130.       graf.maxcolor = 2
  131.     CASE 4
  132.       graf.maxx = 640
  133.       graf.maxy = 400
  134.       graf.maxh = 80
  135.       graf.maxv = 25
  136.       graf.maxcolor = 1
  137.     CASE 7
  138.       graf.maxx = 320
  139.       graf.maxy = 200
  140.       graf.maxh = 40
  141.       graf.maxv = 25
  142.       graf.maxcolor = 16
  143.     CASE 8
  144.       graf.maxx = 640
  145.       graf.maxy = 200
  146.       graf.maxh = 80
  147.       graf.maxv = 25
  148.       graf.maxcolor = 16
  149.     CASE 9
  150.       graf.maxx = 640
  151.       graf.maxy = 350
  152.       graf.maxh = 80
  153.       graf.maxv = 25
  154.       graf.maxcolor = 16
  155.     CASE 10
  156.       graf.maxx = 640
  157.       graf.maxy = 350
  158.       graf.maxh = 80
  159.       graf.maxv = 25
  160.       graf.maxcolor = 2
  161.     CASE 11
  162.       graf.maxx = 640
  163.       graf.maxy = 480
  164.       graf.maxh = 80
  165.       graf.maxv = 30
  166.       graf.maxcolor = 2
  167.     CASE 12
  168.       graf.maxx = 640
  169.       graf.maxy = 480
  170.       graf.maxh = 80
  171.       graf.maxv = 30
  172.       graf.maxcolor = 16
  173.     CASE 13
  174.       graf.maxx = 320
  175.       graf.maxy = 200
  176.       graf.maxh = 40
  177.       graf.maxv = 25
  178.       graf.maxcolor = 256
  179.     CASE ELSE
  180.   END SELECT
  181. END SUB
  182. '* ------------------------------------------------------- *
  183. '*                  Ende von GETVIDEO.BAS                  *
  184.