Conform to the style guide
This commit is contained in:
@@ -37,8 +37,7 @@
|
|||||||
#include <86box/plat_unused.h>
|
#include <86box/plat_unused.h>
|
||||||
|
|
||||||
// Enumerates MDA monitor types
|
// Enumerates MDA monitor types
|
||||||
enum mda_monitor_type_e
|
enum mda_monitor_type_e {
|
||||||
{
|
|
||||||
MDA_MONITOR_TYPE_DEFAULT = 0, // Default MDA monitor type.
|
MDA_MONITOR_TYPE_DEFAULT = 0, // Default MDA monitor type.
|
||||||
MDA_MONITOR_TYPE_GREEN = 1, // Green phosphor
|
MDA_MONITOR_TYPE_GREEN = 1, // Green phosphor
|
||||||
MDA_MONITOR_TYPE_AMBER = 2, // Amber phosphor
|
MDA_MONITOR_TYPE_AMBER = 2, // Amber phosphor
|
||||||
@@ -62,8 +61,7 @@ mda_out(uint16_t addr, uint8_t val, void *priv)
|
|||||||
|| addr > MDA_REGISTER_CRT_STATUS) // Maintain old behaviour for printer registers, just in case
|
|| addr > MDA_REGISTER_CRT_STATUS) // Maintain old behaviour for printer registers, just in case
|
||||||
return;
|
return;
|
||||||
|
|
||||||
switch (addr)
|
switch (addr) {
|
||||||
{
|
|
||||||
case MDA_REGISTER_MODE_CONTROL:
|
case MDA_REGISTER_MODE_CONTROL:
|
||||||
mda->mode = val;
|
mda->mode = val;
|
||||||
return;
|
return;
|
||||||
@@ -73,8 +71,7 @@ mda_out(uint16_t addr, uint8_t val, void *priv)
|
|||||||
|
|
||||||
// addr & 1 == 1 = MDA_REGISTER_CRTC_DATA
|
// addr & 1 == 1 = MDA_REGISTER_CRTC_DATA
|
||||||
// otherwise MDA_REGISTER_CRTC_INDEX
|
// otherwise MDA_REGISTER_CRTC_INDEX
|
||||||
if (addr & 1)
|
if (addr & 1) {
|
||||||
{
|
|
||||||
mda->crtc[mda->crtcreg] = val;
|
mda->crtc[mda->crtcreg] = val;
|
||||||
if (mda->crtc[MDA_CRTC_CURSOR_START] == 6
|
if (mda->crtc[MDA_CRTC_CURSOR_START] == 6
|
||||||
&& mda->crtc[MDA_CRTC_CURSOR_END] == 7) /*Fix for Generic Turbo XT BIOS, which sets up cursor registers wrong*/
|
&& mda->crtc[MDA_CRTC_CURSOR_END] == 7) /*Fix for Generic Turbo XT BIOS, which sets up cursor registers wrong*/
|
||||||
@@ -83,10 +80,8 @@ mda_out(uint16_t addr, uint8_t val, void *priv)
|
|||||||
mda->crtc[MDA_CRTC_CURSOR_END] = 0xc;
|
mda->crtc[MDA_CRTC_CURSOR_END] = 0xc;
|
||||||
}
|
}
|
||||||
mda_recalctimings(mda);
|
mda_recalctimings(mda);
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
mda->crtcreg = val & 31;
|
mda->crtcreg = val & 31;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t
|
uint8_t
|
||||||
@@ -94,8 +89,7 @@ mda_in(uint16_t addr, void *priv)
|
|||||||
{
|
{
|
||||||
const mda_t *mda = (mda_t *) priv;
|
const mda_t *mda = (mda_t *) priv;
|
||||||
|
|
||||||
switch (addr)
|
switch (addr) {
|
||||||
{
|
|
||||||
case MDA_REGISTER_CRT_STATUS:
|
case MDA_REGISTER_CRT_STATUS:
|
||||||
return mda->status | 0xF0;
|
return mda->status | 0xF0;
|
||||||
default:
|
default:
|
||||||
@@ -159,8 +153,7 @@ mda_poll(void *priv)
|
|||||||
|
|
||||||
VIDEO_MONITOR_PROLOGUE()
|
VIDEO_MONITOR_PROLOGUE()
|
||||||
|
|
||||||
if (!mda->linepos)
|
if (!mda->linepos) {
|
||||||
{
|
|
||||||
timer_advance_u64(&mda->timer, mda->dispofftime);
|
timer_advance_u64(&mda->timer, mda->dispofftime);
|
||||||
mda->status |= 1;
|
mda->status |= 1;
|
||||||
mda->linepos = 1;
|
mda->linepos = 1;
|
||||||
@@ -168,17 +161,14 @@ mda_poll(void *priv)
|
|||||||
if ((mda->crtc[MDA_CRTC_INTERLACE] & 3) == 3)
|
if ((mda->crtc[MDA_CRTC_INTERLACE] & 3) == 3)
|
||||||
mda->scanline = (mda->scanline << 1) & 7;
|
mda->scanline = (mda->scanline << 1) & 7;
|
||||||
|
|
||||||
if (mda->dispon)
|
if (mda->dispon) {
|
||||||
{
|
if (mda->displine < mda->firstline) {
|
||||||
if (mda->displine < mda->firstline)
|
|
||||||
{
|
|
||||||
mda->firstline = mda->displine;
|
mda->firstline = mda->displine;
|
||||||
video_wait_for_buffer();
|
video_wait_for_buffer();
|
||||||
}
|
}
|
||||||
mda->lastline = mda->displine;
|
mda->lastline = mda->displine;
|
||||||
|
|
||||||
for (uint32_t x = 0; x < mda->crtc[MDA_CRTC_HDISP]; x++)
|
for (uint32_t x = 0; x < mda->crtc[MDA_CRTC_HDISP]; x++) {
|
||||||
{
|
|
||||||
chr = mda->vram[(mda->memaddr << 1) & 0xfff];
|
chr = mda->vram[(mda->memaddr << 1) & 0xfff];
|
||||||
attr = mda->vram[((mda->memaddr << 1) + 1) & 0xfff];
|
attr = mda->vram[((mda->memaddr << 1) + 1) & 0xfff];
|
||||||
drawcursor = ((mda->memaddr == cursoraddr) && mda->cursorvisible && mda->cursoron);
|
drawcursor = ((mda->memaddr == cursoraddr) && mda->cursorvisible && mda->cursoron);
|
||||||
@@ -189,8 +179,7 @@ mda_poll(void *priv)
|
|||||||
|
|
||||||
// If we are using an RGBI monitor allow colour
|
// If we are using an RGBI monitor allow colour
|
||||||
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
||||||
&& !(mda->mode & MDA_MODE_BW))
|
&& !(mda->mode & MDA_MODE_BW)) {
|
||||||
{
|
|
||||||
color_bg = (attr >> 4) & 0x0F;
|
color_bg = (attr >> 4) & 0x0F;
|
||||||
color_fg = (attr & 0x0F);
|
color_fg = (attr & 0x0F);
|
||||||
|
|
||||||
@@ -219,31 +208,23 @@ mda_poll(void *priv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mda->scanline == 12
|
if (mda->scanline == 12
|
||||||
&& ((attr & 7) == 1))
|
&& ((attr & 7) == 1)) { // underline
|
||||||
{ // underline
|
for (uint32_t column = 0; column < 9; column++) {
|
||||||
for (uint32_t column = 0; column < 9; column++)
|
|
||||||
{
|
|
||||||
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
||||||
&& !(mda->mode & MDA_MODE_BW))
|
&& !(mda->mode & MDA_MODE_BW)) {
|
||||||
{
|
|
||||||
buffer32->line[mda->displine][(x * 9) + column] = CGAPAL_CGA_START + color_fg;
|
buffer32->line[mda->displine][(x * 9) + column] = CGAPAL_CGA_START + color_fg;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
buffer32->line[mda->displine][(x * 9) + column] = mda_attr_to_color_table[attr][blink][1];
|
buffer32->line[mda->displine][(x * 9) + column] = mda_attr_to_color_table[attr][blink][1];
|
||||||
}
|
}
|
||||||
}
|
} else { // character
|
||||||
else
|
for (uint32_t column = 0; column < 8; column++) {
|
||||||
{ // character
|
// bg=0, fg=1
|
||||||
for (uint32_t column = 0; column < 8; column++)
|
|
||||||
{
|
|
||||||
//bg=0, fg=1
|
|
||||||
bool is_fg = (fontdatm[chr + mda->fontbase][mda->scanline] & (1 << (column ^ 7))) ? 1 : 0;
|
bool is_fg = (fontdatm[chr + mda->fontbase][mda->scanline] & (1 << (column ^ 7))) ? 1 : 0;
|
||||||
|
|
||||||
uint32_t font_char = mda_attr_to_color_table[attr][blink][is_fg];
|
uint32_t font_char = mda_attr_to_color_table[attr][blink][is_fg];
|
||||||
|
|
||||||
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
||||||
&& !(mda->mode & MDA_MODE_BW))
|
&& !(mda->mode & MDA_MODE_BW)) {
|
||||||
{
|
|
||||||
if (!is_fg)
|
if (!is_fg)
|
||||||
font_char = CGAPAL_CGA_START + color_bg;
|
font_char = CGAPAL_CGA_START + color_bg;
|
||||||
else
|
else
|
||||||
@@ -254,14 +235,12 @@ mda_poll(void *priv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// these characters (C0-DF) have their background extended to their 9th column
|
// these characters (C0-DF) have their background extended to their 9th column
|
||||||
if ((chr & ~0x1f) == 0xc0)
|
if ((chr & ~0x1f) == 0xc0) {
|
||||||
{
|
|
||||||
bool is_fg = fontdatm[chr + mda->fontbase][mda->scanline] & 1;
|
bool is_fg = fontdatm[chr + mda->fontbase][mda->scanline] & 1;
|
||||||
uint32_t final_result = mda_attr_to_color_table[attr][blink][is_fg];
|
uint32_t final_result = mda_attr_to_color_table[attr][blink][is_fg];
|
||||||
|
|
||||||
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
||||||
&& !(mda->mode & MDA_MODE_BW))
|
&& !(mda->mode & MDA_MODE_BW)) {
|
||||||
{
|
|
||||||
if (!is_fg)
|
if (!is_fg)
|
||||||
final_result = CGAPAL_CGA_START + color_bg;
|
final_result = CGAPAL_CGA_START + color_bg;
|
||||||
else
|
else
|
||||||
@@ -270,32 +249,24 @@ mda_poll(void *priv)
|
|||||||
|
|
||||||
buffer32->line[mda->displine][(x * 9) + 8] = final_result;
|
buffer32->line[mda->displine][(x * 9) + 8] = final_result;
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
||||||
&& !(mda->mode & MDA_MODE_BW))
|
&& !(mda->mode & MDA_MODE_BW)) {
|
||||||
{
|
|
||||||
buffer32->line[mda->displine][(x * 9) + 8] = CGAPAL_CGA_START + color_bg;
|
buffer32->line[mda->displine][(x * 9) + 8] = CGAPAL_CGA_START + color_bg;
|
||||||
|
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
buffer32->line[mda->displine][(x * 9) + 8] = mda_attr_to_color_table[attr][blink][0];
|
buffer32->line[mda->displine][(x * 9) + 8] = mda_attr_to_color_table[attr][blink][0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mda->memaddr++;
|
mda->memaddr++;
|
||||||
|
|
||||||
if (drawcursor)
|
if (drawcursor) {
|
||||||
{
|
for (uint32_t column = 0; column < 9; column++) {
|
||||||
for (uint32_t column = 0; column < 9; column++)
|
|
||||||
{
|
|
||||||
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
if (mda->monitor_type == MDA_MONITOR_TYPE_RGBI
|
||||||
&& !(mda->mode & MDA_MODE_BW))
|
&& !(mda->mode & MDA_MODE_BW)) {
|
||||||
{
|
|
||||||
buffer32->line[mda->displine][(x * 9) + column] ^= CGAPAL_CGA_START + color_fg;
|
buffer32->line[mda->displine][(x * 9) + column] ^= CGAPAL_CGA_START + color_fg;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
buffer32->line[mda->displine][(x * 9) + column] ^= mda_attr_to_color_table[attr][0][1];
|
buffer32->line[mda->displine][(x * 9) + column] ^= mda_attr_to_color_table[attr][0][1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -316,38 +287,31 @@ mda_poll(void *priv)
|
|||||||
mda->status &= ~1;
|
mda->status &= ~1;
|
||||||
mda->linepos = 0;
|
mda->linepos = 0;
|
||||||
|
|
||||||
if (mda->vsynctime)
|
if (mda->vsynctime) {
|
||||||
{
|
|
||||||
mda->vsynctime--;
|
mda->vsynctime--;
|
||||||
if (!mda->vsynctime)
|
if (!mda->vsynctime) {
|
||||||
{
|
|
||||||
mda->status &= ~8;
|
mda->status &= ~8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mda->scanline == (mda->crtc[MDA_CRTC_CURSOR_END] & 31)
|
if (mda->scanline == (mda->crtc[MDA_CRTC_CURSOR_END] & 31)
|
||||||
|| ((mda->crtc[MDA_CRTC_INTERLACE] & 3) == 3
|
|| ((mda->crtc[MDA_CRTC_INTERLACE] & 3) == 3
|
||||||
&& mda->scanline == ((mda->crtc[MDA_CRTC_CURSOR_END] & 31) >> 1)))
|
&& mda->scanline == ((mda->crtc[MDA_CRTC_CURSOR_END] & 31) >> 1))) {
|
||||||
{
|
|
||||||
mda->cursorvisible = 0;
|
mda->cursorvisible = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mda->vadj)
|
if (mda->vadj) {
|
||||||
{
|
|
||||||
mda->scanline++;
|
mda->scanline++;
|
||||||
mda->scanline &= 31;
|
mda->scanline &= 31;
|
||||||
mda->memaddr = mda->memaddr_backup;
|
mda->memaddr = mda->memaddr_backup;
|
||||||
mda->vadj--;
|
mda->vadj--;
|
||||||
if (!mda->vadj)
|
if (!mda->vadj) {
|
||||||
{
|
|
||||||
mda->dispon = 1;
|
mda->dispon = 1;
|
||||||
mda->memaddr = mda->memaddr_backup = (mda->crtc[MDA_CRTC_START_ADDR_LOW] | (mda->crtc[MDA_CRTC_START_ADDR_HIGH] << 8)) & 0x3fff;
|
mda->memaddr = mda->memaddr_backup = (mda->crtc[MDA_CRTC_START_ADDR_LOW] | (mda->crtc[MDA_CRTC_START_ADDR_HIGH] << 8)) & 0x3fff;
|
||||||
mda->scanline = 0;
|
mda->scanline = 0;
|
||||||
}
|
}
|
||||||
}
|
} else if (mda->scanline == mda->crtc[MDA_CRTC_MAX_SCANLINE_ADDR]
|
||||||
else if (mda->scanline == mda->crtc[MDA_CRTC_MAX_SCANLINE_ADDR]
|
|
||||||
|| ((mda->crtc[MDA_CRTC_INTERLACE] & 3) == 3
|
|| ((mda->crtc[MDA_CRTC_INTERLACE] & 3) == 3
|
||||||
&& mda->scanline == (mda->crtc[MDA_CRTC_MAX_SCANLINE_ADDR] >> 1)))
|
&& mda->scanline == (mda->crtc[MDA_CRTC_MAX_SCANLINE_ADDR] >> 1))) {
|
||||||
{
|
|
||||||
mda->memaddr_backup = mda->memaddr;
|
mda->memaddr_backup = mda->memaddr;
|
||||||
mda->scanline = 0;
|
mda->scanline = 0;
|
||||||
oldvc = mda->vc;
|
oldvc = mda->vc;
|
||||||
@@ -416,8 +380,7 @@ void
|
|||||||
mda_init(mda_t *mda)
|
mda_init(mda_t *mda)
|
||||||
{
|
{
|
||||||
|
|
||||||
for (uint16_t attr = 0; attr < 256; attr++)
|
for (uint16_t attr = 0; attr < 256; attr++) {
|
||||||
{
|
|
||||||
mda_attr_to_color_table[attr][0][0] = mda_attr_to_color_table[attr][1][0] = mda_attr_to_color_table[attr][1][1] = 16;
|
mda_attr_to_color_table[attr][0][0] = mda_attr_to_color_table[attr][1][0] = mda_attr_to_color_table[attr][1][1] = 16;
|
||||||
if (attr & 8)
|
if (attr & 8)
|
||||||
mda_attr_to_color_table[attr][0][1] = 15 + 16;
|
mda_attr_to_color_table[attr][0][1] = 15 + 16;
|
||||||
@@ -437,7 +400,6 @@ mda_init(mda_t *mda)
|
|||||||
mda_attr_to_color_table[0x80][0][1] = mda_attr_to_color_table[0x80][1][1] = 16;
|
mda_attr_to_color_table[0x80][0][1] = mda_attr_to_color_table[0x80][1][1] = 16;
|
||||||
mda_attr_to_color_table[0x88][0][1] = mda_attr_to_color_table[0x88][1][1] = 16;
|
mda_attr_to_color_table[0x88][0][1] = mda_attr_to_color_table[0x88][1][1] = 16;
|
||||||
|
|
||||||
|
|
||||||
overscan_x = overscan_y = 0;
|
overscan_x = overscan_y = 0;
|
||||||
mda->monitor_index = monitor_index_global;
|
mda->monitor_index = monitor_index_global;
|
||||||
|
|
||||||
@@ -460,7 +422,7 @@ mda_standalone_init(UNUSED(const device_t *info))
|
|||||||
|
|
||||||
mda->vram = malloc(0x1000);
|
mda->vram = malloc(0x1000);
|
||||||
|
|
||||||
switch(device_get_config_int("font")) {
|
switch (device_get_config_int("font")) {
|
||||||
case 0:
|
case 0:
|
||||||
loadfont(FONT_IBM_MDA_437_PATH, 0);
|
loadfont(FONT_IBM_MDA_437_PATH, 0);
|
||||||
break;
|
break;
|
||||||
@@ -517,7 +479,6 @@ mda_speed_changed(void *priv)
|
|||||||
mda_recalctimings(mda);
|
mda_recalctimings(mda);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const device_config_t mda_config[] = {
|
static const device_config_t mda_config[] = {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user