}
-int is_cycle_ce (void)
+bool is_cycle_ce(uaecptr addr)
{
- int hpos = current_hpos ();
- return cycle_line[hpos] & CYCLE_MASK;
+ addrbank *ab = get_mem_bank_real(addr);
+ if ((ab->flags & ABFLAG_CHIPRAM) || ab == &custom_bank) {
+ int hpos = current_hpos();
+ return (cycle_line[hpos] & CYCLE_MASK) != 0;
+ }
+ return 0;
}
#endif
if (isreg(curi->smode) || !using_ce) {
genastore_tas("src", curi->smode, "srcreg", curi->size, "src");
} else {
- out("if (!is_cycle_ce()) {\n");
+ out("if (!is_cycle_ce(srca)) {\n");
genastore("src", curi->smode, "srcreg", curi->size, "src");
out("} else {\n");
out("%s(4);\n", do_cycles);
if (isreg(curi->smode) || !using_ce) {
genastore_tas("src", curi->smode, "srcreg", curi->size, "src");
} else {
- out("if (!is_cycle_ce()) {\n");
+ out("if (!is_cycle_ce(srca)) {\n");
genastore("src", curi->smode, "srcreg", curi->size, "src");
out("} else {\n");
out("%s(4);\n", do_cycles);
extern void do_cycles_slow (unsigned long cycles_to_add);
extern void events_reset_syncline(void);
-extern int is_cycle_ce (void);
+extern bool is_cycle_ce(uaecptr);
extern unsigned long currcycle, nextevent;
extern int is_syncline, is_syncline_end;