home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 8 / 08.iso / d / d026 / 22.ddi / README.TXT < prev    next >
Encoding:
Text File  |  1992-03-18  |  31.1 KB  |  648 lines

  1. ********README.TXT for the Windows 3.1 Device Development Kit************
  2.  
  3. This file contains two sections:
  4.  
  5. Section A: Specific Information/workarounds to help build the
  6.        drivers provided with the Windows 3.1 DDK.
  7. Section B: A Description of the Device Driver Sources Provided.
  8.  
  9.  
  10. ****SECTION A: Specific Information/Workarounds To Build Drivers*********
  11.  
  12. If WINDEV Directory Already Exists
  13. **********************************
  14. If you already have a WINDEV directory installed on your disk prior to
  15. installing the DDK, we strongly recommend you use a different directory
  16. to install the TOOLS, LIB and INCLUDE files provided with the DDK.
  17.  
  18. Running Out Of Memory
  19. *********************
  20. Because it can be very easy to run out of conventional memory when building
  21. device drivers and virtual devices when using the NMAKE utility, we are
  22. also providing the XMSMAKE utility which will additionally use extended
  23. memory.  If you are encountering strange errors, you may be running out
  24. of memory and we recommend trying XMSMAKE which is located in the \TOOLS
  25. directory of the Device Drivers Samples & Tools Disks.
  26.  
  27. Building 386 Grabbers
  28. *********************
  29. You MUST use the LINK.EXE in the \TOOLS directory of the Device Driver Samples
  30. and Tools Disk Set when building the 386 Grabbers.
  31.  
  32. Binary Compare of the PSCRIPT.DRV, SNDBLST2.DRV, and MCIPIONR.DRV Files
  33. ***********************************************************************
  34. If you build either the PSCRIPT.DRV, SNDBLST2.DRV or MCIPIONR.DRV drivers, your
  35. built driver may not exactly binary compare with the corresponding drivers
  36. provided in the Windows 3.1 retail product.  The few differences noted are due
  37. to different build environments used, machine and memory configurations, etc.
  38. The driver you build will function identically to that provided in the retail
  39. product.
  40.  
  41. Building  VDDVGA.386,VDD8514.386 Virtual Devices
  42. ************************************************
  43. When executing the Makefiles MAKEVGA and MAKE8514, please note that the
  44. created object files for both share the same object filename.  So if you
  45. first create the VDDVGA.386 virtual device and then proceed to create the
  46. VDD8514.386 device you must be sure to first delete all filenames with
  47. the *.obj file extension.
  48.  
  49. Nmake Version
  50. *************
  51. If you want to build a driver that binary compares to the driver in the retail
  52. version, you need to be sure to use the NMAKE.EXE tool provided in the \TOOLS
  53. directory on the Device Driver Samples & Tools disk set.  If you use the one
  54. provided with the C 6 Compiler, the driver may not binary compare but should
  55. function identically.
  56.  
  57. ****SECTION B: Description of Device Driver Sources**********************
  58.  
  59. Below are descriptions of device driver sources contained in the DDK.  The
  60. information includes where you can find the code on the diskettes, the
  61. procedure for building the driver and the features the code demonstrates.
  62.  
  63. NOTE: We recommend that you print out the text file "LAYOUTS.TXT" located
  64. in the root directory of the Device Driver Samples and Tools Disk#1 for a
  65. listing of the source directories and disk locations for the Samples and
  66. Tools Disk Sets.
  67.  
  68. The sources are setup in sub-directories on the enclosed diskettes.  You
  69. should use the DOS COPY or XCOPY command to copy all files and related
  70. sub-directories to your hard disk.  It is important that you maintain the
  71. structure as provided on the diskettes for the accompanying MAKE and batch
  72. files to work properly.  Also be sure to expand the compressed files to
  73. their normal size after copying them to your hard disk.
  74.  
  75. Display Driver Sources
  76. **********************
  77. We are providing 1, 4 and 8 plane display driver sources in the DDK.  You
  78. will find all the 1 plane driver sources on the Device Driver Samples and
  79. Tools Disk Sets  under \DISPLAY\1PLANE.  The 4 plane sources are  under
  80. \DISPLAY\4PLANE.  The 8 plane sources are under \DISPLAY\8PLANE.
  81.  
  82. 1 Plane Drivers - CGA, EGA mono, EGA high res B&W, Hercules, Plasma, and MCGA
  83. *****************************************************************************
  84. All of these drivers are 1 plane drivers.  These drivers run Bi-Modal (in Real
  85. and Protected memory modes), support Device Independent Bitmaps (DIB), and
  86. greater than 64K fonts. They are located on the Device Driver Samples and
  87. Tools Disk Sets under \DISPLAY\1PLANE.
  88.  
  89. These drivers share common code in many areas.    Thus, the directory structures
  90. should be copied in their entirety to your hard disk.  We suggest you use the
  91. MS-DOS XCOPY command to do this.
  92.  
  93. You need to change directory to the appropriate sub-directory for the driver
  94. you wish to build.  Each driver directory has a Makefile to build the driver.
  95. You will find the Makefile for each driver under:
  96.  
  97.     \DISPLAY\1PLANE\BW\CGAHERC\CGA\        for CGA
  98.     \DISPLAY\1PLANE\BW\CGAHERC\PLASMA\     for Compaq Plasma
  99.     \DISPLAY\1PLANE\BW\CGAHERC\HERCULES\     for Hercules monochrome
  100.     \DISPLAY\1PLANE\BW\EGA\EGAHIBW\        for EGA hi res black/white
  101.     \DISPLAY\1PLANE\BW\EGA\EGAMONO\        for EGA monochrome
  102.     \DISPLAY\1PLANE\BW\EGA\VGAMONO\        for MCGA
  103.  
  104. To build the driver, use the NMAKE utility provided with Microsoft C 6.
  105. If your display device is based on the 1 plane CGA, EGA, or Hercules standard,
  106. you should base your driver code on one of these drivers.  Otherwise, these
  107. sources should provide you with the sample code necessary for you to design
  108. and plan for a new driver.
  109.  
  110.  
  111. 4 Plane Drivers - EGA, VGA, and Super VGA
  112. ******************************************
  113. The EGA, VGA, and Super VGA driver sources utilize all 4 planes to support 16
  114. colors.  The Super VGA display driver is new for Windows 3.1.  It is nearly
  115. identical to the VGA sources, but determines an appropriate extended resolution
  116. mode number from the WIN.INI file.
  117.  
  118. These drivers run Bi-Modal (in Real and Protected memory modes), support Device 
  119. Independent Bitmaps (DIB), and greater than 64K fonts.     The  EGA, VGA, and
  120. Super VGA driver sources utilize all 4 planes to support 16 colors.  All three
  121. drivers demonstrate a new feature of Windows 3.1, "Mouse Blur" that leaves
  122. "mouse trails" on the screen to improve cursor visibility on LCD screens.
  123.  
  124. These drivers share common code in many areas.  Thus, all the files in the 
  125. \DISPLAY\4PLANE directory structure found on the Device Driver Samples and
  126. Tools should be copied in their entirety to your hard disk.  We suggest you
  127. use the MS-DOS XCOPY command to do this.  Be sure to expand the compressed
  128. files to their original size before using them.
  129.  
  130. You need to change directory to the appropriate sub-directory for either
  131. the EGA, VGA, or Super VGA driver and execute the MakeFile using the NMAKE
  132. utility.  You will find a makefile file for each driver under:
  133.  
  134.     \DISPLAY\4PLANE\EGA\        for EGA hi res color
  135.     \DISPLAY\4PLANE\SVGA\        for Super VGA
  136.     \DISPLAY\4PLANE\VGA\        for  VGA
  137.  
  138. If your display device is based on the 4 plane EGA or VGA standard, you
  139. should base your driver code on either of these drivers.  Otherwise, these
  140. sources should provide you with the sample code necessary for you to design
  141. and plan for a new driver.
  142.  
  143. 4 Plane Drivers - Pen-Capable VGA
  144. *********************************
  145. To build Pen-Capable VGA display drivers, set the MS-DOS environment
  146. variable PENWIN=1, delete all object files, and rebuild.  Note that this
  147. procedure is documented in the VGA driver makefile.
  148.  
  149. 8 Plane Driver - Video Seven VRAM, VGA, 8514/a
  150. **********************************************
  151. We have provided you sources to the Video Seven VRAM/FastWrite VGA and 8514/a  
  152. drivers.  These drivers use all 8 planes available on the card for 256 color
  153. support.  The code provides a good example of the use of the Palette Manager
  154. and Device Independent Bitmaps (DIB).  This driver is adapted to run Bi-Modal
  155. and supports >64K fonts.  This driver source can also be used as an example of
  156. how a packed pixel driver is implemented under Windows.
  157.  
  158. The 8514/s driver provides a sample of how to support the TrueType font
  159. technology with a display adapter that does its own font caching.  In addition,
  160. this driver provides an example of Windows 3.1's multiple-resolution driver
  161. feature, which allows a single driver executable to support more than one
  162. screen resolution, or supply a variety of resolution-dependent resources
  163. (e.g.. small or large fonts).
  164.  
  165. To demonstrate the use of DIBs and the Palette Manager in these  drivers, you
  166. can run the sample application, SHOWDIB, provided in the SDK.
  167.  
  168. You will find these sources on the Device Driver Samples and Tools Disk Set
  169. under the directory \8PLANE.  You need to copy the entire directory structure
  170. to your hard disk.  Use the MS-DOS XCOPY command to do this.   Be sure to
  171. expand the compressed files to their original size before using them.
  172.  
  173. Note, the 8PLANE directory contains an empty sub-directory called DEBUG.
  174. You must have this directory available when you build the driver, otherwise
  175. the MAKE files will fail.
  176.  
  177. To build the drivers, you need to run the batch file:
  178.     
  179.     \DISPLAY\8PLANE\V7VGA\        for Video 7 VRAM VGA
  180. (NOTE:  This builds the driver file V731VGA.DRV.  This driver is renamed to V7VGA.DRV in Windows 3.1)
  181.     \DISPLAY\8PLANE\8514\SOURCE    for 8514/a
  182.  
  183. NOTE: Be sure to use the /E parameter when XCOPYING  the 8514 sources to your disk.
  184. The makefile is expecting to have the empty subdirectory \DISPLAY\8PLANE\8514\SOURCE\OBJ
  185. and will generate an error if this subdirectory is not present.
  186.  
  187. Windows Real and Standard Mode Grabbers
  188. ***************************************
  189. The Windows real and standard mode grabbers are on the Device Driver Samples
  190. and Tools under \GRABBERS.  Since much of the grabber code for different displays
  191. are common, you should copy the GRABBERS sub-directory in its entirety to your
  192. hard disk.  Be sure to expand the compressed files to their original size before
  193. using them.  The individual grabbers are in the following directories:
  194.  
  195.     \DISPLAY\GRABBERS\CGAHERC\CGA
  196.     \DISPLAY\GRABBERS\CGAHERC\HERCULES
  197.     \DISPLAY\GRABBERS\EGA\EGACOLOR
  198.     \DISPLAY\GRABBERS\EGA\EGAMONO
  199.     \DISPLAY\GRABBERS\VGA\VGACOLOR
  200.     \DISPLAY\GRABBERS\VGA\VGAMONO
  201.  
  202. You should run the NMAKE utility with the Makefiles provided in each of these
  203. directories to build the appropriate grabber.
  204.  
  205. System Font Sources
  206. *******************
  207. We have provided the Windows 3.1 proportional system font and the Windows 2.0
  208. fixed pitch system font.  If your display driver supports resolutions other
  209. than the display resolutions provided in Windows, you may need to modify the
  210. system fonts for your display.
  211.  
  212. You will need to copy the \FONTS directory to your hard disk in its entirety.
  213. Use the MS-DOS XCOPY command to do this.  You will find this directory on the
  214. Device Driver Samples and Tools.
  215.  
  216. The 3.x proportional system fonts are hand tuned for the screen and match the
  217. Adobe font widths for their Helvetica font.  If you need to adapt the system
  218. font for a display with a different horizontal resolution than the ones
  219. supported by these fonts, you need to adjust the font widths accordingly.
  220. This will ensure the character will best "copy fit" the printed character
  221. with those on the screen.
  222.  
  223. You can modify these files with the Font Editor tool provided with the SDK.
  224.  
  225. Before you will be able to build any fonts, you must make the FONTS.OBJ file.
  226. You do this by running:
  227.  
  228.     MASM FONTS;
  229.  
  230. from the \FONTS directory.  You only need to do this once.
  231.  
  232. To build the proportional system font files, execute the Makefile by using NMAKE
  233. from the \FONTS\SYSTEM directory:
  234.  
  235. The font file names for the new proportional system fonts are:
  236.  
  237.     CGASYS.FON            for (640 x 200) CGA resolution
  238.     EGASYS.FON            for (640 x 350) EGA high resolution
  239.     VGASYS.FON            for (640 x 480) VGA resolution
  240.     8514SYS.FON            for (1024 x 768) 8514/a resolution
  241.  
  242. In addition to the 3.x system font, the Windows 2.0 fixed pitch system font
  243. is necessary for older Windows applications running under Windows 3.0 and 3.1.
  244. All Windows applications which are not "marked" to run with the new proportional
  245. font, or which were not developed as a Windows 3.x application, will be given
  246. the fixed pitch font for displaying text in dialog and message boxes, and the
  247. client area. Windows 3.x supports both of these files, so it may be necessary
  248. for you to also modify the appropriate fixed pitch font.
  249.  
  250. You will find these fonts in the \FONTS\FIXED directory.  The Makefile is
  251. executed from this directory by running NMAKE.
  252.  
  253. The font file names for the 2.0 fixed pitch system fonts are:
  254.     CGAFIX.FON        for (640 x 200) CGA resolution
  255.     EGAFIX.FON        for (640 x 350) EGA high resolution
  256.     VGAFIX.FON        for (640 x 480) VGA resolution (square pixels)
  257.     8514FIX.FON        for (1024 x 768) 8514/a resolution (square pixels)
  258.     8514OEM.FON        Uses the OEM Character Set
  259.     CGAOEM.FON        Uses the OEM Character Set
  260.     EGAOEM.FON        Uses the OEM Character Set
  261.     VGAOEM.FON        Uses the OEM Character Set
  262.     VGA850.FON        Uses Code Page 850
  263.     VGA860.FON        Uses Code Page 860
  264.     VGA861.FON        Uses Code Page 861
  265.     VGA863.FON        Uses Code Page 863
  266.     VGA865.FON        Uses Code Page 865
  267.  
  268. Printer Driver Sources
  269. **********************
  270. We are providing driver sources for our PCL5/HP LaserJet III and
  271. Postscript printer drivers.  In additional, sample sources for
  272. dot-matrix black/white and color raster printers are also included.
  273.  
  274. Building "Minidriver" Printer Drivers
  275. *************************************
  276. In order to build the printer drivers created by UNITOOL.EXE
  277. from the Minidriver disk, make sure to install the include &
  278. library files into the first directory on your LIB and INCLUDE MS-DOS
  279. environment variables.
  280.  
  281. PCL5/HP LaserJet III Printer driver
  282. ***********************************
  283. The PCL5/HP LaserJet III driver sources are being provided as an
  284. example of how to support the dynamic downloading of TrueType fonts
  285. as well as the new ResetDC API on PCL-type laser device.  It now
  286. does printer memory tracking as well.
  287.  
  288. The PCL5/HP LaserJet III core driver sources are on the Device
  289. Driver Samples and Tools Disk Set under \PRINTERS\HPPCL5A.  The
  290. HPPCL5A directory contains subdirectories necessary for building
  291. the driver.  You can build the driver by running the MAKEIT.BAT batch
  292. file from the ..\HPPCL5A directory.  NOTE:  Be sure to maximize the
  293. amount of conventional memory available when building this driver.
  294. We recommend using MS-DOS Version 5.0 to provide as much conventional
  295. memory as possible.
  296.  
  297. The PFM Editor (PFMEDIT.EXE) for PCL fonts is documented in the Printer
  298. and Fonts Kit and is provided on the Device Driver Samples and Tools Disk
  299. Set under \TOOLS.  The PFM Editor is for editing PCL fonts files that use
  300. the 3.0 PFM font file format.  Please note that the PFM font files that
  301. are used with the Universal driver for PCL devices uses a new updated 3.1
  302. file format and they are modified via the UniTool tool.  If you want to use
  303. these 3.1 format PFM files with the PFM editor, you must first run them
  304. through a file converter we provide, CVTHPPFM.EXE which is provided under the
  305. \TOOLS directory.  This is a simple DOS utility that takes as its first
  306. parameter the 3.1 PFM Font file and creates a new 3.0 PFM font file with the
  307. name specified in the second parameter.
  308.  
  309. The Printer Font Installer source is on the Device Driver Samples and Tools
  310. Disk Set under \PRINTERS\FINSTALL.  You can build the font installer by
  311. running the MAKEIT.BAT file from the ..\FINSTALL directory.  This module is
  312. called by selecting the "Fonts..." button in the HPPCL5A driver dialog box.
  313. The HPPCL5A driver and the Printer Font Installer are being provided to
  314. serve as a base for your Windows 3.1 printer driver development.
  315.  
  316. PostScript Printer driver version 3.5
  317. *************************************
  318. The PostScript driver is also a good example of how to support the downloading
  319. of TrueType fonts on a PostScript printer. It also provides the ability to map
  320. TrueType fonts to Type 1 fonts in your PostScript printer.  In addition,  several
  321. other new features have been added: the ability to specify the resolution, per
  322. page downloading of fonts, setting the half-tone frequency, setting the halftone
  323. angle, printing a negative image, printing a mirror image, generating output
  324. that conforms to the Adobe Structured Document conventions and others.
  325. The driver dialogs have also been updated to better conform to the suggested
  326. design conventions for printer dialog boxes, according to the Microsoft Style
  327. Guide.
  328.  
  329. The driver sources are on the Device Driver Samples and Tools Disk Sets under 
  330. \PRINTERS\PS35.  To build the driver execute the Makefile by running NMAKE.  It is 
  331. likely that you may run out of memory in building the driver.  To prevent this, run NMAKE 
  332. in the RES and UTILS subdirectories prior to running NMAKE in the PS35 directory.  To 
  333. build this driver, you will need to be sure to install the Alternate Math Small libraries 
  334. during the SDK Install.  The name of the needed library is SDLLCAW.LIB   NOTE:  Be 
  335. sure to maximize the amount of conventional memory available when building 
  336. this driver.  We recommend using MS-DOS Version 5.0 to provide as much 
  337. conventional memory as possible.
  338.  
  339. The PostScript driver is designed to make it easy to add new device support, without 
  340. modifying the source files.  Provided in the DDK is a tool called MKPRN.EXE.  You use this 
  341. tool to compile PostScript Printer Description (PPD) files into Windows Printer Description 
  342. (WPD) files. 
  343.  
  344. You can then install .WPD files for the PostScript driver by creating a driver distribution 
  345. disk just as for any other printer driver.  There is no longer an "Add Printer" option in the 
  346. driver's Print Setup dialog box.  Refer to the file CONTROL.INF in the Windows SYSTEM 
  347. subdirectory to see an example of how to create the  WPD entry for an OEMSETUP.INF file 
  348. for installing unlisted PostScript models.
  349.  
  350. The MKPRN.EXE tool is on Device Driver Samples and Tools under \TOOLS.
  351.  
  352. Generic / Text Only Driver (TTY) Sample Sources
  353. ***********************************************
  354. Sample sources for the Generic / Text Only driver are included in this kit. You can use the 
  355. Generic / Text Only printer driver with any printer for printing text with no graphics. Since 
  356. this driver uses the printer's internal character set (or sets), it is a convenient driver for 
  357. printing quick drafts of large documents or spreadsheets. 
  358.  
  359. The files are on the Device Driver Samples and Tools Disk Set under \PRINTERS\TTY.  To 
  360. build the TTY driver execute the Makefile under \PRINTERS\TTY using the NMAKE 
  361. utility.
  362.  
  363. Keyboard Driver Sources
  364. ***********************
  365. The keyboard sources are on the Device Driver Samples and Tools Disk Set under 
  366. \KEYBOARD.  There is a batch file provided to build the IBM style keyboard driver and all 
  367. the international tables for foreign keyboards.  
  368.  
  369. They keyboard driver structure has not been changed since Windows 3.0.  
  370. To build the drivers, execute the Makefile by running NMAKE in the \KEYBOARD 
  371. directory.  Please note that this makefile builds the driver file KBD.DRV.  This driver is 
  372. renamed to KEYBOARD.DRV in Windows 3.1.
  373.  
  374. Mouse Driver Sources
  375. ********************
  376. The Microsoft Mouse drive sources are on the Device Driver Samples and Tools Disk Set .  
  377. Copy all the files from the \MOUSE directory to your hard disk with the MS-DOS XCOPY 
  378. or COPY command.  Be sure to expand the compressed files to their original size before 
  379. using them.   To build the driver, run: NMAKE in the \MOUSE directory.
  380.  
  381. The mouse driver has few changes from the version shipped with the Windows 3.0 DDK.   
  382. No changes are expected, except bug fixes.  Note that this driver will not binary compare 
  383. with the Mouse driver provided with Windows 3.1 since this driver contains proprietary 
  384. source code.
  385.  
  386. COMM Driver Sources
  387. *******************
  388. The COMM driver sources are on the Device Driver Samples and Tools Disk Set.  Copy all 
  389. the files from the \COMM directory to your hard disk with the MS-DOS XCOPY  command.  
  390. Be sure to expand the compressed files to their original size before using them.   To build 
  391. the driver, execute the Makefile by running the Nmake utility.
  392.  
  393. This driver requires the include file INT31.INC.  You will need to copy this file from the 
  394. Virtual Devices and Tools Disk Set from the \INCLUDE directory.  Make sure this file is in 
  395. your include path.
  396.  
  397. Sound Driver Sources
  398. ********************
  399. The sound driver sources are on the Device Driver Samples and Tools Disk
  400. Set.  Copy all the files from the \SOUND directory to your hard disk with
  401. the MS-DOS XCOPY or COPY command.  Be sure to expand the compressed files
  402. to their original size before using them. To build the driver, execute the
  403. Makefile by running the Nmake utility.
  404.  
  405. The sound driver has few changes from the version shipped with the Windows 3.0
  406. DDK. The driver was only modified for bug fixes.
  407.  
  408. Network Driver Sources
  409. **********************
  410. The MS-Net network driver sources are on the Device Driver Samples and Tools
  411. Disk Set. Copy all the files from the \NET directory to your hard disk with
  412. the MS-DOS XCOPY or COPY command.  Be sure to expand the compressed files to
  413. their original size before using them.     To build the driver, execute the
  414. Makefile by running the Nmake utility.
  415.  
  416. Appendix B:  Description of Virtual Device Sources
  417. **************************************************
  418. Each source directory contains one or more .ASM source files, a .DEF file, and a
  419. Makefile.  The Makefile is for use with Microsoft NMAKE or with other Unix-style
  420. MAKE utilities.  Note, NMAKE is not provided in the DDK, but is included with
  421. some of the Microsoft language products (for example,C 6.00A).
  422.  
  423. These MAKE files offer examples of the proper uses of the tools, options, and
  424. general build procedures that should be followed in developing virtual devices.
  425.  
  426. As mentioned previously, these sources are provided for you to begin development
  427. for Windows 3.1 386 enhanced mode virtual device support.
  428.  
  429. The Display Devices (CGA, EGA, VGA, 8514, HERC, V7VGA)
  430. ******************************************************
  431. This device virtualizes the video display and is the most complex of the devices
  432. supplied in the DDK.
  433.  
  434. The various VDD sources are on the Virtual Device Samples and Tools Disk Sets
  435. under the directories \VDDCGA, \VDDEGA ,\VDDVGA, \VDDHERC, and \VDDV7VGA.
  436.  
  437. The \VDDCGA source tree contains files to only build the CGA VDD.  This VDD also 
  438. provides support for the Compaq Plasma display (also called IDC).
  439.  
  440. The \VDDEGA source tree contains files to only build the VDDEGA.
  441.  
  442. The \VDDVGA source tree provided uses conditional assembly to build two separate virtual 
  443. devices to handle standard VGA and 8514/a video adapters.
  444.  
  445. The \VDDHERC source tree contains files to only build the Hercules VDD.
  446.  
  447. The \VDDV7VGA source tree contains files to only build the Video 7 VDD.
  448.  
  449. You will find different Makefiles for each of the VDDs in the appropriate directories 
  450. mentioned above.  Listed below are the Makefile names for each VDD:
  451.  
  452. *    Adapter            NMAKE                        *                 
  453.     CGA            MAKEFILE    
  454.     EGA            MAKEFILE        
  455.     VGA            MAKEVGA        
  456.     8514            MAKE8514        
  457.     Hercules        MAKEFILE    
  458.     Video 7            MAKEVGA
  459.  
  460. NMAKE by default will use the "Makefile" file to process.  You can also specify the
  461. Makefile to use by using the /F parameter.   The VGA and 8514 Makefiles are located in
  462. the same directory and so they have different names for the Makefile.
  463.  
  464. The Display/Windows Interface (GRABBER)
  465. ***************************************
  466. The grabbers for 386 enhanced mode are different than the grabbers run in real or standard 
  467. modes.  They are responsible for rendering a virtual machine's display context within a 
  468. window; therefore, they are closely bound with the virtual display device (VDD).  Each VDD 
  469. needs to be accompanied by its own grabber as a linked pair.
  470.  
  471. The sources are on the Virtual Device Samples and Tools Disk Sets under the \GRABBERS 
  472. directory structure.
  473.  
  474. The DDK contains source for CGA, EGA, VGA, 8514/a, Compaq Plasma, Hercules, and 
  475. Video 7 grabbers.  Since they are all built in the same directory, different Makefiles are 
  476. provided for each of them.  Below are the Makefile names  for each grabber:
  477.  
  478. *    Adapter        NMAKE                          *
  479.  
  480.     CGA        MAKECGA.        
  481.     EGA        MAKEFILE.        
  482.     VGA        MAKEVGA.        
  483.     8514        MAKEDIB.        
  484.     Hercules    MAKEHERC.        
  485.     AT&T/Compaq    MAKEPLSM.        
  486.     Video 7        MKV7.
  487.  
  488. NMAKE by default will use the "Makefile" file to process.  You can also specify the Makefile 
  489. to use by using the /F parameter.   These Makefiles require that the CMACROS.INC include 
  490. file be located in the \GRABBERS directory.  This file is provided in the \OEMFONTS 
  491. directory.
  492.  
  493. The font files used by the grabbers when running in a window are provided in this kit.  You 
  494. will find them on disk 2 under \OEMFONTS.  Run the Nmake utility to execute the 
  495. Makefile here.
  496.  
  497. The DMA Device (VDMAD)
  498. **********************
  499. This device handles direct memory access devices. Virtual devices can support hardware 
  500. cards which use DMA by calling the DMA Services provided by the VDMAD.  These services 
  501. are documented in the DDK documentation.
  502.  
  503. See the section on the Floppy Drive Device, for an example of a device which uses the DMA 
  504. Services.
  505.  
  506. The VDMAD itself should not normally need to be customized; it would only need to be 
  507. altered to support DMA on machines with non-standard architectures.
  508.  
  509. The sources are on the Virtual Device Samples and Tools Disk Set under the \VDMAD 
  510. directory structure.
  511.  
  512. The EBIOS Device (EBIOS)
  513. ************************
  514. This device detects the EBIOS page on machines (such as the PS/2) where it is used, 
  515. identifies it, and ensures that it is reserved as global memory. It will probably not need to be 
  516. modified, but is provided here as an example of a relatively simple device which passively 
  517. accommodates something in the environment.
  518. The sources are on the Virtual Device Samples and Tools Disk Set under the \EBIOS 
  519. directory structure.
  520.  
  521. The Keyboard Device (VKD)
  522. *************************
  523. This is one of the more complicated devices, as it not only virtualizes the keyboard but also 
  524. interacts with the Windows shell to handle hotkeys and other special functions.  It should be 
  525. modified to support other, nonstandard keyboards.
  526.  
  527. The sources are on the Virtual Device Samples and Tools Disk Set under the \VKD 
  528. directory structure.
  529.  
  530. The Mouse Device (VMD)
  531. **********************
  532. This device virtualizes the mouse and maps the INT 33H API between protect and virtual 
  533. modes.
  534.  
  535. The sources are on the Virtual Device Samples and Tools Disk Set under the \VMD 
  536. directory structure.
  537.  
  538. The Netbios Device (VNETBIOS)
  539. *****************************
  540. This device maps the Netbios API between protect and virtual modes, allowing Windows 
  541. applications to access the network.  It also handles asynchronous network transactions by 
  542. mapping the application's buffer into global memory, so the network software can access it 
  543. when the asynchronous event occurs (even if another virtual machine is running at the 
  544. time).
  545.  
  546. This should be modified by network vendors who extend the standard NetBIOS interface 
  547. and also serve as a guide to writing virtual devices for other types of network software.
  548.  
  549. The sources are on the Virtual Device Samples and Tools Disk Set under the \VNETBIOS 
  550. directory structure.
  551.  
  552. The Network Device (LDOSNET)
  553. ****************************
  554. In general, this device manages network connections and assures network integrity across 
  555. all virtual machines.  This device is not part of the Windows 3.1 retail package.  It is 
  556. provided as a sample source to demonstrate some mechanisms used in supporting network 
  557. functionality.
  558.  
  559. The device should be modified when your software does not use standard MS-DOS 
  560. redirector calls for handling network connections.
  561.  
  562. You will find the sources on the Virtual Device Samples and Tools Disk Set under the 
  563. \LDOSNET directory.
  564.  
  565. The BIOS Device (BIOSXLAT)
  566. **************************
  567. This device maps the ROM BIOS API between protected mode and virtual 8086 mode, 
  568. allowing Windows applications and device drivers access to ROM BIOS services.
  569.  
  570. This should be modified when there are non-standard ROM BIOS calls that pass pointers to 
  571. memory and which are used by Windows applications or device drives.
  572.  
  573. You will find the sources on the Virtual Device Samples and Tools Disk Set under the 
  574. \BIOSXLAT directory,
  575.  
  576. The Paging Device (PAGESWAP)
  577. ****************************
  578. This device is used by 386 enhanced mode for demand paging at either the INT 21H or INT 
  579. 13H level.
  580. The sources are on the Virtual Device Samples and Tools Disk Set under the \PAGESWAP 
  581. directory structure.
  582.  
  583. The Printer Device (VPD)
  584. ************************
  585. The Printer Device virtualizes access to the parallel ports.  If a second virtual machine tries 
  586. to access one of the ports while it is being used by another application, a contention dialog is 
  587. presented to the user allowing them to resolve the dispute of ownership.  This virtual device 
  588. was installed by default in Windows 3.0 but is no longer used with Windows 3.1.  It is a 
  589. simple VxD and is used as an example in the Virtual Device Adaptation Guide.
  590.  
  591. The sources are on the Virtual Device Samples and Tools Disk Set under the \VPD 
  592. directory structure.
  593.  
  594. The COMM Device (VCD)
  595. *********************
  596. This device virtualizes the standard serial ports on ISA architecture machines.  It supports 
  597. COM1 through COM4.  It should be modified to add support for different chip sets or for 
  598. additional COM ports.
  599.  
  600. You will find the sources on the Virtual Device Samples and Tools Disk Set under the \VCD 
  601. directory.
  602.  
  603. The Virtual COMM Device (COMBUFF)
  604. *********************************
  605. This device works with the Vitual COMM Device (VCD) to buffer com input for MS-DOS 
  606. Virtual Machines.  It supports COM1 through COM4.  It can be modified to provide other 
  607. handshaking protocols, or just used as sample source for virtualizing COM ports by 
  608. cooperating with VCD.
  609.  
  610. You will find the sources on the Virtual Device Samples and Tools Disk Set under the 
  611. \COMBUFF directory.
  612.  
  613. The Floppy Drive Device (VFD)
  614. *****************************
  615. This device is responsible for two things:
  616.  
  617. --    It removes special timer port trappings to ensure copy protection schemes work 
  618. properly.
  619. --    It communicates with the VDMAD to synchronize DMA channel usage.
  620.  
  621. You will find the sources on the Virtual Device Samples and Tools Disk Set under the \VFD 
  622. directory.
  623.  
  624. The 386 Enhanced Mode Block Device (WDCTRL)
  625. *******************************************
  626. This virtual device is used to talk directly to hard-drive controllers that are Western Digital 
  627. 1003 compatible.  This allows us to do disk i/o entirely in ring 0 protected mode, bypassing 
  628. the real mode BIOS. 
  629.  
  630. You will find the sources on the Virtual Device Samples and Tools Disk Set under the 
  631. \WDCTRL directory.
  632.  
  633. The PageFile Device (PAGEFILE)
  634. ******************************
  635. This virtual device handles our virtual memory paging file, and will always call through 
  636. BlockDev if any FastDisk devices are available.
  637. You will find the sources on the Virtual Device Samples and Tools Disk Set under the 
  638. \PAGEFILE directory.
  639.  
  640. The INT13 Virtual Device (INT13)
  641. ********************************
  642. The Int13 device is used in conjunction with the 386 Enhanced Mode Block Device.  It traps 
  643. and emulates Int 13h BIOS calls.   
  644.  
  645. You will find the sources on the Virtual Device Samples and Tools Disk Set under the 
  646. \INT13 directory.
  647. 
  648.