1
0
mirror of https://github.com/simh/simh.git synced 2026-05-03 14:38:45 +00:00

ISYS8010, ISYS8020: Cleanup Build issues for gcc and clang and g++ and clang++

Corrected declaration sizes to match for consistency across different modules.
This commit is contained in:
Bill Beech
2016-05-23 14:28:19 -07:00
parent 9d2b7ee968
commit cbdcaec162
25 changed files with 1224 additions and 2117 deletions

View File

@@ -48,19 +48,17 @@ t_stat multibus_svc(UNIT *uptr);
t_stat multibus_reset(DEVICE *dptr);
void set_irq(int32 int_num);
void clr_irq(int32 int_num);
int32 nulldev(int32 io, int32 data);
int32 reg_dev(int32 (*routine)(int32, int32), int32 port);
uint8 nulldev(t_bool io, uint8 data, uint8 devnum);
uint8 reg_dev(uint8 (*routine)(t_bool io, uint8 data, uint8 devnum), uint16 port, uint8 devnum);
t_stat multibus_reset (DEVICE *dptr);
int32 multibus_get_mbyte(int32 addr);
int32 multibus_get_mword(int32 addr);
void multibus_put_mbyte(int32 addr, int32 val);
void multibus_put_mword(int32 addr, int32 val);
uint8 multibus_get_mbyte(uint16 addr);
void multibus_put_mbyte(uint16 addr, uint8 val);
/* external function prototypes */
extern t_stat SBC_reset(DEVICE *dptr); /* reset the iSBC80/10 emulator */
extern int32 isbc064_get_mbyte(int32 addr);
extern void isbc064_put_mbyte(int32 addr, int32 val);
extern uint8 isbc064_get_mbyte(uint16 addr);
extern void isbc064_put_mbyte(uint16 addr, uint8 val);
extern void set_cpuint(int32 int_num);
extern t_stat SBC_reset (DEVICE *dptr);
extern t_stat isbc064_reset (DEVICE *dptr);
@@ -99,7 +97,7 @@ DEVICE multibus_dev = {
NULL, //modifiers
1, //numunits
16, //aradix
32, //awidth
16, //awidth
1, //aincr
16, //dradix
8, //dwidth
@@ -163,10 +161,11 @@ void clr_irq(int32 int_num)
/* This is the I/O configuration table. There are 256 possible
device addresses, if a device is plugged to a port it's routine
address is here, 'nulldev' means no device is available
address is here, 'nulldev' means no device has been registered.
*/
struct idev {
int32 (*routine)(int32, int32);
uint8 (*routine)(t_bool io, uint8 data, uint8 devnum);
uint8 devnum;
};
struct idev dev_table[256] = {
@@ -236,7 +235,7 @@ struct idev dev_table[256] = {
{&nulldev}, {&nulldev}, {&nulldev}, {&nulldev} /* 0FCH */
};
int32 nulldev(int32 flag, int32 data)
uint8 nulldev(t_bool flag, uint8 data, uint8 devnum)
{
SET_XACK(0); /* set no XACK */
if (flag == 0) /* if we got here, no valid I/O device */
@@ -244,40 +243,30 @@ int32 nulldev(int32 flag, int32 data)
return 0;
}
int32 reg_dev(int32 (*routine)(int32, int32), int32 port)
uint8 reg_dev(uint8 (*routine)(t_bool io, uint8 data, uint8 devnum), uint16 port, uint8 devnum)
{
if (dev_table[port].routine != &nulldev) { /* port already assigned */
// sim_printf("Multibus: I/O Port %02X is already assigned\n", port);
} else {
// sim_printf("Port %02X is assigned\n", port);
dev_table[port].routine = routine;
dev_table[port].devnum = devnum;
}
return 0;
}
/* get a byte from memory */
int32 multibus_get_mbyte(int32 addr)
uint8 multibus_get_mbyte(uint16 addr)
{
SET_XACK(0); /* set no XACK */
// sim_printf("multibus_get_mbyte: Cleared XACK for %04X\n", addr);
return isbc064_get_mbyte(addr);
}
/* get a word from memory */
int32 multibus_get_mword(int32 addr)
{
int32 val;
val = multibus_get_mbyte(addr);
val |= (multibus_get_mbyte(addr+1) << 8);
return val;
}
/* put a byte to memory */
void multibus_put_mbyte(int32 addr, int32 val)
void multibus_put_mbyte(uint16 addr, uint8 val)
{
SET_XACK(0); /* set no XACK */
// sim_printf("multibus_put_mbyte: Cleared XACK for %04X\n", addr);
@@ -285,13 +274,5 @@ void multibus_put_mbyte(int32 addr, int32 val)
// sim_printf("multibus_put_mbyte: Done XACK=%dX\n", XACK);
}
/* put a word to memory */
void multibus_put_mword(int32 addr, int32 val)
{
multibus_put_mbyte(addr, val);
multibus_put_mbyte(addr+1, val << 8);
}
/* end of multibus.c */