During the byte-load cycle, the addresses are latched by the falling
edge of either CE or WE,whichever occurs last. The data are latched
by the rising edge of either CE or WE, whicheveroccurs first.
-*/
-/*
W49F002
#CS or #WE ¤¬¹ß¤ê¤¿¤È¤¤Ë address latch
#CS or #WE ¤¬¾å¤¬¤Ã¤¿¤È¤¤Ë data latch
+
+hongkong ·Ï¤Ï address ¤È /ROMCS ¤¬Æ±¤¸¥Ð¥¤¥È¤Ç¡¢ /CS À©¸æ¤Ë¤¹¤ë¤È
+hongkong ¥Ç¡¼¥¿Ç˲õ+¥¢¥É¥ì¥¹ÉÔ°ÂÄê¤Ë¤Ê¤ë¤Î¤Ç¡¢/WE À©¸æ¤Ë¤·¤Ê¤¤¤ÈÆ°¤«¤Ê¤¤¡£
*/
c = bit_clear(c, BITNUM_WRITEDATA_OUTPUT);
//CS down
#include "header.h"
#include "script.h"
-#define OP_PPU_WRITE_ENABLE (0)
/*
MAPPER num
MIRROR [HV]
}
break;
case SCRIPT_OPCODE_PPU_WRITE:{
- if(OP_PPU_WRITE_ENABLE==0){
+ if(DEBUG==0){
break;
}
const long address = s->value[0];
- const long data = s->value[1];
+ long data;
+ if(expression_calc(&s->expression, &data) == NG){
+ printf("%s expression calc error\n", LOGICAL_ERROR_PREFIX);
+ error += 1;
+ }
setting = DUMP;
if(!is_region_ppurom(address)){
logical_print_illgalarea(STR_REGION_PPU, address);
logical_print_byteerror(STR_REGION_PPU, data);
error += 1;
}
+ setting = DUMP;
}
break;
case SCRIPT_OPCODE_STEP_START:{
}
break;
case SCRIPT_OPCODE_PPU_WRITE:
- if(OP_PPU_WRITE_ENABLE == 1){
- d->ppu_write(s->value[0], s->value[1]);
+ if(DEBUG == 1){
+ long data;
+ expression_calc(&s->expression, &data);
+ d->ppu_write(s->value[0], data);
}
break;
case SCRIPT_OPCODE_STEP_START:
argc: 2, compare: SYNTAX_COMPARE_EQ,
argv_type: ARGV_TYPE_ADDRESS_LENGTH
},
-#if OP_PPU_WRITE_ENABLE==1
+#if DEBUG==1
{
name: "PPU_WRITE",
script_opcode: SCRIPT_OPCODE_PPU_WRITE,
permittion: PERMITTION_ROM_DUMP | PERMITTION_ROM_PROGRAM,
- argc: 2, compare: SYNTAX_COMPARE_EQ,
- argv_type: ARGV_TYPE_ADDRESS_LENGTH
+ argc: 2, compare: SYNTAX_COMPARE_GT,
+ argv_type: ARGV_TYPE_ADDRESS_EXPRESSION
},
#endif
#if 0