Normal quotes
This commit is contained in:
parent
5e10794a24
commit
18011c595a
352 changed files with 6040 additions and 6040 deletions
22
30-01.md
22
30-01.md
|
|
@ -13,18 +13,18 @@ one—displayed above the other on the screen—is one of the more
|
|||
intriguing capabilities of the VGA and EGA. The split screen feature can
|
||||
be used for popups (including popups that slide smoothly onto the
|
||||
screen), or simply to display two separate portions of display memory on
|
||||
a single screen. While it’s possible to accomplish the same effects
|
||||
a single screen. While it's possible to accomplish the same effects
|
||||
purely in software without using the split screen, software solutions
|
||||
tend to be slow and hard to implement.
|
||||
|
||||
By contrast, the basic operation of the split screen is fairly simple,
|
||||
once you grasp the various coding tricks required to pull it off, and
|
||||
understand the limitations and pitfalls—like the fact that the EGA’s
|
||||
understand the limitations and pitfalls—like the fact that the EGA's
|
||||
split screen implementation is a little buggy. Furthermore, panning with
|
||||
the split screen enabled is not as simple as it might seem. All in all,
|
||||
we do have some ground to cover.
|
||||
|
||||
Let’s start with the basic operation of the split screen.
|
||||
Let's start with the basic operation of the split screen.
|
||||
|
||||
### How the Split Screen Works {#Heading3}
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ start address registers, and the whole process starts over.
|
|||
|
||||
The net effect: The contents of display memory starting at offset zero
|
||||
are displayed starting at the scan line following the specified split
|
||||
screen start scan line, as shown in Figure 30.1. It’s important to
|
||||
screen start scan line, as shown in Figure 30.1. It's important to
|
||||
understand that the scan line that matches the split screen scan line is
|
||||
*not* part of the split screen; the split screen starts on the
|
||||
*following* scan line. So, for example, if the split screen scan line is
|
||||
|
|
@ -62,7 +62,7 @@ at least one scan line short.
|
|||
**Figure 30.1** *Display memory and the split screen.*
|
||||
|
||||
So, where is the split screen start scan line stored? The answer varies
|
||||
a bit, depending on whether you’re talking about the EGA or the VGA. On
|
||||
a bit, depending on whether you're talking about the EGA or the VGA. On
|
||||
the EGA, the split screen start scan line is a 9-bit value, with bits
|
||||
7-0 stored in the Line Compare register (CRTC register 18H) and bit 8
|
||||
stored in bit 4 of the Overflow register (CRTC register 7). Other bits
|
||||
|
|
@ -81,9 +81,9 @@ Scan Line register (CRTC register 9).
|
|||
|
||||
Turning the split screen on involves nothing more than setting all bits
|
||||
of the split screen start scan line to the scan line after which you
|
||||
want the split screen to start appearing. (Of course, you’ll probably
|
||||
want the split screen to start appearing. (Of course, you'll probably
|
||||
want to change the start address before using the split screen;
|
||||
otherwise, you’ll just end up displaying the memory at offset zero
|
||||
otherwise, you'll just end up displaying the memory at offset zero
|
||||
*twice:* once in the normal screen and once in the split screen.)
|
||||
Turning off the split screen is a simple matter of setting the split
|
||||
screen start scan line to a value equal to or greater than the last scan
|
||||
|
|
@ -107,11 +107,11 @@ Listing 30.1 then slides the split screen up from the bottom of the
|
|||
screen, one scan line at a time. The split screen slides halfway up the
|
||||
screen, bounces down a quarter of the screen, advances another
|
||||
half-screen, drops another quarter-screen, and finally slides all the
|
||||
way up to the top. If you’ve never seen the split screen in action, you
|
||||
way up to the top. If you've never seen the split screen in action, you
|
||||
should run Listing 30.1; the smooth overlapping of the split screen on
|
||||
top of the normal display is a striking effect.
|
||||
|
||||
Listing 30.1 isn’t done just yet, however. After a keypress, Listing
|
||||
Listing 30.1 isn't done just yet, however. After a keypress, Listing
|
||||
30.1 demonstrates how to turn the split screen off (by setting all bits
|
||||
of the split screen start scan line to 1). After another keypress,
|
||||
Listing 30.1 shows that the split screen can never cover the whole
|
||||
|
|
@ -119,10 +119,10 @@ screen, by setting the start address to 0 and then flipping back and
|
|||
forth between the normal screen and the split screen with a split screen
|
||||
start scan line setting of zero. Both the normal screen and the split
|
||||
screen display the same text, but the split screen displays it one scan
|
||||
line lower, because the split screen doesn’t start until *after* the
|
||||
line lower, because the split screen doesn't start until *after* the
|
||||
first scan line, and that produces a jittering effect as the program
|
||||
switches the split screen on and off. (On the EGA, the split screen may
|
||||
display *two* scan lines lower, for reasons I’ll discuss shortly.)
|
||||
display *two* scan lines lower, for reasons I'll discuss shortly.)
|
||||
|
||||
------------------------ --------------------------------- --------------------
|
||||
[Previous](29-06.html) [Table of Contents](index.html) [Next](30-02.html)
|
||||
|
|
|
|||
Loading…
Reference in a new issue