Move irq 2/9 to a different location.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2635
This commit is contained in:
parent
1f016f7801
commit
796af47e74
2 changed files with 19 additions and 28 deletions
|
@ -16,7 +16,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: pic.cpp,v 1.34 2006-03-12 21:14:45 qbix79 Exp $ */
|
||||
/* $Id: pic.cpp,v 1.35 2006-05-23 10:30:02 qbix79 Exp $ */
|
||||
|
||||
#include <list>
|
||||
|
||||
|
@ -452,20 +452,6 @@ bool PIC_RunQueue(void) {
|
|||
return true;
|
||||
}
|
||||
|
||||
//Irq 9-2 calling code
|
||||
static Bitu INT71_Handler() {
|
||||
IO_Write(0xa0,0x61);
|
||||
CALLBACK_RunRealInt(0xa);
|
||||
return CBRET_NONE;
|
||||
}
|
||||
|
||||
static Bitu INT0A_Handler() {
|
||||
IO_Write(0x20,0x62);
|
||||
return CBRET_NONE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* The TIMER Part */
|
||||
struct TickerBlock {
|
||||
TIMER_TickHandler handler;
|
||||
|
@ -522,7 +508,6 @@ class PIC:public Module_base{
|
|||
private:
|
||||
IO_ReadHandleObject ReadHandler[4];
|
||||
IO_WriteHandleObject WriteHandler[4];
|
||||
CALLBACK_HandlerObject callback[2];
|
||||
public:
|
||||
PIC(Section* configuration):Module_base(configuration){
|
||||
/* Setup pic0 and pic1 with initial values like DOS has normally */
|
||||
|
@ -575,12 +560,6 @@ public:
|
|||
pic.entries[PIC_QUEUESIZE-1].next=0;
|
||||
pic.free_entry=&pic.entries[0];
|
||||
pic.next_entry=0;
|
||||
/* Irq 9 and 2 thingie
|
||||
* Should be done by bios but then it overwrites the mpu handler */
|
||||
callback[0].Install(&INT71_Handler,CB_IRET,"irq 9 bios");
|
||||
callback[0].Set_RealVec(0x71);
|
||||
callback[1].Install(&INT0A_Handler,CB_IRET,"irq 2 bios");
|
||||
callback[1].Set_RealVec(0xA);
|
||||
}
|
||||
~PIC(){
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: bios.cpp,v 1.59 2006-05-22 15:46:13 qbix79 Exp $ */
|
||||
/* $Id: bios.cpp,v 1.60 2006-05-23 10:30:02 qbix79 Exp $ */
|
||||
|
||||
#include "dosbox.h"
|
||||
#include "mem.h"
|
||||
|
@ -61,6 +61,12 @@ static Bitu INT70_Handler(void) {
|
|||
IO_Write(0x20,0x20);
|
||||
return 0;
|
||||
}
|
||||
// Irq 9 calls irq 2
|
||||
static Bitu INT71_Handler() {
|
||||
IO_Write(0xa0,0x61);
|
||||
CALLBACK_RunRealInt(0xa);
|
||||
return CBRET_NONE;
|
||||
}
|
||||
|
||||
CALLBACK_HandlerObject* tandy_DAC_callback;
|
||||
static struct {
|
||||
|
@ -813,7 +819,7 @@ void BIOS_SetupDisks(void);
|
|||
|
||||
class BIOS:public Module_base{
|
||||
private:
|
||||
CALLBACK_HandlerObject callback[9];
|
||||
CALLBACK_HandlerObject callback[10];
|
||||
public:
|
||||
BIOS(Section* configuration):Module_base(configuration){
|
||||
/* tandy DAC can be requested in tandy_sound.cpp by initializing this field */
|
||||
|
@ -874,6 +880,16 @@ public:
|
|||
callback[8].Install(&INT70_Handler,CB_IRET,"Int 70 RTC");
|
||||
callback[8].Set_RealVec(0x70);
|
||||
|
||||
/* Irq 9 routed to irq 2 (which is an iret at f000:ff53) */
|
||||
callback[9].Install(&INT71_Handler,CB_IRET,"irq 9 bios");
|
||||
callback[9].Set_RealVec(0x71);
|
||||
|
||||
/* Some hardcoded vectors */
|
||||
phys_writeb(0xfff53,0xcf); /* bios default interrupt vector location */
|
||||
phys_writeb(0xfe987,0xea); /* original IRQ1 location (Defender booter) */
|
||||
phys_writed(0xfe988,RealGetVec(0x09));
|
||||
RealSetVec(0xA,0xf000ff53); /* Ghost busters 2 mt32 mode */
|
||||
|
||||
if (machine==MCH_TANDY) phys_writeb(0xffffe,0xff) ; /* Tandy model */
|
||||
else if (machine==MCH_PCJR) phys_writeb(0xffffe,0xfd); /* PCJr model */
|
||||
else phys_writeb(0xffffe,0xfc); /* PC */
|
||||
|
@ -980,10 +996,6 @@ public:
|
|||
IO_Write(0x70,0x31);
|
||||
size_extended|=(IO_Read(0x71) << 8);
|
||||
|
||||
phys_writeb(0xfff53,0xcf); /* bios default interrupt vector location */
|
||||
phys_writeb(0xfe987,0xea); /* original IRQ1 location (Defender booter) */
|
||||
phys_writed(0xfe988,RealGetVec(0x09));
|
||||
|
||||
if (machine==MCH_PCJR) PIC_AddEvent(RAMRefresh_Event,RAM_REFRESH_DELAY);
|
||||
}
|
||||
~BIOS(){
|
||||
|
|
Loading…
Add table
Reference in a new issue