More Hercules Plus and InColor fixes.
This commit is contained in:
@@ -139,6 +139,7 @@ herculesplus_out(uint16_t port, uint8_t val, void *priv)
|
|||||||
return;
|
return;
|
||||||
old = dev->crtc[dev->crtcreg];
|
old = dev->crtc[dev->crtcreg];
|
||||||
dev->crtc[dev->crtcreg] = val;
|
dev->crtc[dev->crtcreg] = val;
|
||||||
|
|
||||||
if (dev->crtc[10] == 6 && dev->crtc[11] == 7) {
|
if (dev->crtc[10] == 6 && dev->crtc[11] == 7) {
|
||||||
/*Fix for Generic Turbo XT BIOS,
|
/*Fix for Generic Turbo XT BIOS,
|
||||||
*which sets up cursor registers wrong*/
|
*which sets up cursor registers wrong*/
|
||||||
@@ -535,6 +536,7 @@ herculesplus_poll(void *priv)
|
|||||||
int x;
|
int x;
|
||||||
int oldvc;
|
int oldvc;
|
||||||
int oldsc;
|
int oldsc;
|
||||||
|
int cw = HERCULESPLUS_CW;
|
||||||
|
|
||||||
VIDEO_MONITOR_PROLOGUE();
|
VIDEO_MONITOR_PROLOGUE();
|
||||||
if (!dev->linepos) {
|
if (!dev->linepos) {
|
||||||
@@ -558,7 +560,7 @@ herculesplus_poll(void *priv)
|
|||||||
if ((dev->ctrl & HERCULESPLUS_CTRL_GRAPH) && (dev->ctrl2 & HERCULESPLUS_CTRL2_GRAPH))
|
if ((dev->ctrl & HERCULESPLUS_CTRL_GRAPH) && (dev->ctrl2 & HERCULESPLUS_CTRL2_GRAPH))
|
||||||
x = dev->crtc[1] << 4;
|
x = dev->crtc[1] << 4;
|
||||||
else
|
else
|
||||||
x = dev->crtc[1] * 9;
|
x = dev->crtc[1] * cw;
|
||||||
|
|
||||||
video_process_8(x, dev->displine);
|
video_process_8(x, dev->displine);
|
||||||
}
|
}
|
||||||
@@ -621,7 +623,7 @@ herculesplus_poll(void *priv)
|
|||||||
if ((dev->ctrl & HERCULESPLUS_CTRL_GRAPH) && (dev->ctrl2 & HERCULESPLUS_CTRL2_GRAPH))
|
if ((dev->ctrl & HERCULESPLUS_CTRL_GRAPH) && (dev->ctrl2 & HERCULESPLUS_CTRL2_GRAPH))
|
||||||
x = dev->crtc[1] << 4;
|
x = dev->crtc[1] << 4;
|
||||||
else
|
else
|
||||||
x = dev->crtc[1] * 9;
|
x = dev->crtc[1] * cw;
|
||||||
dev->lastline++;
|
dev->lastline++;
|
||||||
if ((dev->ctrl & 8) && ((x != xsize) || ((dev->lastline - dev->firstline) != ysize) || video_force_resize_get())) {
|
if ((dev->ctrl & 8) && ((x != xsize) || ((dev->lastline - dev->firstline) != ysize) || video_force_resize_get())) {
|
||||||
xsize = x;
|
xsize = x;
|
||||||
|
@@ -850,6 +850,7 @@ incolor_poll(void *priv)
|
|||||||
int x;
|
int x;
|
||||||
int oldvc;
|
int oldvc;
|
||||||
int oldsc;
|
int oldsc;
|
||||||
|
int cw = INCOLOR_CW;
|
||||||
|
|
||||||
if (!dev->linepos) {
|
if (!dev->linepos) {
|
||||||
timer_advance_u64(&dev->timer, dev->dispofftime);
|
timer_advance_u64(&dev->timer, dev->dispofftime);
|
||||||
@@ -931,7 +932,7 @@ incolor_poll(void *priv)
|
|||||||
if ((dev->ctrl & INCOLOR_CTRL_GRAPH) && (dev->ctrl2 & INCOLOR_CTRL2_GRAPH))
|
if ((dev->ctrl & INCOLOR_CTRL_GRAPH) && (dev->ctrl2 & INCOLOR_CTRL2_GRAPH))
|
||||||
x = dev->crtc[1] << 4;
|
x = dev->crtc[1] << 4;
|
||||||
else
|
else
|
||||||
x = dev->crtc[1] * 9;
|
x = dev->crtc[1] * cw;
|
||||||
dev->lastline++;
|
dev->lastline++;
|
||||||
if ((dev->ctrl & 8) && ((x != xsize) || ((dev->lastline - dev->firstline) != ysize) || video_force_resize_get())) {
|
if ((dev->ctrl & 8) && ((x != xsize) || ((dev->lastline - dev->firstline) != ysize) || video_force_resize_get())) {
|
||||||
xsize = x;
|
xsize = x;
|
||||||
|
Reference in New Issue
Block a user