git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Removed debug from ATA_ReadFS (that bug is fixed)
[tpg/acess2.git]
/
Modules
/
Display
/
BochsGA
/
bochsvbe.c
diff --git
a/Modules/Display/BochsGA/bochsvbe.c
b/Modules/Display/BochsGA/bochsvbe.c
index
8f73ccb
..
3c8309e
100644
(file)
--- a/
Modules/Display/BochsGA/bochsvbe.c
+++ b/
Modules/Display/BochsGA/bochsvbe.c
@@
-78,12
+78,11
@@
tDevFS_Driver gBGA_DriverStruct = {
int giBGA_BufferFormat = 0;
\r
tVideo_IOCtl_Pos gBGA_CursorPos = {-1,-1};
\r
Uint *gBGA_Framebuffer;
\r
int giBGA_BufferFormat = 0;
\r
tVideo_IOCtl_Pos gBGA_CursorPos = {-1,-1};
\r
Uint *gBGA_Framebuffer;
\r
-
tBGA_Mode
gpBGA_CurrentMode;
\r
+
const tBGA_Mode *
gpBGA_CurrentMode;
\r
const tBGA_Mode gBGA_Modes[] = {
\r
const tBGA_Mode gBGA_Modes[] = {
\r
- {},
\r
- {640,480,32, 0, 640*480*4},
\r
- {800,600,32, 0, 800*600*4},
\r
- {1024,768,32, 0, 1024*768*4}
\r
+ {640,480,32, 640*480*4},
\r
+ {800,600,32, 800*600*4},
\r
+ {1024,768,32, 1024*768*4}
\r
};
\r
#define BGA_MODE_COUNT (sizeof(gBGA_Modes)/sizeof(gBGA_Modes[0]))
\r
\r
};
\r
#define BGA_MODE_COUNT (sizeof(gBGA_Modes)/sizeof(gBGA_Modes[0]))
\r
\r
@@
-111,7
+110,7
@@
int BGA_Install(char **Arguments)
}
\r
\r
// Map Framebuffer to hardware address
\r
}
\r
\r
// Map Framebuffer to hardware address
\r
- gBGA_Framebuffer = (void *) MM_MapHWPage
(VBE_DISPI_LFB_PHYSICAL_ADDRESS, 768);
// 768 pages (3Mb)
\r
+ gBGA_Framebuffer = (void *) MM_MapHWPage
s(VBE_DISPI_LFB_PHYSICAL_ADDRESS, 768);
// 768 pages (3Mb)
\r
\r
return MODULE_ERR_OK;
\r
}
\r
\r
return MODULE_ERR_OK;
\r
}
\r
@@
-122,7
+121,7
@@
int BGA_Install(char **Arguments)
void BGA_Uninstall()
\r
{
\r
DevFS_DelDevice( &gBGA_DriverStruct );
\r
void BGA_Uninstall()
\r
{
\r
DevFS_DelDevice( &gBGA_DriverStruct );
\r
- MM_UnmapHWPage( VBE_DISPI_LFB_PHYSICAL_ADDRESS, 768 );
\r
+ MM_UnmapHWPage
s
( VBE_DISPI_LFB_PHYSICAL_ADDRESS, 768 );
\r
}
\r
\r
/**
\r
}
\r
\r
/**
\r
@@
-153,8
+152,8
@@
Uint64 BGA_Write(tVFS_Node *node, Uint64 off, Uint64 len, void *Buffer)
\r
// Check Mode
\r
if(giBGA_CurrentMode == -1) {
\r
\r
// Check Mode
\r
if(giBGA_CurrentMode == -1) {
\r
- L
EAVE('i', -1
);
\r
- return -1;
\r
+ L
og_Notice("BGA", "Setting video mode to #0 (640x480x32)"
);
\r
+ BGA_int_UpdateMode(0); // Mode Zero is 640x480
\r
}
\r
\r
// Text Mode
\r
}
\r
\r
// Text Mode
\r
@@
-163,41
+162,39
@@
Uint64 BGA_Write(tVFS_Node *node, Uint64 off, Uint64 len, void *Buffer)
case VIDEO_BUFFMT_TEXT:
\r
{
\r
tVT_Char *chars = Buffer;
\r
case VIDEO_BUFFMT_TEXT:
\r
{
\r
tVT_Char *chars = Buffer;
\r
- int
pitch = gpBGA_CurrentMode->width * giVT_CharWidth;
\r
- int
x, y
;
\r
+ int
x, y; // Characters/Rows
\r
+ int
widthInChars = gpBGA_CurrentMode->width/giVT_CharWidth
;
\r
Uint32 *dest;
\r
\r
off /= sizeof(tVT_Char);
\r
Uint32 *dest;
\r
\r
off /= sizeof(tVT_Char);
\r
- dest = (void*)gBGA_Framebuffer;
\r
- x = (off % gpBGA_CurrentMode->width) * giVT_CharWidth;
\r
- y = (off / gpBGA_CurrentMode->width) * giVT_CharHeight;
\r
+ len /= sizeof(tVT_Char);
\r
+
\r
+ x = (off % widthInChars);
\r
+ y = (off / widthInChars);
\r
\r
// Sanity Check
\r
\r
// Sanity Check
\r
- if(y > gpBGA_CurrentMode->height) {
\r
+ if(y > gpBGA_CurrentMode->height
/ giVT_CharHeight
) {
\r
LEAVE('i', 0);
\r
return 0;
\r
}
\r
\r
LEAVE('i', 0);
\r
return 0;
\r
}
\r
\r
- dest += y * pitch;
\r
- dest += x * giVT_CharWidth;
\r
- len /= sizeof(tVT_Char);
\r
+ dest = (Uint32 *)gBGA_Framebuffer;
\r
+ dest += y * gpBGA_CurrentMode->width * giVT_CharHeight;
\r
while(len--)
\r
{
\r
VT_Font_Render(
\r
chars->Ch,
\r
while(len--)
\r
{
\r
VT_Font_Render(
\r
chars->Ch,
\r
- dest
, pitc
h,
\r
+ dest
+ x*giVT_CharWidth, gpBGA_CurrentMode->widt
h,
\r
VT_Colour12to24(chars->BGCol),
\r
VT_Colour12to24(chars->FGCol)
\r
);
\r
\r
VT_Colour12to24(chars->BGCol),
\r
VT_Colour12to24(chars->FGCol)
\r
);
\r
\r
- dest += giVT_CharWidth;
\r
-
\r
chars ++;
\r
chars ++;
\r
- x +
= giVT_CharWidth
;
\r
- if( x >=
pitch
) {
\r
+ x +
+
;
\r
+ if( x >=
widthInChars
) {
\r
x = 0;
\r
x = 0;
\r
- y +
= giVT_CharHeight;
\r
- dest +=
pitch*(giVT_CharHeight-1)
;
\r
+ y +
+; // Why am I keeping track of this?
\r
+ dest +=
gpBGA_CurrentMode->width*giVT_CharHeight
;
\r
}
\r
}
\r
}
\r
}
\r
}
\r
}
\r
@@
-344,15
+341,9
@@
int BGA_int_UpdateMode(int id)
// Sanity Check
\r
if(id < 0 || id >= BGA_MODE_COUNT) return -1;
\r
\r
// Sanity Check
\r
if(id < 0 || id >= BGA_MODE_COUNT) return -1;
\r
\r
- // Check if it is a text mode
\r
- if( gBGA_Modes[id].flags & MODEFLAG_TEXT )
\r
- BGA_int_SetMode(
\r
- gBGA_Modes[id].width*giVT_CharWidth,
\r
- gBGA_Modes[id].height*giVT_CharHeight);
\r
- else // Graphics?
\r
- BGA_int_SetMode(
\r
- gBGA_Modes[id].width,
\r
- gBGA_Modes[id].height);
\r
+ BGA_int_SetMode(
\r
+ gBGA_Modes[id].width,
\r
+ gBGA_Modes[id].height);
\r
\r
giBGA_CurrentMode = id;
\r
gpBGA_CurrentMode = &gBGA_Modes[id];
\r
\r
giBGA_CurrentMode = id;
\r
gpBGA_CurrentMode = &gBGA_Modes[id];
\r
@@
-379,10
+370,6
@@
int BGA_int_FindMode(tVideo_IOCtl_Mode *info)
LogF("Mode %i (%ix%ix%i), ", i, gBGA_Modes[i].width, gBGA_Modes[i].height, gBGA_Modes[i].bpp);
\r
#endif
\r
\r
LogF("Mode %i (%ix%ix%i), ", i, gBGA_Modes[i].width, gBGA_Modes[i].height, gBGA_Modes[i].bpp);
\r
#endif
\r
\r
- // Check if this mode is the same type as what we want
\r
- if( !(gBGA_Modes[i].flags & MODEFLAG_TEXT) != !(info->flags & VIDEO_FLAG_TEXT) )
\r
- continue;
\r
-
\r
// Ooh! A perfect match
\r
if(gBGA_Modes[i].width == info->width
\r
&& gBGA_Modes[i].height == info->height
\r
// Ooh! A perfect match
\r
if(gBGA_Modes[i].width == info->width
\r
&& gBGA_Modes[i].height == info->height
\r
@@
-417,10
+404,6
@@
int BGA_int_FindMode(tVideo_IOCtl_Mode *info)
info->height = gBGA_Modes[best].height;
\r
info->bpp = gBGA_Modes[best].bpp;
\r
\r
info->height = gBGA_Modes[best].height;
\r
info->bpp = gBGA_Modes[best].bpp;
\r
\r
- info->flags = 0;
\r
- if(gBGA_Modes[best].flags & MODEFLAG_TEXT)
\r
- info->flags |= VIDEO_FLAG_TEXT;
\r
-
\r
return best;
\r
}
\r
\r
return best;
\r
}
\r
\r
@@
-441,10
+424,6
@@
int BGA_int_ModeInfo(tVideo_IOCtl_Mode *info)
info->height = gBGA_Modes[info->id].height;
\r
info->bpp = gBGA_Modes[info->id].bpp;
\r
\r
info->height = gBGA_Modes[info->id].height;
\r
info->bpp = gBGA_Modes[info->id].bpp;
\r
\r
- info->flags = 0;
\r
- if(gBGA_Modes[info->id].flags & MODEFLAG_TEXT)
\r
- info->flags |= VIDEO_FLAG_TEXT;
\r
-
\r
return 1;
\r
}
\r
\r
return 1;
\r
}
\r
\r
UCC
git Repository :: git.ucc.asn.au