diff --git a/src/ints/int10.cpp b/src/ints/int10.cpp index ad4811c8..a236e8e9 100644 --- a/src/ints/int10.cpp +++ b/src/ints/int10.cpp @@ -16,7 +16,6 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - #include #include "dosbox.h" #include "bios.h" @@ -54,14 +53,15 @@ static Bitu INT10_Handler(void) { LOG_WARN("INT10:04:Ligthpen not supported"); break; case 0x05: /* Set Active Page */ - INT10_SetActivePage(reg_al); + if (reg_al & 0x80) LOG_DEBUG("Func %x",reg_al); + else INT10_SetActivePage(reg_al); break; case 0x06: /* Scroll Up */ //TODO Graphics mode scroll - INT10_ScrollUpWindow(reg_ch,reg_cl,reg_dh,reg_dl,reg_al,reg_bh,0xFF); + INT10_ScrollWindow(reg_ch,reg_cl,reg_dh,reg_dl,-reg_al,reg_bh,0xFF); break; case 0x07: /* Scroll Down */ - INT10_ScrollDownWindow(reg_ch,reg_cl,reg_dh,reg_dl,reg_al,reg_bh,0xFF); + INT10_ScrollWindow(reg_ch,reg_cl,reg_dh,reg_dl,reg_al,reg_bh,0xFF); break; case 0x08: /* Read character & attribute at cursor */ //TODO Check for GRAPH and then just return @@ -260,7 +260,6 @@ static void INT10_InitVGA(void) { }; void INT10_StartUp(void) { - INT10_InitVGA(); /* Setup the INT 10 vector */ call_10=CALLBACK_Allocate(); diff --git a/src/ints/int10.h b/src/ints/int10.h index 5c27f537..41ae488c 100644 --- a/src/ints/int10.h +++ b/src/ints/int10.h @@ -102,11 +102,15 @@ #define PLANAR4 0x05 #define LINEAR8 0x06 -// for SVGA -#define LINEAR15 0x07 -#define LINEAR16 0x08 -#define LINEAR24 0x09 -#define LINEAR32 0x0 +// for Tandy + +#define TANDY16 0x0A + + +#define LINEAR15 0x10 +#define LINEAR16 0x11 +#define LINEAR24 0x12 +#define LINEAR32 0x13 #define SCREEN_SIZE(x,y) (((x*y*2)|0x00ff)+1) @@ -167,14 +171,11 @@ inline Bit8u CURSOR_POS_ROW(Bit8u page) { void INT10_SetVideoMode(Bit8u mode); -void INT10_ScrollUpWindow(Bit8u rul,Bit8u cul,Bit8u rlr,Bit8u clr,Bit8u nlines,Bit8u attr,Bit8u page); -void INT10_ScrollDownWindow(Bit8u rul,Bit8u cul,Bit8u rlr,Bit8u clr,Bit8u nlines,Bit8u attr,Bit8u page); - +void INT10_ScrollWindow(Bit8u rul,Bit8u cul,Bit8u rlr,Bit8u clr,Bit8s nlines,Bit8u attr,Bit8u page); void INT10_SetActivePage(Bit8u page); void INT10_GetFuncStateInformation(PhysPt save); - void INT10_SetCursorPos(Bit8u row,Bit8u col,Bit8u page); void INT10_TeletypeOutput(Bit8u chr,Bit8u attr,bool showattr, Bit8u page); void INT10_ReadCharAttr(Bit16u * result,Bit8u page);