More sonarlint work
This commit is contained in:
@@ -74,6 +74,7 @@
|
||||
#include <86box/vid_mda.h>
|
||||
#include <86box/machine.h>
|
||||
#include <86box/m_amstrad.h>
|
||||
#include <86box/plat_unused.h>
|
||||
|
||||
#define STAT_PARITY 0x80
|
||||
#define STAT_RTIMEOUT 0x40
|
||||
@@ -84,60 +85,64 @@
|
||||
#define STAT_IFULL 0x02
|
||||
#define STAT_OFULL 0x01
|
||||
|
||||
typedef struct {
|
||||
rom_t bios_rom; /* 1640 */
|
||||
cga_t cga; /* 1640/200 */
|
||||
mda_t mda; /* 1512/200/PPC512/640*/
|
||||
ega_t ega; /* 1640 */
|
||||
uint8_t emulation; /* Which display are we emulating? */
|
||||
uint8_t dipswitches; /* DIP switches 1-3 */
|
||||
uint8_t crtc_index; /* CRTC index readback
|
||||
* Bit 7: CGA control port written
|
||||
* Bit 6: Operation control port written
|
||||
* Bit 5: CRTC register written
|
||||
* Bits 0-4: Last CRTC register selected */
|
||||
uint8_t operation_ctrl;
|
||||
uint8_t reg_3df, type;
|
||||
uint8_t crtc[32];
|
||||
int crtcreg;
|
||||
int cga_enabled; /* 1640 */
|
||||
uint8_t cgacol,
|
||||
cgamode,
|
||||
stat;
|
||||
uint8_t plane_write, /* 1512/200 */
|
||||
plane_read, /* 1512/200 */
|
||||
border, /* 1512/200 */
|
||||
invert; /* 512/640 */
|
||||
int fontbase; /* 1512/200 */
|
||||
int linepos,
|
||||
displine;
|
||||
int sc, vc;
|
||||
int cgadispon;
|
||||
int con, coff,
|
||||
cursoron,
|
||||
cgablink;
|
||||
int vsynctime;
|
||||
int fullchange;
|
||||
int vadj;
|
||||
uint16_t ma, maback;
|
||||
int dispon;
|
||||
int blink;
|
||||
uint64_t dispontime, /* 1512/1640 */
|
||||
dispofftime; /* 1512/1640 */
|
||||
pc_timer_t timer; /* 1512/1640 */
|
||||
int firstline,
|
||||
lastline;
|
||||
uint8_t *vram;
|
||||
void *ams;
|
||||
typedef struct amsvid_t {
|
||||
rom_t bios_rom; /* 1640 */
|
||||
cga_t cga; /* 1640/200 */
|
||||
mda_t mda; /* 1512/200/PPC512/640*/
|
||||
ega_t ega; /* 1640 */
|
||||
uint8_t emulation; /* Which display are we emulating? */
|
||||
uint8_t dipswitches; /* DIP switches 1-3 */
|
||||
uint8_t crtc_index; /* CRTC index readback
|
||||
* Bit 7: CGA control port written
|
||||
* Bit 6: Operation control port written
|
||||
* Bit 5: CRTC register written
|
||||
* Bits 0-4: Last CRTC register selected */
|
||||
uint8_t operation_ctrl;
|
||||
uint8_t reg_3df;
|
||||
uint8_t type;
|
||||
uint8_t crtc[32];
|
||||
int crtcreg;
|
||||
int cga_enabled; /* 1640 */
|
||||
uint8_t cgacol;
|
||||
uint8_t cgamode;
|
||||
uint8_t stat;
|
||||
uint8_t plane_write; /* 1512/200 */
|
||||
uint8_t plane_read; /* 1512/200 */
|
||||
uint8_t border; /* 1512/200 */
|
||||
uint8_t invert; /* 512/640 */
|
||||
int fontbase; /* 1512/200 */
|
||||
int linepos;
|
||||
int displine;
|
||||
int sc;
|
||||
int vc;
|
||||
int cgadispon;
|
||||
int con;
|
||||
int coff;
|
||||
int cursoron;
|
||||
int cgablink;
|
||||
int vsynctime;
|
||||
int fullchange;
|
||||
int vadj;
|
||||
uint16_t ma;
|
||||
uint16_t maback;
|
||||
int dispon;
|
||||
int blink;
|
||||
uint64_t dispontime; /* 1512/1640 */
|
||||
uint64_t dispofftime; /* 1512/1640 */
|
||||
pc_timer_t timer; /* 1512/1640 */
|
||||
int firstline;
|
||||
int lastline;
|
||||
uint8_t *vram;
|
||||
void *ams;
|
||||
} amsvid_t;
|
||||
|
||||
typedef struct {
|
||||
typedef struct amstrad_t {
|
||||
/* Machine stuff. */
|
||||
uint8_t dead;
|
||||
uint8_t stat1,
|
||||
stat2;
|
||||
uint8_t type,
|
||||
language;
|
||||
uint8_t stat1;
|
||||
uint8_t stat2;
|
||||
uint8_t type;
|
||||
uint8_t language;
|
||||
|
||||
/* Keyboard stuff. */
|
||||
int8_t wantirq;
|
||||
@@ -147,8 +152,8 @@ typedef struct {
|
||||
pc_timer_t send_delay_timer;
|
||||
|
||||
/* Mouse stuff. */
|
||||
uint8_t mousex,
|
||||
mousey;
|
||||
uint8_t mousex;
|
||||
uint8_t mousey;
|
||||
int oldb;
|
||||
|
||||
/* Video stuff. */
|
||||
@@ -160,7 +165,7 @@ uint32_t amstrad_latch;
|
||||
|
||||
static uint8_t key_queue[16];
|
||||
static int key_queue_start = 0;
|
||||
static int key_queue_end = 0;
|
||||
static int key_queue_end = 0;
|
||||
static uint8_t crtc_mask[32] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x7f, 0x7f,
|
||||
0xf3, 0x1f, 0x7f, 0x1f, 0x3f, 0xff, 0x3f, 0xff,
|
||||
@@ -263,6 +268,9 @@ vid_out_1512(uint16_t addr, uint8_t val, void *priv)
|
||||
case 0x03df:
|
||||
vid->border = val;
|
||||
return;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -287,6 +295,9 @@ vid_in_1512(uint16_t addr, void *priv)
|
||||
case 0x03da:
|
||||
ret = vid->stat;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -780,9 +791,15 @@ vid_out_1640(uint16_t addr, uint8_t val, void *priv)
|
||||
mem_mapping_set_addr(&vid->ega.mapping,
|
||||
0xb8000, 0x08000);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (vid->cga_enabled)
|
||||
@@ -924,6 +941,9 @@ ams_inform(amsvid_t *vid)
|
||||
case PC200_LCDM:
|
||||
video_inform(VIDEO_FLAG_TYPE_MDA, &timing_pc200);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1013,6 +1033,9 @@ set_lcd_cols(uint8_t mode_reg)
|
||||
lcdcols[c][0][0] = lcdcols[c][1][0] = blue;
|
||||
lcdcols[c][0][1] = lcdcols[c][1][1] = blue;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1043,6 +1066,9 @@ vid_in_200(uint16_t addr, void *priv)
|
||||
|
||||
case 0x03df:
|
||||
return (vid->reg_3df);
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (addr >= 0x3D0 && addr <= 0x3DF)
|
||||
@@ -1176,6 +1202,9 @@ vid_out_200(uint16_t addr, uint8_t val, void *priv)
|
||||
mem_mapping_enable(&vid->cga.mapping);
|
||||
}
|
||||
return;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (addr >= 0x3D0 && addr <= 0x3DF)
|
||||
@@ -1272,7 +1301,7 @@ lcdm_poll(amsvid_t *vid)
|
||||
drawcursor = ((mda->ma == ca) && mda->con && mda->cursoron);
|
||||
blink = ((mda->blink & 16) && (mda->ctrl & 0x20) && (attr & 0x80) && !drawcursor);
|
||||
|
||||
lcd_draw_char_80(vid, &((uint32_t *) (buffer32->line[mda->displine]))[x * 8], chr, attr, drawcursor, blink, mda->sc, 0, mda->ctrl);
|
||||
lcd_draw_char_80(vid, &((buffer32->line[mda->displine]))[x * 8], chr, attr, drawcursor, blink, mda->sc, 0, mda->ctrl);
|
||||
mda->ma++;
|
||||
}
|
||||
}
|
||||
@@ -1422,7 +1451,7 @@ lcdc_poll(amsvid_t *vid)
|
||||
dat = (cga->vram[((cga->ma << 1) & 0x1fff) + ((cga->sc & 1) * 0x2000)] << 8) | cga->vram[((cga->ma << 1) & 0x1fff) + ((cga->sc & 1) * 0x2000) + 1];
|
||||
cga->ma++;
|
||||
for (uint8_t c = 0; c < 16; c++) {
|
||||
buffer32->line[(cga->displine << 1)][(x << 4) + c] = buffer32->line[(cga->displine << 1) + 1][(x << 4) + c] = (dat & 0x8000) ? blue : green;
|
||||
buffer32->line[cga->displine << 1][(x << 4) + c] = buffer32->line[(cga->displine << 1) + 1][(x << 4) + c] = (dat & 0x8000) ? blue : green;
|
||||
dat <<= 1;
|
||||
}
|
||||
}
|
||||
@@ -1568,9 +1597,9 @@ lcdc_poll(amsvid_t *vid)
|
||||
}
|
||||
|
||||
static void
|
||||
vid_poll_200(void *p)
|
||||
vid_poll_200(void *priv)
|
||||
{
|
||||
amsvid_t *vid = (amsvid_t *) p;
|
||||
amsvid_t *vid = (amsvid_t *) priv;
|
||||
|
||||
switch (vid->emulation) {
|
||||
case PC200_LCDM:
|
||||
@@ -1579,6 +1608,9 @@ vid_poll_200(void *p)
|
||||
case PC200_LCDC:
|
||||
lcdc_poll(vid);
|
||||
return;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1614,6 +1646,9 @@ vid_init_200(amstrad_t *ams)
|
||||
break;
|
||||
/* The other combination is 'IDA disabled' (0x20) - see
|
||||
* m_amstrad.c */
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
else
|
||||
switch (vid->emulation) {
|
||||
@@ -1635,6 +1670,9 @@ vid_init_200(amstrad_t *ams)
|
||||
case PC200_LCDM:
|
||||
vid->dipswitches = 0x10;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
cga = &vid->cga;
|
||||
@@ -1969,7 +2007,7 @@ const device_t vid_pc3086_device = {
|
||||
};
|
||||
|
||||
static void
|
||||
ms_write(uint16_t addr, uint8_t val, void *priv)
|
||||
ms_write(uint16_t addr, UNUSED(uint8_t val), void *priv)
|
||||
{
|
||||
amstrad_t *ams = (amstrad_t *) priv;
|
||||
|
||||
@@ -1997,7 +2035,7 @@ ms_read(uint16_t addr, void *priv)
|
||||
}
|
||||
|
||||
static int
|
||||
ms_poll(int x, int y, int z, int b, void *priv)
|
||||
ms_poll(int x, int y, UNUSED(int z), int b, void *priv)
|
||||
{
|
||||
amstrad_t *ams = (amstrad_t *) priv;
|
||||
|
||||
@@ -2222,6 +2260,9 @@ ams_write(uint16_t port, uint8_t val, void *priv)
|
||||
case 0xdead:
|
||||
ams->dead = val;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2285,6 +2326,9 @@ ams_read(uint16_t port, void *priv)
|
||||
case AMSTRAD_SW10:
|
||||
ret |= 0x20;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -2300,6 +2344,9 @@ ams_read(uint16_t port, void *priv)
|
||||
case 0xdead:
|
||||
ret = ams->dead;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -2482,6 +2529,9 @@ machine_amstrad_init(const machine_t *model, int type)
|
||||
case AMS_PC3086:
|
||||
ams->fdc = device_add(&fdc_at_actlow_device);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
ams->language = 7;
|
||||
@@ -2539,6 +2589,9 @@ machine_amstrad_init(const machine_t *model, int type)
|
||||
device_context_restore();
|
||||
device_add(¶dise_pvga1a_pc3086_device);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
else if ((type == AMS_PC200) || (type == AMS_PPC512))
|
||||
io_sethandler(0x03de, 1,
|
||||
|
||||
Reference in New Issue
Block a user