sonarlint vid_8514a.c
This commit is contained in:
@@ -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;
|
||||
|
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user