60
50
#define VIC_BLK5 16
61
51
#define VIC_BLK_ALL (VIC_BLK0 | VIC_BLK1 | VIC_BLK2 | VIC_BLK3 | VIC_BLK5)
63
extern BYTE mem_cartrom[0x10000];
54
#define VIC_CART_RAM123 (1<<0)
55
#define VIC_CART_BLK1 (1<<1)
56
#define VIC_CART_BLK2 (1<<2)
57
#define VIC_CART_BLK3 (1<<3)
58
#define VIC_CART_BLK5 (1<<4)
59
#define VIC_CART_IO2 (1<<5)
60
#define VIC_CART_IO3 (1<<6)
65
62
extern int vic20_mem_init_resources(void);
66
63
extern int vic20_mem_init_cmdline_options(void);
67
64
extern int vic20_mem_disable_ram_block(int num);
68
65
extern int vic20_mem_enable_ram_block(int num);
67
/* this should go away */
70
68
extern void mem_attach_cartridge(int type, BYTE *rawcart);
71
69
extern void mem_detach_cartridge(int type);
73
71
extern int mem_patch_kernal(void);
73
/* Last data read/write by the cpu, this value lingers on the C(PU)-bus and
74
gets used when the CPU reads from unconnected space on the C(PU)-bus */
75
extern BYTE vic20_cpu_last_data;
76
/* Last read data on V-bus (VD0-VD7) */
77
extern BYTE vic20_v_bus_last_data;
78
/* Last read data on V-bus (VD8-VD11) */
79
extern BYTE vic20_v_bus_last_high;
81
/* Update V-bus values after V-bus read ($0000-$1FFF, $8000-$9FFF) */
82
inline static void REGPARM1 vic20_mem_v_bus_read(WORD addr)
84
vic20_v_bus_last_data = vic20_cpu_last_data;
85
vic20_v_bus_last_high = mem_ram[0x9400 + (addr & 0x3ff)];
88
/* Update V-bus values after V-bus write ($0000-$1FFF, $8000-$9FFF) */
89
/* TODO: same as vic20_mem_v_bus_read? */
90
inline static void REGPARM1 vic20_mem_v_bus_store(WORD addr)
92
vic20_v_bus_last_data = vic20_cpu_last_data;