mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-10-18 17:32:24 +08:00
more
This commit is contained in:
@@ -7312,12 +7312,15 @@ void SetIMPosition() {
|
|||||||
uint8_t x, y;
|
uint8_t x, y;
|
||||||
uint8_t page = IS_PC98_ARCH?0:real_readb(BIOSMEM_SEG,BIOSMEM_CURRENT_PAGE);
|
uint8_t page = IS_PC98_ARCH?0:real_readb(BIOSMEM_SEG,BIOSMEM_CURRENT_PAGE);
|
||||||
INT10_GetCursorPos(&y, &x, page);
|
INT10_GetCursorPos(&y, &x, page);
|
||||||
int nrows=25;
|
int nrows=25, ncols=80;
|
||||||
if (IS_PC98_ARCH)
|
if (IS_PC98_ARCH)
|
||||||
nrows=real_readb(0x60,0x113) & 0x01 ? 25 : 20;
|
nrows=real_readb(0x60,0x113) & 0x01 ? 25 : 20;
|
||||||
else
|
else {
|
||||||
nrows=(IS_EGAVGA_ARCH?real_readb(BIOSMEM_SEG,BIOSMEM_NB_ROWS):24)+1;
|
nrows=(IS_EGAVGA_ARCH?real_readb(BIOSMEM_SEG,BIOSMEM_NB_ROWS):24)+1;
|
||||||
|
ncols=real_readw(BIOSMEM_SEG,BIOSMEM_NB_COLS);
|
||||||
|
}
|
||||||
if (y>=nrows-1) y=nrows-8;
|
if (y>=nrows-1) y=nrows-8;
|
||||||
|
if (x>=ncols-4) x=ncols-4;
|
||||||
|
|
||||||
if ((im_x != x || im_y != y) && GetTicks() - last_ticks > 100) {
|
if ((im_x != x || im_y != y) && GetTicks() - last_ticks > 100) {
|
||||||
last_ticks = GetTicks();
|
last_ticks = GetTicks();
|
||||||
@@ -7327,12 +7330,13 @@ void SetIMPosition() {
|
|||||||
y++;
|
y++;
|
||||||
#endif
|
#endif
|
||||||
uint8_t height = IS_PC98_ARCH?16:real_readb(BIOSMEM_SEG, BIOSMEM_CHAR_HEIGHT);
|
uint8_t height = IS_PC98_ARCH?16:real_readb(BIOSMEM_SEG, BIOSMEM_CHAR_HEIGHT);
|
||||||
|
uint8_t width = CurMode && DOSV_CheckCJKVideoMode() ? CurMode->cwidth : (height / 2);
|
||||||
#if defined(USE_TTF)
|
#if defined(USE_TTF)
|
||||||
if (ttf.inUse)
|
if (ttf.inUse)
|
||||||
SDL_SetIMPosition((x+1) * ttf.pointsize / 2, (y+1) * ttf.pointsize);
|
SDL_SetIMPosition((x+1) * ttf.pointsize / 2, (y+1) * ttf.pointsize);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
SDL_SetIMPosition((x+1) * height / 2, (y+1) * height - (DOSV_CheckCJKVideoMode()?2:0));
|
SDL_SetIMPosition((x+1) * width, (y+1) * height - (DOSV_CheckCJKVideoMode()?2:0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -3963,7 +3963,7 @@ static void VGA_VerticalTimer(Bitu /*val*/) {
|
|||||||
(*draw).skipped = 1;
|
(*draw).skipped = 1;
|
||||||
dbw=dex=false;
|
dbw=dex=false;
|
||||||
} else if (dbcs_sbcs && col<ttf.cols-1 && isDBCSLB((*draw).chr, lead) && (*(vidmem+2) & 0xFF) >= 0x40) {
|
} else if (dbcs_sbcs && col<ttf.cols-1 && isDBCSLB((*draw).chr, lead) && (*(vidmem+2) & 0xFF) >= 0x40) {
|
||||||
bool boxdefault = (!autoboxdraw || col>=ttf.cols-2) && !bd[col];
|
bool boxdefault = (!autoboxdraw || col>=ttf.cols-3) && !bd[col];
|
||||||
if (!boxdefault && col<ttf.cols-3) {
|
if (!boxdefault && col<ttf.cols-3) {
|
||||||
if (CheckBoxDrawing((uint8_t)((*draw).chr), (uint8_t)*(vidmem+2), (uint8_t)*(vidmem+4), (uint8_t)*(vidmem+6)))
|
if (CheckBoxDrawing((uint8_t)((*draw).chr), (uint8_t)*(vidmem+2), (uint8_t)*(vidmem+4), (uint8_t)*(vidmem+6)))
|
||||||
bd[col]=bd[col+1]=bd[col+2]=bd[col+3]=true;
|
bd[col]=bd[col+1]=bd[col+2]=bd[col+3]=true;
|
||||||
@@ -4022,7 +4022,7 @@ static void VGA_VerticalTimer(Bitu /*val*/) {
|
|||||||
(*draw).skipped = 1;
|
(*draw).skipped = 1;
|
||||||
dbw=dex=false;
|
dbw=dex=false;
|
||||||
} else if (dbcs_sbcs && col<ttf.cols-1 && isDBCSLB((*draw).chr, lead) && (*(vidmem+1) & 0xFF) >= 0x40) {
|
} else if (dbcs_sbcs && col<ttf.cols-1 && isDBCSLB((*draw).chr, lead) && (*(vidmem+1) & 0xFF) >= 0x40) {
|
||||||
bool boxdefault = (!autoboxdraw || col>=ttf.cols-2) && !bd[col];
|
bool boxdefault = (!autoboxdraw || col>=ttf.cols-3) && !bd[col];
|
||||||
if (!boxdefault && col<ttf.cols-3) {
|
if (!boxdefault && col<ttf.cols-3) {
|
||||||
if (CheckBoxDrawing((uint8_t)((*draw).chr), (uint8_t)*(vidmem+1), (uint8_t)*(vidmem+2), (uint8_t)*(vidmem+3)))
|
if (CheckBoxDrawing((uint8_t)((*draw).chr), (uint8_t)*(vidmem+1), (uint8_t)*(vidmem+2), (uint8_t)*(vidmem+3)))
|
||||||
bd[col]=bd[col+1]=bd[col+2]=bd[col+3]=true;
|
bd[col]=bd[col+1]=bd[col+2]=bd[col+3]=true;
|
||||||
|
Reference in New Issue
Block a user