static inline u8 data_port_get(long address, int bus)
{
address_set(address);
+ data_port_latch(DATA_SELECT_CONTROL, bus);
port_control_write(DATA_SELECT_BREAK_DATA << BITNUM_CONTROL_DATA_SELECT, PORT_CONTROL_WRITE);
int s = DATA_SELECT_READ << BITNUM_CONTROL_DATA_SELECT;
s = bit_set(s, BITNUM_CONTROL_DATA_LATCH);
{
//fc bus ½é´ü²½
data_port_latch(DATA_SELECT_CONTROL, BUS_CONTROL_CPU_READ);
- //A15 ¤òȿž¤·¡¢ /ROMCS ¤Ë¤·¤¿¤â¤Î¤òÅϤ¹
+ //A15 ¤òȿž¤·¡¢ /ROMCS ¤Ë¤·¤¿¤â¤Î¤òÅϤ¹
address ^= ADDRESS_MASK_A15;
while(length != 0){
*data = data_port_get(address, BUS_CONTROL_CPU_READ);
static void hk_ppu_read(long address, long length, u8 *data)
{
- data_port_latch(DATA_SELECT_CONTROL, BUS_CONTROL_PPU_READ);
+ //data_port_latch(DATA_SELECT_CONTROL, BUS_CONTROL_PPU_READ);
+ data_port_latch(DATA_SELECT_CONTROL, BUS_CONTROL_BUS_STANDBY);
address &= ADDRESS_MASK_A0toA12; //PPU charcter data area mask
address |= ADDRESS_MASK_A15; //CPU area disk
while(length != 0){
data++;
length--;
}
+ data_port_latch(DATA_SELECT_CONTROL, BUS_CONTROL_BUS_STANDBY);
}
static inline void cpu_romcs_set(long address)
}
//onajimi ¤À¤È /CS ¤È /OE ¤¬Æ±¤¸¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢hongkong¤À¤È»ß¤á¤é¤ì¤ë¡£½ñ¤¹þ¤ß»þ¤Ë output enable ¤Ï H ¤Ç¤¢¤ë¤Ù¤¡£
-#include <stdio.h>
static void hk_ppu_write(long address, long data)
{
int c = BUS_CONTROL_BUS_STANDBY;
c = bit_clear(c, BITNUM_CPU_M2); //¤¿¤Ö¤ó¤¤¤ë
+ //c = bit_clear(c, BITNUM_CPU_RW);
data_port_latch(DATA_SELECT_CONTROL, c);
//cpu rom ¤ò»ß¤á¤¿¥¢¥É¥ì¥¹¤òÅϤ¹
address_set((address & ADDRESS_MASK_A0toA12) | ADDRESS_MASK_A15);