From a3779392cdbc0c4483c06f0899799b826209adbf Mon Sep 17 00:00:00 2001 From: dborth Date: Tue, 30 Jun 2009 05:03:37 +0000 Subject: [PATCH] sync to dosbox svn --- include/bios.h | 6 ++++++ include/callback.h | 31 ++++++++++++++++++++----------- include/hardware.h | 5 +++++ include/vga.h | 5 +++-- 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/include/bios.h b/include/bios.h index a31e13c..4b5aa93 100644 --- a/include/bios.h +++ b/include/bios.h @@ -101,6 +101,12 @@ #define BIOS_VIDEO_SAVEPTR 0x4a8 + +#define BIOS_DEFAULT_HANDLER_LOCATION (RealMake(0xf000,0xff53)) +#define BIOS_DEFAULT_IRQ0_LOCATION (RealMake(0xf000,0xfea5)) +#define BIOS_DEFAULT_IRQ1_LOCATION (RealMake(0xf000,0xe987)) +#define BIOS_DEFAULT_IRQ2_LOCATION (RealMake(0xf000,0xff55)) + /* maximum of scancodes handled by keyboard bios routines */ #define MAX_SCAN_CODE 0x58 diff --git a/include/callback.h b/include/callback.h index 47e5c41..5ee1a27 100644 --- a/include/callback.h +++ b/include/callback.h @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: callback.h,v 1.24 2009/05/27 09:15:40 qbix79 Exp $ */ +/* $Id: callback.h,v 1.25 2009/06/11 16:05:17 c2woody Exp $ */ #ifndef DOSBOX_CALLBACK_H #define DOSBOX_CALLBACK_H @@ -33,9 +33,10 @@ enum { CB_RETN,CB_RETF,CB_RETF8,CB_IRET,CB_IRETD,CB_IRET_STI,CB_IRET_EOI_PIC1, CB_INT29,CB_INT16,CB_HOOKABLE,CB_TDE_IRET,CB_IPXESR,CB_IPXESR_RET, CB_INT21 }; -#define CB_MAX 128 -#define CB_SIZE 32 -#define CB_SEG 0xF100 +#define CB_MAX 128 +#define CB_SIZE 32 +#define CB_SEG 0xF000 +#define CB_SOFFSET 0x1000 enum { CBRET_NONE=0,CBRET_STOP=1 @@ -44,14 +45,14 @@ enum { extern Bit8u lastint; static INLINE RealPt CALLBACK_RealPointer(Bitu callback) { - return RealMake(CB_SEG,(Bit16u)(callback*CB_SIZE)); + return RealMake(CB_SEG,(Bit16u)(CB_SOFFSET+callback*CB_SIZE)); } static INLINE PhysPt CALLBACK_PhysPointer(Bitu callback) { - return PhysMake(CB_SEG,(Bit16u)(callback*CB_SIZE)); + return PhysMake(CB_SEG,(Bit16u)(CB_SOFFSET+callback*CB_SIZE)); } static INLINE PhysPt CALLBACK_GetBase(void) { - return CB_SEG << 4; + return (CB_SEG << 4) + CB_SOFFSET; } Bitu CALLBACK_Allocate(); @@ -77,7 +78,7 @@ extern Bitu call_priv_io; class CALLBACK_HandlerObject{ private: bool installed; - Bit16u m_callback; + Bitu m_callback; enum {NONE,SETUP,SETUPAT} m_type; struct { RealPt old_vector; @@ -85,15 +86,23 @@ private: bool installed; } vectorhandler; public: - CALLBACK_HandlerObject():installed(false),m_type(NONE){vectorhandler.installed=false;} + CALLBACK_HandlerObject():installed(false),m_type(NONE) { + vectorhandler.installed=false; + } ~CALLBACK_HandlerObject(); + //Install and allocate a callback. void Install(CallBack_Handler handler,Bitu type,const char* description); void Install(CallBack_Handler handler,Bitu type,PhysPt addr,const char* description); + //Only allocate a callback number void Allocate(CallBack_Handler handler,const char* description=0); - Bit16u Get_callback(){return m_callback;} - RealPt Get_RealPointer(){ return CALLBACK_RealPointer(m_callback);} + Bit16u Get_callback() { + return (Bit16u)m_callback; + } + RealPt Get_RealPointer() { + return CALLBACK_RealPointer(m_callback); + } void Set_RealVec(Bit8u vec); }; #endif diff --git a/include/hardware.h b/include/hardware.h index cc4a370..482cb7e 100644 --- a/include/hardware.h +++ b/include/hardware.h @@ -16,6 +16,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* $Id: hardware.h,v 1.17 2009/06/23 17:46:05 c2woody Exp $ */ + #ifndef DOSBOX_HARDWARE_H #define DOSBOX_HARDWARE_H @@ -38,6 +40,9 @@ void CMS_Init(Section* sec); void OPL_ShutDown(Section* sec); void CMS_ShutDown(Section* sec); +bool SB_Get_Address(Bitu& sbaddr, Bitu& sbirq, Bitu& sbdma); +bool TS_Get_Address(Bitu& tsaddr, Bitu& tsirq, Bitu& tsdma); + extern Bit8u adlib_commandreg; FILE * OpenCaptureFile(const char * type,const char * ext); diff --git a/include/vga.h b/include/vga.h index 0992688..db51da4 100644 --- a/include/vga.h +++ b/include/vga.h @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: vga.h,v 1.46 2009/03/15 11:28:34 c2woody Exp $ */ +/* $Id: vga.h,v 1.47 2009/06/29 18:43:33 c2woody Exp $ */ #ifndef DOSBOX_VGA_H #define DOSBOX_VGA_H @@ -222,7 +222,8 @@ typedef struct { Bit8u vsyncp; Bit8u vsyncw; Bit8u max_scanline; - Bit8u lpen_low, lpen_high; + Bit16u lightpen; + bool lightpen_triggered; Bit8u cursor_start; Bit8u cursor_end; } VGA_OTHER;