sonarlint vid_8514a.c

This commit is contained in:
Jasmine Iwanek
2023-07-30 18:47:40 -04:00
parent a96e14abda
commit 22948be80a
2 changed files with 69 additions and 64 deletions

View File

@@ -31,9 +31,13 @@ typedef struct ibm8514_t {
uint32_t vram_mask;
PALETTE vgapal;
uint8_t dac_mask, dac_status;
uint8_t dac_mask;
uint8_t dac_status;
uint32_t *map8;
int dac_addr, dac_pos, dac_r, dac_g;
int dac_addr;
int dac_pos;
int dac_r;
int dac_g;
int internal_pitch;
struct {
@@ -143,7 +147,7 @@ typedef struct ibm8514_t {
uint8_t *vram;
uint8_t *changedvram;
uint8_t linedbl;
uint8_t linedbl;
uint8_t data_available;
uint8_t data_available2;

View File

@@ -212,7 +212,7 @@ int ibm8514_has_vga = 0;
int
ibm8514_cpu_src(svga_t *svga)
{
ibm8514_t *dev = &svga->dev8514;
const ibm8514_t *dev = &svga->dev8514;
if (!(dev->accel.cmd & 0x100))
return 0;
@@ -226,7 +226,7 @@ ibm8514_cpu_src(svga_t *svga)
int
ibm8514_cpu_dest(svga_t *svga)
{
ibm8514_t *dev = &svga->dev8514;
const ibm8514_t *dev = &svga->dev8514;
if (!(dev->accel.cmd & 0x100))
return 0;
@@ -240,16 +240,16 @@ ibm8514_cpu_dest(svga_t *svga)
void
ibm8514_accel_out_pixtrans(svga_t *svga, UNUSED(uint16_t port), uint16_t val, int len)
{
ibm8514_t *dev = &svga->dev8514;
uint8_t nibble = 0;
uint32_t pixelxfer = 0;
uint32_t monoxfer = 0xffffffff;
int pixcnt = 0;
int pixcntl = (dev->accel.multifunc[0x0a] >> 6) & 3;
int frgd_mix = (dev->accel.frgd_mix >> 5) & 3;
int bkgd_mix = (dev->accel.bkgd_mix >> 5) & 3;
int cmd = dev->accel.cmd >> 13;
int and3 = dev->accel.cur_x & 3;
ibm8514_t *dev = &svga->dev8514;
uint8_t nibble = 0;
uint32_t pixelxfer = 0;
uint32_t monoxfer = 0xffffffff;
int pixcnt = 0;
int pixcntl = (dev->accel.multifunc[0x0a] >> 6) & 3;
int frgd_mix = (dev->accel.frgd_mix >> 5) & 3;
int bkgd_mix = (dev->accel.bkgd_mix >> 5) & 3;
int cmd = dev->accel.cmd >> 13;
int and3 = dev->accel.cur_x & 3;
if (dev->accel.cmd & 0x100) {
if (len != 1) {
@@ -537,7 +537,7 @@ ibm8514_accel_out_fifo(svga_t *svga, uint16_t port, uint32_t val, int len)
if (len != 1)
dev->test = val;
#ifdef FALLTHROUGH_ANNOTATION
[[fallthrough]];
[[fallthrough]];
#endif
case 0xd2e8:
if (len == 1)
@@ -981,8 +981,8 @@ ibm8514_accel_out(uint16_t port, uint32_t val, svga_t *svga, int len)
if (!val)
break;
dev->accel.advfunc_cntl = val & 7;
ibm8514_on = (dev->accel.advfunc_cntl & 1);
vga_on = !ibm8514_on;
ibm8514_on = (dev->accel.advfunc_cntl & 1);
vga_on = !ibm8514_on;
ibm8514_log("IBM 8514/A: VGA ON = %i, val = %02x\n", vga_on, val);
svga_recalctimings(svga);
break;
@@ -1013,8 +1013,8 @@ ibm8514_accel_in(uint16_t port, svga_t *svga, int len)
ibm8514_t *dev = &svga->dev8514;
uint32_t temp = 0;
int cmd;
int vpos = dev->displine + svga->y_add;
int vblankend = svga->vblankstart + svga->crtc[0x16];
int vpos = dev->displine + svga->y_add;
int vblankend = svga->vblankstart + svga->crtc[0x16];
switch (port) {
case 0x2e8:
@@ -1024,7 +1024,7 @@ ibm8514_accel_in(uint16_t port, svga_t *svga, int len)
if (vpos >= svga->vblankstart || vpos <= vblankend)
temp |= 2;
} else {
if (vpos >= svga->vblankstart && vpos <= vblankend)
if (vpos >= svga->vblankstart && vpos <= vblankend)
temp |= 2;
}
break;
@@ -1059,7 +1059,7 @@ ibm8514_accel_in(uint16_t port, svga_t *svga, int len)
if (vpos >= svga->vblankstart || vpos <= vblankend)
dev->subsys_stat |= 1;
} else {
if (vpos >= svga->vblankstart && vpos <= vblankend)
if (vpos >= svga->vblankstart && vpos <= vblankend)
dev->subsys_stat |= 1;
}
if (len != 1) {
@@ -1140,6 +1140,7 @@ static uint8_t
ibm8514_accel_inb(uint16_t port, void *priv)
{
svga_t *svga = (svga_t *) priv;
return ibm8514_accel_in(port, svga, 1);
}
@@ -1147,6 +1148,7 @@ static uint16_t
ibm8514_accel_inw(uint16_t port, void *priv)
{
svga_t *svga = (svga_t *) priv;
return ibm8514_accel_in(port, svga, 2);
}
@@ -1171,8 +1173,8 @@ ibm8514_short_stroke_start(int count, int cpu_input, uint32_t mix_dat, uint32_t
void
ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, svga_t *svga, UNUSED(int len))
{
ibm8514_t *dev = &svga->dev8514;
uint16_t *vram_w = (uint16_t *)svga->vram;
ibm8514_t *dev = &svga->dev8514;
uint16_t *vram_w = (uint16_t *) svga->vram;
uint16_t src_dat = 0;
uint16_t dest_dat;
uint16_t old_dest_dat;
@@ -1181,7 +1183,7 @@ ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat
uint16_t clip_b = dev->accel.multifunc[3];
uint16_t clip_r = dev->accel.multifunc[4];
int pixcntl = (dev->accel.multifunc[0x0a] >> 6) & 3;
uint16_t mix_mask = ((svga->bpp == 8) || (svga->bpp == 24)) ? 0x80 : 0x8000;
uint16_t mix_mask = ((svga->bpp == 8) || (svga->bpp == 24)) ? 0x80 : 0x8000;
uint16_t compare = dev->accel.color_cmp;
int compare_mode = dev->accel.multifunc[0x0a] & 0x38;
int cmd = dev->accel.cmd >> 13;
@@ -1340,9 +1342,9 @@ ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat
READ((dev->accel.cy * dev->pitch) + dev->accel.cx, dest_dat);
if ((compare_mode == 0) || ((compare_mode == 0x10) && (dest_dat >= compare)) || ((compare_mode == 0x18) && (dest_dat < compare)) || ((compare_mode == 0x20) && (dest_dat != compare)) || ((compare_mode == 0x28) && (dest_dat == compare)) || ((compare_mode == 0x30) && (dest_dat <= compare)) || ((compare_mode == 0x38) && (dest_dat > compare))) {
old_dest_dat = dest_dat;
old_dest_dat = dest_dat;
MIX(mix_dat & mix_mask, dest_dat, src_dat);
dest_dat = (dest_dat & wrt_mask) | (old_dest_dat & ~wrt_mask);
dest_dat = (dest_dat & wrt_mask) | (old_dest_dat & ~wrt_mask);
if (dev->accel.ssv_draw) {
if ((dev->accel.cmd & 4) && dev->accel.ssv_len) {
@@ -2021,10 +2023,10 @@ ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat
dev->accel.cy |= ~0x5ff;
if (dev->local && dev->accel.ge_offset && (svga->bpp == 24))
dev->accel.dest = (dev->accel.ge_offset << 2) + (dev->accel.cy * dev->pitch);
dev->accel.dest = (dev->accel.ge_offset << 2) + (dev->accel.cy * dev->pitch);
else
dev->accel.dest = dev->accel.cy * dev->pitch;
dev->accel.dest = dev->accel.cy * dev->pitch;
dev->accel.fill_state = 0;
if (cmd == 4)
@@ -2071,7 +2073,7 @@ ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat
} else {
if (!(dev->accel.cmd & 0x40) && (frgd_mix == 2) && (bkgd_mix == 2) && (pixcntl == 0) && (cmd == 2)) {
if (!(dev->accel.sx & 1)) {
dev->accel.output = 1;
dev->accel.output = 1;
if (dev->local && dev->accel.ge_offset && (svga->bpp == 24))
dev->accel.newdest_out = (dev->accel.ge_offset << 2) + ((dev->accel.cy + 1) * dev->pitch);
else
@@ -2349,9 +2351,9 @@ rect_fill_pix:
dev->accel.cy--;
if (dev->local && dev->accel.ge_offset && (svga->bpp == 24))
dev->accel.dest = (dev->accel.ge_offset << 2) + (dev->accel.cy * dev->pitch);
dev->accel.dest = (dev->accel.ge_offset << 2) + (dev->accel.cy * dev->pitch);
else
dev->accel.dest = dev->accel.cy * dev->pitch;
dev->accel.dest = dev->accel.cy * dev->pitch;
dev->accel.sy--;
return;
@@ -2441,9 +2443,9 @@ rect_fill_pix:
dev->accel.cy--;
if (dev->local && dev->accel.ge_offset && (svga->bpp == 24))
dev->accel.dest = (dev->accel.ge_offset << 2) + (dev->accel.cy * dev->pitch);
dev->accel.dest = (dev->accel.ge_offset << 2) + (dev->accel.cy * dev->pitch);
else
dev->accel.dest = dev->accel.cy * dev->pitch;
dev->accel.dest = dev->accel.cy * dev->pitch;
dev->accel.sy--;
return;
@@ -2975,15 +2977,15 @@ rect_fill:
case 5: /*Draw Polygon Boundary Line*/
if (!cpu_input) {
dev->accel.cx = dev->accel.cur_x;
dev->accel.cy = dev->accel.cur_y;
dev->accel.cx = dev->accel.cur_x;
dev->accel.cy = dev->accel.cur_y;
if (dev->accel.cur_x >= 0x600)
dev->accel.cx |= ~0x5ff;
if (dev->accel.cur_y >= 0x600)
dev->accel.cy |= ~0x5ff;
dev->accel.oldcy = dev->accel.cy;
dev->accel.sy = 0;
dev->accel.sy = 0;
if (ibm8514_cpu_src(svga)) {
dev->data_available = 0;
@@ -3259,7 +3261,7 @@ bitblt_pix:
dev->accel.cy--;
}
dev->accel.src = dev->accel.cy * dev->pitch;
dev->accel.src = dev->accel.cy * dev->pitch;
dev->accel.dest = dev->accel.dy * dev->pitch;
dev->accel.sy--;
return;
@@ -3626,8 +3628,8 @@ bitblt:
int64_t cx;
int64_t dx;
cx = (int64_t)dev->accel.cx;
dx = (int64_t)dev->accel.dx;
cx = (int64_t) dev->accel.cx;
dx = (int64_t) dev->accel.dx;
while (1) {
if ((dx >= (((int64_t)dev->accel.clip_left) * 3)) && (dx <= (((uint64_t)clip_r) * 3)) &&
@@ -3864,7 +3866,7 @@ ibm8514_poll(ibm8514_t *dev, svga_t *svga)
dev->linepos = 0;
if (dev->dispon) {
if (dev->sc == dev->rowcount) {
dev->sc = 0;
dev->sc = 0;
dev->maback += (dev->rowoffset << 3);
if (dev->interlace)
dev->maback += (dev->rowoffset << 3);
@@ -3940,13 +3942,13 @@ ibm8514_recalctimings(svga_t *svga)
ibm8514_t *dev = &svga->dev8514;
if (ibm8514_on) {
dev->h_disp = (dev->hdisp + 1) << 3;
dev->pitch = (dev->accel.advfunc_cntl & 4) ? 1024 : 640;
dev->h_total = (dev->htotal + 1);
dev->v_total = (dev->vtotal + 1);
dev->v_syncstart = (dev->vsyncstart + 1);
dev->rowcount = !!(dev->disp_cntl & 0x08);
dev->dispend = ((dev->vdisp >> 1) + 1);
dev->h_disp = (dev->hdisp + 1) << 3;
dev->pitch = (dev->accel.advfunc_cntl & 4) ? 1024 : 640;
dev->h_total = (dev->htotal + 1);
dev->v_total = (dev->vtotal + 1);
dev->v_syncstart = (dev->vsyncstart + 1);
dev->rowcount = !!(dev->disp_cntl & 0x08);
dev->dispend = ((dev->vdisp >> 1) + 1);
if (dev->dispend == 766)
dev->dispend = 768;
@@ -3956,9 +3958,9 @@ ibm8514_recalctimings(svga_t *svga)
if (dev->accel.advfunc_cntl & 4) {
if (!vga_on && dev->ibm_mode) {
if (dev->h_disp == 8) {
dev->h_disp = 1024;
dev->dispend = 768;
dev->v_total = 1536;
dev->h_disp = 1024;
dev->dispend = 768;
dev->v_total = 1536;
dev->v_syncstart = 1536;
}
}
@@ -3976,7 +3978,7 @@ ibm8514_recalctimings(svga_t *svga)
}
if (ibm8514_has_vga) {
dev->pitch = dev->ext_pitch;
dev->pitch = dev->ext_pitch;
dev->rowoffset = dev->ext_crt_pitch;
} else
dev->rowoffset = 128;
@@ -3986,7 +3988,7 @@ ibm8514_recalctimings(svga_t *svga)
} else {
if (!vga_on && dev->ibm_mode) {
if (dev->h_disp == 1024) {
dev->h_disp = 640;
dev->h_disp = 640;
dev->dispend = 480;
}
}
@@ -4001,7 +4003,7 @@ ibm8514_recalctimings(svga_t *svga)
}
if (ibm8514_has_vga) {
dev->pitch = dev->ext_pitch;
dev->pitch = dev->ext_pitch;
dev->rowoffset = dev->ext_crt_pitch;
} else
dev->rowoffset = 128;
@@ -4017,8 +4019,8 @@ ibm8514_recalctimings(svga_t *svga)
static uint8_t
ibm8514_mca_read(int port, void *priv)
{
svga_t *svga = (svga_t *) priv;
ibm8514_t *dev = &svga->dev8514;
const svga_t *svga = (svga_t *) priv;
const ibm8514_t *dev = &svga->dev8514;
return (dev->pos_regs[port & 7]);
}
@@ -4040,15 +4042,14 @@ ibm8514_mca_write(int port, uint8_t val, void *priv)
static uint8_t
ibm8514_mca_feedb(void *priv)
{
svga_t *svga = (svga_t *) priv;
ibm8514_t *dev = &svga->dev8514;
const svga_t *svga = (svga_t *) priv;
const ibm8514_t *dev = &svga->dev8514;
return dev->pos_regs[2] & 1;
}
static void
*
ibm8514_init(const device_t *info)
static void *
ibm8514_init(const device_t *info)
{
if (svga_get_pri() == NULL)
return NULL;
@@ -4062,9 +4063,9 @@ static void
dev->vram_mask = dev->vram_size - 1;
dev->map8 = svga->pallook;
dev->type = info->flags;
dev->type = info->flags;
dev->ibm_mode = 1;
dev->bpp = 8;
dev->bpp = 8;
ibm8514_io_set(svga);