From ec580d81b7cf8de186c859b0d5f655aaa7f8a118 Mon Sep 17 00:00:00 2001 From: nickysn Date: Wed, 23 Jan 2019 12:20:54 +0000 Subject: [PATCH] * factored out the repeating code for setting a BIOS graphics mode into a common procedure InitInt10hMode git-svn-id: trunk@41012 - --- packages/graph/src/msdos/graph.pp | 63 ++++++++++--------------------- 1 file changed, 19 insertions(+), 44 deletions(-) diff --git a/packages/graph/src/msdos/graph.pp b/packages/graph/src/msdos/graph.pp index a014ad2e07..620e41d5ed 100644 --- a/packages/graph/src/msdos/graph.pp +++ b/packages/graph/src/msdos/graph.pp @@ -173,6 +173,14 @@ const pop ds end; + Procedure InitInt10hMode(mode : byte); + begin + if DontClearGraphMemory then + CallInt10(mode or $80) + else + CallInt10(mode); + end; + {************************************************************************} {* 720x348x2 Hercules mode routines *} {************************************************************************} @@ -588,10 +596,7 @@ end; procedure InitCGA320C0; begin - if DontClearGraphMemory then - CallInt10($84) - else - CallInt10($04); + InitInt10hMode($04); VideoOfs := 0; SetCGAPalette(0); SetCGABorder(16); @@ -600,10 +605,7 @@ end; procedure InitCGA320C1; begin - if DontClearGraphMemory then - CallInt10($84) - else - CallInt10($04); + InitInt10hMode($04); VideoOfs := 0; SetCGAPalette(1); SetCGABorder(16); @@ -612,10 +614,7 @@ end; procedure InitCGA320C2; begin - if DontClearGraphMemory then - CallInt10($84) - else - CallInt10($04); + InitInt10hMode($04); VideoOfs := 0; SetCGAPalette(2); SetCGABorder(0); @@ -624,10 +623,7 @@ end; procedure InitCGA320C3; begin - if DontClearGraphMemory then - CallInt10($84) - else - CallInt10($04); + InitInt10hMode($04); VideoOfs := 0; SetCGAPalette(3); SetCGABorder(0); @@ -920,10 +916,7 @@ end; procedure InitCGA640; begin - if DontClearGraphMemory then - CallInt10($86) - else - CallInt10($06); + InitInt10hMode($06); VideoOfs := 0; CurrentCGABorder := 0; {yes, TP7 CGA.BGI behaves *exactly* like that} end; @@ -1231,10 +1224,7 @@ end; procedure InitMCGA640; begin - if DontClearGraphMemory then - CallInt10($91) - else - CallInt10($11); + InitInt10hMode($11); VideoOfs := 0; CurrentCGABorder := 0; {yes, TP7 CGA.BGI behaves *exactly* like that} end; @@ -1530,20 +1520,14 @@ end; Procedure Init640x200x16; begin - if DontClearGraphMemory then - CallInt10($8e) - else - CallInt10($e); + InitInt10hMode($e); VideoOfs := 0; end; Procedure Init640x350x16; begin - if DontClearGraphMemory then - CallInt10($90) - else - CallInt10($10); + InitInt10hMode($10); VideoOfs := 0; end; @@ -1551,10 +1535,7 @@ end; Procedure Init640x480x16; begin - if DontClearGraphMemory then - CallInt10($92) - else - CallInt10($12); + InitInt10hMode($12); VideoOfs := 0; end; @@ -2194,10 +2175,7 @@ End; Procedure Init320; begin - if DontClearGraphMemory then - CallInt10($93) - else - CallInt10($13); + InitInt10hMode($13); end; @@ -2380,10 +2358,7 @@ const CrtAddress: word = 0; else CrtAddress := $3B4; { monochrome } - if DontClearGraphMemory then - CallInt10($93) - else - CallInt10($13); + InitInt10hMode($13); Port[$3C4] := $04; {select memory-mode-register at sequencer port } { bit 3 := 0: don't chain the 4 planes }