Skip to content

Commit 337787a

Browse files
committed
Uploaded_7_22_2024
1 parent f479dd3 commit 337787a

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

MCL6809/Code/Hardware_Version/MCL6809/MCL6809.ino

+13-7
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,9 @@ uint32_t direct_nmi_n = 1;
155155
uint32_t direct_nmi_n_d1 = 1;
156156
uint32_t direct_nmi_n_d2 = 1;
157157
uint32_t direct_irq_n_d1 = 1;
158+
uint32_t direct_irq_n_d2 = 1;
158159
uint32_t direct_firq_n_d1 = 1;
160+
uint32_t direct_firq_n_d2 = 1;
159161
uint32_t direct_halt_n = 1;
160162
uint32_t direct_irq_n = 1;
161163
uint32_t direct_firq_n = 1;
@@ -317,8 +319,12 @@ inline void wait_for_CLK_falling_edge() {
317319

318320

319321
direct_nmi_n_d2 = direct_nmi_n_d1;
320-
direct_nmi_n_d1 = direct_nmi_n;
322+
direct_nmi_n_d1 = direct_nmi_n;
323+
324+
direct_irq_n_d2 = direct_irq_n_d1;
321325
direct_irq_n_d1 = direct_irq_n;
326+
327+
direct_firq_n_d2 = direct_firq_n_d1;
322328
direct_firq_n_d1 = direct_firq_n;
323329

324330
direct_reset_n = (GPIO9_raw_data&0x00000100); // Sample all signals at E falling edge
@@ -716,7 +722,7 @@ void opcode_0x13 () { VMA_Cycle(1,register_PC); // SYNC
716722
digitalWriteFast(PIN_DATA_OE_n,0x1);
717723
pinMode(PIN_RDWR_n, INPUT);
718724
VMA_Cycle(1,0xFFFF);
719-
while ( (direct_irq_n!=0) && (direct_firq_n!=0) && (direct_nmi_n!=0) ) wait_for_CLK_falling_edge();
725+
while ( (direct_irq_n_d2!=0) && (direct_firq_n_d2!=0) && (direct_nmi_n!=0) ) wait_for_CLK_falling_edge();
720726
digitalWriteFast(PIN_ADDR_OE_n,0x0);
721727
pinMode(PIN_RDWR_n, OUTPUT);
722728
VMA_Cycle(1,0xFFFF);
@@ -739,11 +745,11 @@ void opcode_0x3C () { // CWAI
739745
PushS8(register_A);
740746
PushS8(REGISTER_CC);
741747
VMA_Cycle(1,0xFFFF);
742-
while ( (direct_irq_n!=0) && (direct_firq_n!=0) && (direct_nmi_n!=0) ) wait_for_CLK_falling_edge();
748+
while ( (direct_irq_n_d2!=0) && (direct_firq_n_d2!=0) && (direct_nmi_n!=0) ) wait_for_CLK_falling_edge();
743749

744750
if (direct_nmi_n==0) register_PC = Read_Word(0xFFFC);
745-
else if (flag_f==0 && direct_firq_n==0) register_PC = Read_Word(0xFFF6);
746-
else if (flag_i==0 && direct_irq_n==0) register_PC = Read_Word(0xFFF8);
751+
else if (flag_f==0 && direct_firq_n_d2==0) register_PC = Read_Word(0xFFF6);
752+
else if (flag_i==0 && direct_irq_n_d2==0) register_PC = Read_Word(0xFFF8);
747753

748754
VMA_Cycle(1,0xFFFF);
749755
return;
@@ -1816,8 +1822,8 @@ void loop() {
18161822

18171823
if (direct_reset_n==0) { Reset_sequence(); }
18181824
else if (nmi_latched==1) { NMI_Handler(); }
1819-
else if (flag_f==0 && direct_firq_n_d1==0) { FIRQ_Handler(); }
1820-
else if (flag_i==0 && direct_irq_n_d1==0) { IRQ_Handler(); }
1825+
else if (flag_f==0 && direct_firq_n_d2==0) { FIRQ_Handler(); }
1826+
else if (flag_i==0 && direct_irq_n_d2==0) { IRQ_Handler(); }
18211827

18221828
}
18231829

0 commit comments

Comments
 (0)