Skip to content

Commit 48097b8

Browse files
authored
Update vid_bochs_vbe.c
1 parent 654a6ed commit 48097b8

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

src/video/vid_bochs_vbe.c

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
#define VBE_DISPI_ID_VBOX_VIDEO 0xBE00
7777
#define VBE_DISPI_ID_HGSMI 0xBE01
7878
#define VBE_DISPI_ID_ANYX 0xBE02
79-
#define VBE_DISPI_ID_CFG 0xBE03 /* VBE_DISPI_INDEX_CFG is available. */
79+
#define VBE_DISPI_ID_CFG 0xBE03
8080

8181
#define VBE_DISPI_DISABLED 0x00
8282
#define VBE_DISPI_ENABLED 0x01
@@ -410,6 +410,15 @@ bochs_vbe_inw(const uint16_t addr, void *priv)
410410
default:
411411
ret = dev->vbe_regs[dev->vbe_index];
412412
break;
413+
case VBE_DISPI_INDEX_XRES:
414+
ret = vbe_get_caps ? VBE_DISPI_MAX_XRES : dev->vbe_regs[dev->vbe_index];
415+
break;
416+
case VBE_DISPI_INDEX_YRES:
417+
ret = vbe_get_caps ? VBE_DISPI_MAX_YRES : dev->vbe_regs[dev->vbe_index];
418+
break;
419+
case VBE_DISPI_INDEX_BPP:
420+
ret = vbe_get_caps ? 32 : dev->vbe_regs[dev->vbe_index];
421+
break;
413422
case VBE_DISPI_INDEX_VIDEO_MEMORY_64K:
414423
ret = dev->vram_size >> 16;
415424
break;
@@ -479,8 +488,13 @@ bochs_vbe_outw(const uint16_t addr, const uint16_t val, void *priv)
479488
default:
480489
break;
481490
case VBE_DISPI_INDEX_ID:
482-
if (val != VBE_DISPI_ID_HGSMI)
491+
if ((val == VBE_DISPI_ID0) || (val == VBE_DISPI_ID1) ||
492+
(val == VBE_DISPI_ID2) || (val == VBE_DISPI_ID3) ||
493+
(val == VBE_DISPI_ID4) || (val == VBE_DISPI_ID_VBOX_VIDEO) ||
494+
(val == VBE_DISPI_ID_ANYX) | (val == VBE_DISPI_ID_CFG))
483495
dev->vbe_regs[dev->vbe_index] = val;
496+
else if (val == VBE_DISPI_ID5)
497+
dev->vbe_regs[dev->vbe_index] = dev->id5_val;
484498
break;
485499
case VBE_DISPI_INDEX_XRES:
486500
case VBE_DISPI_INDEX_YRES:

0 commit comments

Comments
 (0)