Use backtick code blocks for syntax highlighting
This commit is contained in:
parent
8ed9dea394
commit
f658bfbb40
203 changed files with 26546 additions and 25801 deletions
54
45-04.md
54
45-04.md
|
|
@ -94,34 +94,36 @@ Listing 45.2, which provides mode set code for 640x400 mode.
|
|||
|
||||
**LISTING 45.2 L45-2.C**
|
||||
|
||||
/* Mode set routine for VGA 640x400 16-color mode. Tested with
|
||||
Borland C++ in C compilation mode. */
|
||||
```c
|
||||
/* Mode set routine for VGA 640x400 16-color mode. Tested with
|
||||
Borland C++ in C compilation mode. */
|
||||
|
||||
#include <dos.h>
|
||||
#include <dos.h>
|
||||
|
||||
void Set640x400()
|
||||
{
|
||||
union REGS regset;
|
||||
void Set640x400()
|
||||
{
|
||||
union REGS regset;
|
||||
|
||||
/* First, set to standard 640x350 mode (mode 10h) */
|
||||
regset.x.ax = 0x0010;
|
||||
int86(0x10, ®set, ®set);
|
||||
/* First, set to standard 640x350 mode (mode 10h) */
|
||||
regset.x.ax = 0x0010;
|
||||
int86(0x10, ®set, ®set);
|
||||
|
||||
/* Modify the sync polarity bits (bits 7 & 6) of the
|
||||
Miscellaneous Output register (readable at 0x3CC, writable at
|
||||
0x3C2) to select the 400-scan-line vertical scanning rate */
|
||||
outp(0x3C2, ((inp(0x3CC) & 0x3F) | 0x40));
|
||||
/* Modify the sync polarity bits (bits 7 & 6) of the
|
||||
Miscellaneous Output register (readable at 0x3CC, writable at
|
||||
0x3C2) to select the 400-scan-line vertical scanning rate */
|
||||
outp(0x3C2, ((inp(0x3CC) & 0x3F) | 0x40));
|
||||
|
||||
/* Now, tweak the registers needed to convert the vertical
|
||||
timings from 350 to 400 scan lines */
|
||||
outpw(0x3D4, 0x9C10); /* adjust the Vertical Sync Start register
|
||||
for 400 scan lines */
|
||||
outpw(0x3D4, 0x8E11); /* adjust the Vertical Sync End register
|
||||
for 400 scan lines */
|
||||
outpw(0x3D4, 0x8F12); /* adjust the Vertical Display End
|
||||
register for 400 scan lines */
|
||||
outpw(0x3D4, 0x9615); /* adjust the Vertical Blank Start
|
||||
register for 400 scan lines */
|
||||
outpw(0x3D4, 0xB916); /* adjust the Vertical Blank End register
|
||||
for 400 scan lines */
|
||||
}
|
||||
/* Now, tweak the registers needed to convert the vertical
|
||||
timings from 350 to 400 scan lines */
|
||||
outpw(0x3D4, 0x9C10); /* adjust the Vertical Sync Start register
|
||||
for 400 scan lines */
|
||||
outpw(0x3D4, 0x8E11); /* adjust the Vertical Sync End register
|
||||
for 400 scan lines */
|
||||
outpw(0x3D4, 0x8F12); /* adjust the Vertical Display End
|
||||
register for 400 scan lines */
|
||||
outpw(0x3D4, 0x9615); /* adjust the Vertical Blank Start
|
||||
register for 400 scan lines */
|
||||
outpw(0x3D4, 0xB916); /* adjust the Vertical Blank End register
|
||||
for 400 scan lines */
|
||||
}
|
||||
```
|
||||
Loading…
Reference in a new issue