home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1990
/
05
/
heimwerk
/
getvideo.bas
next >
Wrap
BASIC Source File
|
1990-02-07
|
5KB
|
184 lines
DECLARE SUB getgraf (mode!)
DECLARE FUNCTION bestvideo! ()
'* ------------------------------------------------------- *
'* GETVIDEO.BAS *
'* ermittelt die Konfiguration der Grafikkarte *
'* (c) 1990 Kay Glahn & TOOLBOX *
'* ------------------------------------------------------- *
TYPE video
maxx AS INTEGER
maxy AS INTEGER
maxh AS INTEGER
maxv AS INTEGER
maxcolor AS INTEGER
END TYPE
DIM graf AS video
'* ------------------------------------------------------- *
'* Demoprogramm *
best = bestvideo
CLS
IF best = 0 THEN
LOCATE 4, 15
PRINT "╔══════════════════════════════════════════════╗"
LOCATE 5, 15
PRINT "║ Leider kein grafikfähiger Bildschirmadapter ║"
LOCATE 6, 15
PRINT "║ vorhanden !! ║"
LOCATE 7, 15
PRINT "╚══════════════════════════════════════════════╝ "
WHILE INKEY$ = "": WEND
CLS
END
END IF
SCREEN best
CALL getgraf(best)
spalte = INT(graf.maxh / 4)
zeile = INT(graf.maxv / 4)
LOCATE zeile, spalte
PRINT "Ermittlung der Grafikkarten-Konfiguration"
LOCATE zeile + 2, spalte
PRINT "Bestmöglicher Grafikmodus : "; best
LOCATE zeile + 3, spalte
PRINT "Horizontale Grafikauflösung : "; graf.maxx
LOCATE zeile + 4, spalte
PRINT "Vertikale Grafikauflösung : "; graf.maxy
LOCATE zeile + 5, spalte
PRINT "Horizontale Textauflösung : "; graf.maxh
LOCATE zeile + 6, spalte
PRINT "Vertikale Textauflösung : "; graf.maxv
LOCATE zeile + 7, spalte
PRINT "Anzahl der Farben : "; graf.maxcolor
breite = graf.maxx / graf.maxh
hoehe = graf.maxy / graf.maxv
spalte = graf.maxx / 4 - 2 * breite
zeile = graf.maxy / 4 - 2 * hoehe
LINE (spalte, zeile)-STEP(breite * 43, hoehe * 9), , B
LINE (spalte - 3, zeile - 2)-STEP(breite * 43 + 6, hoehe * 9 + 4), , B
LINE (spalte, zeile + hoehe * 2.3)-(spalte + breite * 43, zeile + hoehe * 2.3)
PAINT (1, 1)
WHILE INKEY$ = "": WEND
CLS
END
'* ------------------------------------------------------- *
'* Rotinen zur Fehlerbehandlung *
Videoerr:
SELECT CASE bestmode
CASE 12 'VGA
bestmode = 11 'MCGA
CASE 11 'MCGA
bestmode = 9 'EGA256
CASE 9 'EGA256
bestmode = 10 'MONO
CASE 10 'MONO
bestmode = 2 'CGA
CASE 2 'CGA
bestmode = 3 'HERC
CASE ELSE
bestmode = 0 'KEINE
END SELECT
RESUME
EGAErr:
bestmode = 8 'EGA64
RESUME NEXT
'* ------------------------------------------------------- *
'* ermittlung des besten Grafikmodus *
FUNCTION bestvideo
SHARED bestmode
bestmode = 12 'VGA
ON ERROR GOTO Videoerr
IF bestmode = 0 THEN
SCREEN 0
WIDTH 80, 25
bestvideo = bestmode
EXIT FUNCTION
END IF
SCREEN bestmode
ON ERROR GOTO EGAErr
IF bestmode = 9 THEN SCREEN 8, , 1
ON ERROR GOTO 0
SCREEN 0, , 0
WIDTH 80, 25
bestvideo = bestmode
END FUNCTION
'* ------------------------------------------------------- *
'* ermittlung der Auflösung und der Anzahl der Farben *
SUB getgraf (mode)
SHARED graf AS video
SELECT CASE mode
CASE 1
graf.maxx = 320
graf.maxy = 200
graf.maxh = 40
graf.maxv = 25
graf.maxcolor = 4
CASE 2
graf.maxx = 640
graf.maxy = 200
graf.maxh = 80
graf.maxv = 25
graf.maxcolor = 2
CASE 3
graf.maxx = 720
graf.maxy = 348
graf.maxh = 80
graf.maxv = 25
graf.maxcolor = 2
CASE 4
graf.maxx = 640
graf.maxy = 400
graf.maxh = 80
graf.maxv = 25
graf.maxcolor = 1
CASE 7
graf.maxx = 320
graf.maxy = 200
graf.maxh = 40
graf.maxv = 25
graf.maxcolor = 16
CASE 8
graf.maxx = 640
graf.maxy = 200
graf.maxh = 80
graf.maxv = 25
graf.maxcolor = 16
CASE 9
graf.maxx = 640
graf.maxy = 350
graf.maxh = 80
graf.maxv = 25
graf.maxcolor = 16
CASE 10
graf.maxx = 640
graf.maxy = 350
graf.maxh = 80
graf.maxv = 25
graf.maxcolor = 2
CASE 11
graf.maxx = 640
graf.maxy = 480
graf.maxh = 80
graf.maxv = 30
graf.maxcolor = 2
CASE 12
graf.maxx = 640
graf.maxy = 480
graf.maxh = 80
graf.maxv = 30
graf.maxcolor = 16
CASE 13
graf.maxx = 320
graf.maxy = 200
graf.maxh = 40
graf.maxv = 25
graf.maxcolor = 256
CASE ELSE
END SELECT
END SUB
'* ------------------------------------------------------- *
'* Ende von GETVIDEO.BAS *