From 382d5a76c24ba46029456d7bc6751ac8a069ed0a Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 22 Oct 2000 01:59:51 +0000 Subject: [PATCH] Removed duplicate code and replaced linux io calls svn path=/trunk/; revision=1412 --- .../dd/vga/display/vgavideo/vgavideo.c | 47 +++++++++---------- .../dd/vga/display/vgavideo/vgavideo.h | 29 +----------- 2 files changed, 24 insertions(+), 52 deletions(-) diff --git a/reactos/drivers/dd/vga/display/vgavideo/vgavideo.c b/reactos/drivers/dd/vga/display/vgavideo/vgavideo.c index 1b6ee0cb45a..7438f2b9a5b 100644 --- a/reactos/drivers/dd/vga/display/vgavideo/vgavideo.c +++ b/reactos/drivers/dd/vga/display/vgavideo/vgavideo.c @@ -4,7 +4,6 @@ #include #include "vgavideo.h" -#include "../../../../ntoskrnl/include/internal/i386/io.h" INT abs(INT nm) { @@ -373,11 +372,11 @@ void BltFromVGA(int x, int y, int w, int h, void *b, int bw) ASSIGNVP4(x, y, vpP) ASSIGNMK4(x, y, maskP) get_masks(x, w); - outb(GRA_I, 0x05); /* read mode 0 */ - saved_GC_mode = inb(GRA_D); - outb(GRA_D, 0x00); - outb(GRA_I, 0x04); /* read map select */ - saved_GC_rmap = inb(GRA_D); + WRITE_PORT_UCHAR((PUCHAR)GRA_I, 0x05); /* read mode 0 */ + saved_GC_mode = READ_PORT_UCHAR((PUCHAR)GRA_D); + WRITE_PORT_UCHAR((PUCHAR)GRA_D, 0x00); + WRITE_PORT_UCHAR((PUCHAR)GRA_I, 0x04); /* read map select */ + saved_GC_rmap = READ_PORT_UCHAR((PUCHAR)GRA_D); /* clear buffer */ bp=b; for (j=h; j>0; j--) { @@ -385,7 +384,7 @@ void BltFromVGA(int x, int y, int w, int h, void *b, int bw) bp += bw; } for (plane=0, plane_mask=1; plane<4; plane++, plane_mask<<=1) { - outb(GRA_D, plane); /* read map select */ + WRITE_PORT_UCHAR((PUCHAR)GRA_D, plane); /* read map select */ vpY = vpP; bpY = b; for (j=h; j>0; j--) { @@ -436,9 +435,9 @@ void BltFromVGA(int x, int y, int w, int h, void *b, int bw) } } /* reset GC register */ - outb(GRA_D, saved_GC_rmap); - outb(GRA_I, 0x05); - outb(GRA_D, saved_GC_mode); + WRITE_PORT_UCHAR((PUCHAR)GRA_D, saved_GC_rmap); + WRITE_PORT_UCHAR((PUCHAR)GRA_I, 0x05); + WRITE_PORT_UCHAR((PUCHAR)GRA_D, saved_GC_mode); } @@ -455,16 +454,16 @@ void BltToVGA(int x, int y, int w, int h, void *b, int bw) ASSIGNVP4(x, y, vpX) ASSIGNMK4(x, y, mask) byte_per_line = SCREEN_X >> 3; - outb(GRA_I, 0x05); /* write mode 2 */ - saved_GC_mode = inb(GRA_D); - outb(GRA_D, 0x02); - outb(GRA_I, 0x03); /* replace */ - saved_GC_fun = inb(GRA_D); - outb(GRA_D, 0x00); - outb(GRA_I, 0x08); /* bit mask */ - saved_GC_mask = inb(GRA_D); + WRITE_PORT_UCHAR((PUCHAR)GRA_I, 0x05); /* write mode 2 */ + saved_GC_mode = READ_PORT_UCHAR((PUCHAR)GRA_D); + WRITE_PORT_UCHAR((PUCHAR)GRA_D, 0x02); + WRITE_PORT_UCHAR((PUCHAR)GRA_I, 0x03); /* replace */ + saved_GC_fun = READ_PORT_UCHAR((PUCHAR)GRA_D); + WRITE_PORT_UCHAR((PUCHAR)GRA_D, 0x00); + WRITE_PORT_UCHAR((PUCHAR)GRA_I, 0x08); /* bit mask */ + saved_GC_mask = READ_PORT_UCHAR((PUCHAR)GRA_D); for (i=w; i>0; i--) { - outb(GRA_D, mask); + WRITE_PORT_UCHAR((PUCHAR)GRA_D, mask); bp = bpX; vp = vpX; for (j=h; j>0; j--) { @@ -479,9 +478,9 @@ void BltToVGA(int x, int y, int w, int h, void *b, int bw) } } /* reset GC register */ - outb(GRA_D, saved_GC_mask); - outb(GRA_I, 0x03); - outb(GRA_D, saved_GC_fun); - outb(GRA_I, 0x05); - outb(GRA_D, saved_GC_mode); + WRITE_PORT_UCHAR((PUCHAR)GRA_D, saved_GC_mask); + WRITE_PORT_UCHAR((PUCHAR)GRA_I, 0x03); + WRITE_PORT_UCHAR((PUCHAR)GRA_D, saved_GC_fun); + WRITE_PORT_UCHAR((PUCHAR)GRA_I, 0x05); + WRITE_PORT_UCHAR((PUCHAR)GRA_D, saved_GC_mode); } diff --git a/reactos/drivers/dd/vga/display/vgavideo/vgavideo.h b/reactos/drivers/dd/vga/display/vgavideo/vgavideo.h index 330720f37d0..8f76cb4d221 100644 --- a/reactos/drivers/dd/vga/display/vgavideo/vgavideo.h +++ b/reactos/drivers/dd/vga/display/vgavideo/vgavideo.h @@ -51,7 +51,7 @@ BOOL VGADDIIntersectRect(PRECTL prcDst, PRECTL prcSrc1, PRECTL prcSrc2); #define LowByte(w) (*((unsigned char *)&(w) + 0)) #define HighByte(w) (*((unsigned char *)&(w) + 1)) - + #define ASSIGNVP4(x, y, vp) vp = vidmem /* VBUF */ + (((x) + (y)*SCREEN_X) >> 3); #define ASSIGNMK4(x, y, mask) mask = 0x80 >> ((x) & 7); @@ -65,30 +65,3 @@ static unsigned char leftMask; static int byteCounter; static unsigned char rightMask; -static void -get_masks(int x, int w) -{ - register int tmp; - - leftMask = rightMask = 0; - byteCounter = w; - /* right margin */ - tmp = (x+w) & 7; - if (tmp) { - byteCounter -= tmp; - rightMask = (unsigned char)(0xff00 >> tmp); - } - /* left margin */ - tmp = x & 7; - if (tmp) { - byteCounter -= (8 - tmp); - leftMask = (0xff >> tmp); - } - /* too small ? */ - if (byteCounter < 0) { - leftMask &= rightMask; - rightMask = 0; - byteCounter = 0; - } - byteCounter /= 8; -}