mirror of
https://github.com/InvisibleUp/uvmac.git
synced 2024-06-02 05:41:30 +00:00
Fix some interrupt issues
This commit is contained in:
parent
2b61dcd4f5
commit
6941422033
|
@ -1553,8 +1553,6 @@ GLOBALPROC SetInterruptButton(bool v)
|
|||
}
|
||||
}
|
||||
|
||||
LOCALVAR uint8_t CurIPL = 0;
|
||||
|
||||
GLOBALPROC VIAorSCCinterruptChngNtfy(void)
|
||||
{
|
||||
uint8_t NewIPL;
|
||||
|
@ -1579,10 +1577,8 @@ GLOBALPROC VIAorSCCinterruptChngNtfy(void)
|
|||
| (SCCInterruptRequest << 1)
|
||||
| (InterruptButton << 2);
|
||||
}
|
||||
if (NewIPL != CurIPL) {
|
||||
CurIPL = NewIPL;
|
||||
m68k_set_irq(NewIPL);
|
||||
}
|
||||
|
||||
m68k_set_irq(NewIPL);
|
||||
}
|
||||
|
||||
GLOBALFUNC bool AddrSpac_Init(void)
|
||||
|
|
|
@ -110,7 +110,7 @@ GLOBALPROC DoKybd_ReceiveCommand(void)
|
|||
} else {
|
||||
uint8_t in = VIA_ShiftOutData_Ext(VIA1);
|
||||
|
||||
fprintf(stderr, "KybdStateRecievedCommand\n");
|
||||
//fprintf(stderr, "KybdStateRecievedCommand\n");
|
||||
KybdState = kKybdStateRecievedCommand;
|
||||
|
||||
switch (in) {
|
||||
|
@ -152,7 +152,7 @@ GLOBALPROC DoKybd_ReceiveEndCommand(void)
|
|||
"KybdState != kKybdStateRecievingEndCommand");
|
||||
} else {
|
||||
KybdState = kKybdStateIdle;
|
||||
fprintf(stderr, "KybdStateIdle\n");
|
||||
//fprintf(stderr, "KybdStateIdle\n");
|
||||
#ifdef _VIA_Debug
|
||||
fprintf(stderr, "enter DoKybd_ReceiveEndCommand\n");
|
||||
#endif
|
||||
|
@ -168,11 +168,11 @@ GLOBALPROC DoKybd_ReceiveEndCommand(void)
|
|||
|
||||
GLOBALPROC Kybd_DataLineChngNtfy(void)
|
||||
{
|
||||
fprintf(stderr, "Kybd_DataLineChngNtfy (%d)\n", Kybd_CheckDataReady());
|
||||
//fprintf(stderr, "Kybd_DataLineChngNtfy (%d)\n", Kybd_CheckDataReady());
|
||||
switch (KybdState) {
|
||||
case kKybdStateIdle:
|
||||
if (Kybd_CheckDataReady() == false) {
|
||||
fprintf(stderr, "KybdStateRecievingCommand\n");
|
||||
//fprintf(stderr, "KybdStateRecievingCommand\n");
|
||||
KybdState = kKybdStateRecievingCommand;
|
||||
#ifdef _VIA_Debug
|
||||
fprintf(stderr, "posting kICT_Kybd_ReceiveCommand\n");
|
||||
|
@ -188,7 +188,7 @@ GLOBALPROC Kybd_DataLineChngNtfy(void)
|
|||
case kKybdStateRecievedCommand:
|
||||
if (Kybd_CheckDataReady() == true) {
|
||||
KybdState = kKybdStateRecievingEndCommand;
|
||||
fprintf(stderr, "KybdStateRecievingEndCommand\n");
|
||||
//fprintf(stderr, "KybdStateRecievingEndCommand\n");
|
||||
#ifdef _VIA_Debug
|
||||
fprintf(stderr,
|
||||
"posting kICT_Kybd_ReceiveEndCommand\n");
|
||||
|
|
|
@ -302,9 +302,9 @@ void VIA_Write(uint8_t id, VIA_Register_t reg, uint8_t data, bool runISR)
|
|||
fprintf(stderr, "Set PB to "BIN_PAT"\n", TO_BIN(data));
|
||||
}*/
|
||||
//fprintf(stderr, "VIA%d Write %d <- %d\n", id+1, reg, data);
|
||||
if (reg == rSR) {
|
||||
/*if (reg == rSR) {
|
||||
fprintf(stderr, "vSR: %d, %d, %d\n", true, ((via->vACR & 0x1C) >> 2), data);
|
||||
}
|
||||
}*/
|
||||
|
||||
switch(reg) {
|
||||
case rIRB: via->vBufB = data; break;
|
||||
|
@ -402,9 +402,9 @@ uint8_t VIA_Read(uint8_t id, VIA_Register_t reg, bool runISR)
|
|||
assert(reg < rINVALID);
|
||||
VIA_State_t *via = &VIA_State[id];
|
||||
|
||||
if (reg == rSR) {
|
||||
/*if (reg == rSR) {
|
||||
fprintf(stderr, "vSR: %d, %d, %d\n", false, ((via->vACR & 0x1C) >> 2), via->vSR);
|
||||
}
|
||||
}*/
|
||||
|
||||
if (runISR) {
|
||||
if (reg == rIRA || reg == rORA) {
|
||||
|
@ -530,7 +530,7 @@ void VIA_ShiftInData_Ext(uint8_t id, uint8_t v)
|
|||
assert(id < VIA_MAXNUM);
|
||||
VIA_State_t *via = &VIA_State[id];
|
||||
uint8_t ShiftMode = (via->vACR & 0x1C) >> 2;
|
||||
fprintf(stderr, "vSR: %d, %d, %d (ext)\n", true, ShiftMode, v);
|
||||
//fprintf(stderr, "vSR: %d, %d, %d (ext)\n", true, ShiftMode, v);
|
||||
|
||||
assert ((ShiftMode & 0b100) == 0b000);
|
||||
|
||||
|
@ -548,7 +548,7 @@ uint8_t VIA_ShiftOutData_Ext(uint8_t id)
|
|||
VIA_State_t *via = &VIA_State[id];
|
||||
|
||||
uint8_t ShiftMode = (via->vACR & 0x1C) >> 2;
|
||||
fprintf(stderr, "vSR: %d, %d, %d (ext)\n", false, ShiftMode, VIA_State[id].vSR);
|
||||
//fprintf(stderr, "vSR: %d, %d, %d (ext)\n", false, ShiftMode, VIA_State[id].vSR);
|
||||
assert(((ShiftMode & 0b100) == 0b100) || (ShiftMode == 0));
|
||||
|
||||
VIA_RaiseInterrupt(id, 2, true);
|
||||
|
|
Loading…
Reference in New Issue
Block a user