Check if cycles need to be lowered when adding new irqs/events
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1214
This commit is contained in:
parent
a67453b78e
commit
3a869f20de
1 changed files with 10 additions and 9 deletions
|
@ -244,29 +244,30 @@ static void AddEntry(PICEntry * entry) {
|
|||
if (!find_entry) {
|
||||
entry->next=0;
|
||||
pic.next_entry=entry;
|
||||
return;
|
||||
}
|
||||
if (find_entry->index>entry->index) {
|
||||
} else if (find_entry->index>entry->index) {
|
||||
pic.next_entry=entry;
|
||||
entry->next=find_entry;
|
||||
return;
|
||||
}
|
||||
while (find_entry) {
|
||||
} else while (find_entry) {
|
||||
if (find_entry->next) {
|
||||
/* See if the next index comes later than this one */
|
||||
if (find_entry->next->index>entry->index) {
|
||||
if (find_entry->next->index > entry->index) {
|
||||
entry->next=find_entry->next;
|
||||
find_entry->next=entry;
|
||||
return;
|
||||
break;
|
||||
} else {
|
||||
find_entry=find_entry->next;
|
||||
}
|
||||
} else {
|
||||
entry->next=find_entry->next;
|
||||
find_entry->next=entry;
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Bits cycles=PIC_MakeCycles(pic.next_entry->index-PIC_Index());
|
||||
if (cycles<CPU_Cycles) {
|
||||
CPU_CycleLeft+=CPU_Cycles;
|
||||
CPU_Cycles=0;
|
||||
}
|
||||
}
|
||||
|
||||
void PIC_AddEvent(PIC_EventHandler handler,Bitu delay) {
|
||||
|
|
Loading…
Add table
Reference in a new issue