home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* GRAFBNCH.PAS *)
- (* Benchmark-Test der Grafikkarte *)
- (* (c) 1993 Markus Kämmerer & DMV-Verlag *)
- (* ------------------------------------------------------ *)
- PROGRAM GrafBench;
-
- USES Crt, Dos;
-
- CONST
- z = ' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP' +
- 'QRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
- z1 = ' $';
- z2 = '$';
- zkette : STRING = z + z1;
- zkette2 : STRING = z + z2;
-
- VAR
- t, Bildsegment : WORD;
- CursorKilled : BOOLEAN;
- CursorLineStart,
- CursorLineEnd : INTEGER;
- Regs : Registers;
- h, m, s, ss : WORD;
- a,b,c : REAL;
- h1, m1, s1, ss1 : WORD;
-
- BEGIN
- IF NOT CursorKilled THEN BEGIN
- Regs.ah := 3;
- Regs.bh := 0;
- Intr($10, Regs);
- CursorLineStart := Regs.ch;
- CursorLineEnd := Regs.cl;
- Regs.ah := 1;
- Regs.ch := $20;
- Intr($10, Regs);
- CursorKilled := TRUE;
- END;
- IF Mem[$0040:$0049] <> 7 THEN (* bzw. Seg0040:$0049 *)
- Bildsegment := $B800
- ELSE
- Bildsegment := $B000;
- GetTime(h1, m1, s1, ss1);
- SetTime(0, 0, 0, 0);
- ASM
- MOV SI, $0800
- @1: CLD
- MOV DI, 0
- MOV AX, Bildsegment
- PUSH AX
- POP ES
- MOV CX, 2000
- MOV AX, SI
- REPE STOSW
- DEC SI
- JNE @1
- END;
- GetTime(h, m, s, ss);
- SetTime(h1, m1, s1, ss1);
- a := m*60000 + s*100 + ss;
- ClrScr;
- SetTime(0, 0, 0, 0);
- ASM
- MOV SI, $0200
- @1: PUSH SI
- MOV AX, SI
- MOV AH, $0A
- MOV BH, 0
- MOV CX, 4000
- INT $10
- POP SI
- DEC SI
- JNE @1
- END;
- GetTime(h, m, s, ss);
- SetTime(h1, m1, s1, ss1);
- b := m*60000 + s*100 + ss;
- SetTime(0, 0, 0, 0);
- ASM
- MOV SI, $0010
- @1: PUSH SI
- MOV CX, 24
- @2: LEA DX, zKette
- INC DX
- MOV AH, $09
- INT $21
- LOOP @2
- LEA DX, zKette2
- INC DX
- MOV AH, $09
- INT $21
- MOV AH, 2
- MOV BH, 0
- MOV DX, 0
- INT $10
- POP SI
- DEC SI
- JNE @1
- END;
- GetTime(h, m, s, ss);
- SetTime(h1, m1, s1, ss1);
- c := m*60000 + s*100 + ss;
- TextColor(15);
- TextBackground(2);
- IF CursorKilled THEN BEGIN
- Regs.ah := 1;
- Regs.ch := CursorLineStart;
- Regs.cl := CursorLineEnd;
- Intr($10, Regs);
- CursorKilled := FALSE;
- END;
- ClrScr;
- Writeln('Grafik-Performancetest.');
- Writeln('Werte: ');
- Writeln;
- Writeln('Direktzugriff auf Bildschirm: ',
- 798700 / a : 5 : 0, ' (7680)');
- Writeln('BIOS-Zugriff auf Bildschirm : ',
- 798700 / b / 4 : 5 : 0, ' (1040)');
- Writeln('DOS-Zugriff auf Bildschirm : ',
- 798700 / c / 128 : 5 : 2, ' (18.68)');
- END.
- (* ------------------------------------------------------ *)
- (* Ende von GRAFBNCH.PAS *)
-
-