Updated gayle, expansion and headers from latest upstream

This commit is contained in:
Dimitris Panokostas 2020-06-29 22:31:51 +02:00
parent 6adb0d00ee
commit 6b4db7ba53
4 changed files with 43 additions and 29 deletions

View file

@ -2775,7 +2775,7 @@ const struct expansionromtype expansionroms[] = {
}, },
{ {
_T("pcmcia_mb"), _T("A600/A1200 PCMCIA"), _T("Commodore"), _T("pcmcia_mb"), _T("A600/A1200 PCMCIA"), _T("Commodore"),
NULL, gayle_init_pcmcia, NULL, NULL, ROMTYPE_MB_PCMCIA | ROMTYPE_NOT, 0, 0, BOARD_NONAUTOCONFIG_BEFORE, true, NULL, gayle_pcmcia_init, NULL, NULL, ROMTYPE_MB_PCMCIA | ROMTYPE_NOT, 0, 0, BOARD_NONAUTOCONFIG_BEFORE, true,
NULL, 0, NULL, 0,
false, EXPANSIONTYPE_INTERNAL false, EXPANSIONTYPE_INTERNAL
}, },

View file

@ -164,9 +164,6 @@ static int dataflyer_state;
static int dataflyer_disable_irq; static int dataflyer_disable_irq;
static uae_u8 dataflyer_byte; static uae_u8 dataflyer_byte;
static void gayle_reset(int hardreset);
static void gayle_map_pcmcia(void);
static void pcmcia_reset (void) static void pcmcia_reset (void)
{ {
memset (pcmcia_configuration, 0, sizeof pcmcia_configuration); memset (pcmcia_configuration, 0, sizeof pcmcia_configuration);
@ -212,7 +209,7 @@ bool isideint(void)
return checkgayleideirq() != 0; return checkgayleideirq() != 0;
} }
static void rethink_gayle (void) void rethink_gayle (void)
{ {
int lev2 = 0; int lev2 = 0;
int lev6 = 0; int lev6 = 0;
@ -1553,7 +1550,7 @@ static void REGPARAM2 gayle_common_bput (uaecptr addr, uae_u32 value)
gayle_common_write_byte(addr, value); gayle_common_write_byte(addr, value);
} }
static void gayle_map_pcmcia (void) void gayle_map_pcmcia (void)
{ {
if (currprefs.cs_pcmcia == 0) if (currprefs.cs_pcmcia == 0)
return; return;
@ -1632,12 +1629,20 @@ bool gayle_init_pcmcia(struct autoconfig_info *aci)
return true; return true;
} }
static void gayle_hsync(void) void gayle_hsync(void)
{ {
if (ide_interrupt_hsync(idedrive[0]) || ide_interrupt_hsync(idedrive[2]) || ide_interrupt_hsync(idedrive[4])) if (ide_interrupt_hsync(idedrive[0]) || ide_interrupt_hsync(idedrive[2]) || ide_interrupt_hsync(idedrive[4]))
devices_rethink_all(rethink_gayle); devices_rethink_all(rethink_gayle);
} }
bool gayle_pcmcia_init(struct autoconfig_info* aci)
{
aci->start = 0x600000;
aci->size = 0xa80000 - aci->start;
aci->zorro = 0;
return true;
}
static void initide (void) static void initide (void)
{ {
gayle_its.idetable = idedrive; gayle_its.idetable = idedrive;
@ -1656,20 +1661,20 @@ static void initide (void)
gayle_irq = gayle_int = 0; gayle_irq = gayle_int = 0;
} }
static void gayle_free (void) void gayle_free (void)
{ {
stop_ide_thread(&gayle_its); stop_ide_thread(&gayle_its);
//stop_ide_thread(&pcmcia_its); //stop_ide_thread(&pcmcia_its);
} }
static void check_prefs_changed_gayle(void) void check_prefs_changed_gayle(void)
{ {
if (!currprefs.cs_pcmcia) if (!currprefs.cs_pcmcia)
return; return;
//pcmcia_card_check(1, -1); //pcmcia_card_check(1, -1);
} }
static void gayle_reset (int hardreset) void gayle_reset (int hardreset)
{ {
static TCHAR bankname[100]; static TCHAR bankname[100];

View file

@ -3,15 +3,23 @@
#include "uae/types.h" #include "uae/types.h"
void gayle_add_ide_unit (int ch, struct uaedev_config_info *ci, struct romconfig *rc); extern void gayle_reset(int);
bool gayle_ide_init(struct autoconfig_info*); extern void gayle_hsync(void);
void gayle_free_units (void); extern void gayle_free(void);
bool gayle_init_pcmcia(struct autoconfig_info *aci); extern void gayle_add_ide_unit(int ch, struct uaedev_config_info* ci, struct romconfig* rc);
bool gayle_init_board_io_pcmcia(struct autoconfig_info *aci); extern bool gayle_ide_init(struct autoconfig_info*);
bool gayle_init_board_common_pcmcia(struct autoconfig_info *aci); extern int gayle_modify_pcmcia_sram_unit(struct uaedev_config_info*, int insert);
void pcmcia_eject(struct uae_prefs *p); extern int gayle_modify_pcmcia_ide_unit(struct uaedev_config_info*, int insert);
void pcmcia_reinsert(struct uae_prefs*); extern int gayle_add_pcmcia_sram_unit(struct uaedev_config_info*);
bool pcmcia_disk_reinsert(struct uae_prefs *p, struct uaedev_config_info *uci, bool ejectonly); extern int gayle_add_pcmcia_ide_unit(struct uaedev_config_info*);
extern void gayle_free_units(void);
extern void rethink_gayle(void);
extern void gayle_map_pcmcia(void);
extern void check_prefs_changed_gayle(void);
extern void gayle_add_pcmcia_unit(int ch, struct uaedev_config_info* ci, struct romconfig* rc);
extern bool gayle_pcmcia_init(struct autoconfig_info*);
extern bool gayle_init_ne2000_pcmcia(struct autoconfig_info* aci);
bool isideint(void);
extern int gary_toenb; // non-existing memory access = bus error. extern int gary_toenb; // non-existing memory access = bus error.
extern int gary_timeout; // non-existing memory access = delay extern int gary_timeout; // non-existing memory access = delay

View file

@ -487,7 +487,9 @@ extern addrbank *get_mem_bank_real(uaecptr);
(mem_banks[bankindex(addr)] = (b)); (mem_banks[bankindex(addr)] = (b));
#endif #endif
extern void memory_init(void);
extern void memory_cleanup (void); extern void memory_cleanup (void);
extern void restore_banks(void);
extern void map_banks (addrbank *bank, int first, int count, int realsize); extern void map_banks (addrbank *bank, int first, int count, int realsize);
extern void map_banks_z2 (addrbank *bank, int first, int count); extern void map_banks_z2 (addrbank *bank, int first, int count);
extern void map_banks_z3(addrbank *bank, int first, int count); extern void map_banks_z3(addrbank *bank, int first, int count);
@ -762,19 +764,18 @@ extern void REGPARAM3 chipmem_wput (uaecptr, uae_u32) REGPARAM;
extern void REGPARAM3 chipmem_bput (uaecptr, uae_u32) REGPARAM; extern void REGPARAM3 chipmem_bput (uaecptr, uae_u32) REGPARAM;
extern uae_u32 REGPARAM3 chipmem_agnus_wget (uaecptr) REGPARAM; extern uae_u32 REGPARAM3 chipmem_agnus_wget (uaecptr) REGPARAM;
extern void REGPARAM3 chipmem_agnus_wput (uaecptr, uae_u32) REGPARAM; extern void REGPARAM3 chipmem_agnus_wput(uaecptr, uae_u32) REGPARAM;
extern uae_u32 chipmem_full_mask;
extern addrbank dummy_bank; extern addrbank dummy_bank;
STATIC_INLINE uae_u32 chipmem_lget_indirect(uae_u32 PT) { extern uae_u32(REGPARAM3* chipmem_lget_indirect)(uaecptr) REGPARAM;
return do_get_mem_long((uae_u32 *)&chipmem_bank.baseaddr[PT & chipmem_bank.mask]); extern uae_u32(REGPARAM3* chipmem_wget_indirect)(uaecptr) REGPARAM;
} extern uae_u32(REGPARAM3* chipmem_bget_indirect)(uaecptr) REGPARAM;
STATIC_INLINE uae_u32 chipmem_wget_indirect (uae_u32 PT) { extern void (REGPARAM3* chipmem_lput_indirect)(uaecptr, uae_u32) REGPARAM;
return do_get_mem_word((uae_u16 *)&chipmem_bank.baseaddr[PT & chipmem_full_mask]); extern void (REGPARAM3* chipmem_wput_indirect)(uaecptr, uae_u32) REGPARAM;
} extern void (REGPARAM3* chipmem_bput_indirect)(uaecptr, uae_u32) REGPARAM;
extern int (REGPARAM3* chipmem_check_indirect)(uaecptr, uae_u32) REGPARAM;
#define chipmem_wput_indirect chipmem_agnus_wput extern uae_u8* (REGPARAM3* chipmem_xlate_indirect)(uaecptr) REGPARAM;
extern bool mapped_malloc (addrbank*); extern bool mapped_malloc (addrbank*);
extern void mapped_free (addrbank*); extern void mapped_free (addrbank*);