#******************************************************************************
#  Makefile for the vdh directory
#
#       SCCSID = @(#)makefile   6.10 92/02/24
#
#       IBM/Microsoft Confidential
#
#       Copyright (c) IBM Corporation 1987, 1989
#       Copyright (c) Microsoft Corporation 1987, 1989
#
#       All Rights Reserved
#
#******************************************************************************

#******************************************************************************
#  Dot directive definition area (usually just suffixes)
#******************************************************************************

.SUFFIXES:
.SUFFIXES: .c .asm .obj .lst .def .lnk .exe

#******************************************************************************
#  Environment Setup for the component(s).
#******************************************************************************

#
# Conditional Setup Area and User Defines Macros
#

#
# Compiler Location w/ includes, libs and tools
#

DEBUG=0                 # DEBUG=1 => debug on; DEBUG=0 => debug off

H_DBCS=..\..\h_dbcs
INC_DBCS=..\..\inc_dbcs
LIB_DBCS=..\..\lib_dbcs
H=..\..\h
INC=..\..\inc
LIB=..\..\lib
TOOLSPATH=..\..\..\tools
#TOOLSPATH=V:\DRF6\tools

CINC=    -I$(LIB) -I.
AINC=    -I$(LIB) -I.
LIB286= $(LIB)\os2286.lib
LIBP=   $(LIB)\os2286p.lib
LIBS=   $(LIB286) $(LIBP)

#
# Since the compiler/linker and other tools use environment
# variables ( INCLUDE, LIB, etc ) in order to get the location of files,
# the following line will check the environment for the LIFE of the
# makefile and will be specific to this set of instructions. All MAKEFILES
# are requested to use this format to insure that they are using the correct
# level of files and tools.
#

!if [set INCLUDE=$(H_DBCS);$(H);$(INC_DBCS);$(INC)] || [set LIB=$(LIB_DBCS);$(LIB)] || [set PATH=$(TOOLSPATH)]
!endif
#

#
# Compiler/tools Macros
#

CGA_ALWAYS_FAST = 1
LOCAL = -DDEBUG=$(DEBUG) -DCGA_ALWAYS_FAST=$(CGA_ALWAYS_FAST)
CC=     cl
ASM=    masm
LINK=   link386

#
# Compiler and Linker Options
#

CFLAGS= -nologo -Zpl -Ot -Gs2 -W2 -Alfu -NT R2CSEG $(LOCAL)
#AFLAGS= -Mx -t -Z $(LOCAL)
AFLAGS= -Mx -l -t -Z $(LOCAL) -DDBCSENBL
LFLAGS= /exepack /align:16 /map /noe /noignorecase /nodef

#******************************************************************************
# Set up Macros that will contain all the different dependencies for the
# executables and dlls etc. that are generated.
#******************************************************************************

OBJVGA =   vdhmain.obj  vdhinfo.obj  vdhmode.obj  vdhsubs.obj  vdhfont.obj  \
           vdhpalet.obj vdhxconf.obj vdhring3.obj vdhiopl.obj  vdhcdll.obj  \
           vdhgetcp.obj xgabufup.obj xgaread.obj  xgascrol.obj xgawrite.obj

OBJINIT =  idhmain.obj  idhinfo.obj  idhmode.obj  cfginit.obj  r2init.obj   \
           xgabufup.obj xgaread.obj xgascrol.obj xgawrite.obj

OBJWNDW =  wdhmainw.obj wdhinfow.obj wdhmodew.obj wdhsubsw.obj wdhbfupw.obj \
           xgareadw.obj xgascrlw.obj xgawritw.obj xgasubsw.obj aviow.obj    \
           viocsubw.obj

OBJEGA =   maiega.obj   infega.obj   modega.obj   subega.obj   fntega.obj   \
           palega.obj   cfgega.obj   r3ega.obj    r2ega.obj    vdhcdll.obj  \
           vdhgetcp.obj xgabufup.obj xgaread.obj  xgascrol.obj xgawrite.obj

OBJCGA =   maicga.obj   infcga.obj  modcga.obj   subcga.obj   cfgcga.obj    \
           vdhcdll.obj  r3cga.obj   r2cga.obj    cgartrc.obj  fntcga.obj    \
           cgabufup.obj cgaread.obj cgascrol.obj cgawrite.obj

OBJMPA =   maimpa.obj   infmpa.obj   modmpa.obj   submpa.obj  r3mpa.obj     \
           r2mpa.obj    vdhcdll.obj  cfgmpa.obj   fntmpa.obj xgabufup.obj   \
           xgaread.obj  xgascrol.obj xgawrite.obj

OBJ8514A = mai8514a.obj inf8514a.obj mod8514a.obj sub8514a.obj pal8514a.obj \
           r38514a.obj  r28514a.obj  cfg8514a.obj vdhcdll.obj

#******************************************************************************
#   Setup the inference rules for compiling and assembling source code to
#   object code.
#******************************************************************************

.asm.obj:
        $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 $*.asm;
.asm.lst:
        $(ASM) -l -n $(AFLAGS) $(AINC) -DVDHVGA=1 $*.asm;
.c.obj:
        $(CC) $(CFLAGS) -Fo$*.obj -dos $(CINC) -DVDHVGA=1 -c $*.c
.c.cod:
        $(CC) $(CFLAGS) -Fc$*.cod -Fo$*.obj -dos $(CINC) -DVDHVGA=1 -c $*.c


#******************************************************************************
#   Target Information
#******************************************************************************
#
# This is a very important step. The following small amount of code MUST
# NOT be removed from the program. The following directive will do
# dependency checking every time this component is built UNLESS the
# following is performed:
#                    A specific tag is used -- ie. all
#
# This allows the developer as well as the B & I group to perform incremental
# build with a degree of accuracy that has not been used before.
# There are some instances where certain types of INCLUDE files must be
# created first. This type of format will allow the developer to require
# that file to be created first. In order to achive that, all that has to
# be done is to make the DEPEND.MAK tag have your required target. Below is
# an example:
#
#    depend.mak:   { your file(s) } dephold
#
# Please DON'T remove the following line
#

!include      "$(H)\version.mak"

#******************************************************************************
# Should be the default tag for all general processing
#******************************************************************************

all: bvhvga.dll bvhinit.dll bvhwndw.dll bvhega.dll bvhcga.dll bvhmpa.dll bvh8514a.dll

#******************************************************************************
#   Specific Description Block Information
#******************************************************************************

# This section would only be for specific direction as to how to create
# unique elements that are necessary to the build process. This could
# be compiling or assembling, creation of DEF files and other unique
# files.
# If all compiler and assembly rules are the same, use an inference rule to
# perform the compilation.
#


#********
# The following are the special inference rules for BVHVGA.DLL
#********

cfginit.obj:    vdhxconf.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHINIT=1 -c vdhxconf.c

r2init.obj:     vdhiopl.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHINIT=1 vdhiopl.asm, $@;

#********
# The following are the special inference rules for BVHWNDW.DLL
#********

wdhmainw.obj:   wdhmain.asm
                $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 -DD1348=1 -DDBCSENBL=1 -DEPOCH=1 wdhmain.asm, $@;

wdhinfow.obj:   wdhinfo.asm
                $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 -DD1348=1 -DMSKK=1 -DEPOCH=1 wdhinfo.asm, $@;

wdhmodew.obj:   wdhmode.asm
                $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 -DD1348=1 -DMSKK=1 -DEPOCH=1 wdhmode.asm, $@;

wdhsubsw.obj:   wdhsubs.asm
                $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 -DD1348=1 -DMSKK=1 -DEPOCH=1 wdhsubs.asm, $@;

wdhbfupw.obj:   wdhbufup.asm
                $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 -DD1348=1 -DMSKK=1 -DEPOCH=1 wdhbufup.asm, $@;

xgareadw.obj:   xgaread.asm
                $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 -DD1348=1 -DMSKK=1 -DEPOCH=1 xgaread.asm, $@;

xgawritw.obj:   xgawrite.asm
                $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 -DD1348=1 -DMSKK=1 -DEPOCH=1 xgawrite.asm, $@;

xgascrlw.obj:   xgascrol.asm
                $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 -DD1348=1 -DMSKK=1 -DEPOCH=1 xgascrol.asm, $@;

#xgasubsw.obj:   xgasubs.asm
xgasubsw.obj:   xgasubax.obj  xgasubax.inc xgasubep.inc
                $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 -DD1348=1 -DMSKK=1 -DEPOCH=1 xgasubax.asm, $@;

aviow.obj:      avio.asm
                $(ASM) $(AFLAGS) $(AINC) -DVDHVGA=1 -DD1348=1 -DMSKK=1 -DEPOCH=1 avio.asm, $@;

viocsubw.obj:   viocsubs.c
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHVGA=1 -DD1348=1 -DMSKK=1 -c viocsubs.c

#********
# The following are the special inference rules for BVHEGA.DLL
#********

cfgega.obj:     vdhxconf.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHEGA=1 -c vdhxconf.c

maiega.obj:     vdhmain.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHEGA=1 -c vdhmain.c

infega.obj:     vdhinfo.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHEGA=1 -c vdhinfo.c

modega.obj:     vdhmode.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHEGA=1 -c vdhmode.c

subega.obj:     vdhsubs.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHEGA=1 -c vdhsubs.c

fntega.obj:     vdhfont.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHEGA=1 -c vdhfont.c

palega.obj:     vdhpalet.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHEGA=1 -c vdhpalet.c

xconfega.obj:   vdhxconf.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHEGA=1 -c vdhxconf.c

r3ega.obj:      vdhring3.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHEGA=1 vdhring3.asm, $@;

r2ega.obj:      vdhiopl.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHEGA=1 vdhiopl.asm, $@;
#********
# The following are the special inference rules for BVHCGA.DLL
#********

cfgcga.obj:     vdhxconf.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHCGA=1 vdhxconf.c

maicga.obj:     vdhmain.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHCGA=1 vdhmain.c

infcga.obj:     vdhinfo.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHCGA=1 vdhinfo.c

modcga.obj:     vdhmode.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHCGA=1 vdhmode.c

subcga.obj:     vdhsubs.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHCGA=1 vdhsubs.c

fntcga.obj:     vdhfont.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDHCGA=1 -c vdhfont.c

r3cga.obj:      vdhring3.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHCGA=1 vdhring3.asm, $@;

r2cga.obj:      vdhiopl.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHCGA=1 vdhiopl.asm, $@;

cgabufup.obj:   xgabufup.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHCGA=1 xgabufup.asm, $@;

cgaread.obj:    xgaread.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHCGA=1 xgaread.asm, $@;

cgascrol.obj:   xgascrol.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHCGA=1 xgascrol.asm, $@;

cgawrite.obj:   xgawrite.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHCGA=1 xgawrite.asm, $@;

#********
# The following are the special inference rules for BVHMPA.DLL
#********

cfgmpa.obj:     vdhxconf.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHMPA=1 vdhxconf.c

maimpa.obj:     vdhmain.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHMPA=1 vdhmain.c

infmpa.obj:     vdhinfo.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHMPA=1 vdhinfo.c

modmpa.obj:     vdhmode.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHMPA=1 vdhmode.c

submpa.obj:     vdhsubs.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHMPA=1 vdhsubs.c

fntmpa.obj:     vdhfont.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDHMPA=1 vdhfont.c

r3mpa.obj:      vdhring3.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHMPA=1 vdhring3.asm, $@;

r2mpa.obj:      vdhiopl.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDHMPA=1 vdhiopl.asm, $@;

#********
# The following are the special inference rules for BVH8514A.DLL
#********

cfg8514a.obj:   vdhxconf.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDH8514A=1 vdhxconf.c

mai8514a.obj:   vdhmain.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDH8514A=1 vdhmain.c

inf8514a.obj:   vdhinfo.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDH8514A=1 vdhinfo.c

mod8514a.obj:   vdhmode.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDH8514A=1 vdhmode.c

sub8514a.obj:   vdhsubs.obj
                $(CC) $(CFLAGS) -Fo$@ -dos $(CINC) -c -DVDH8514A=1 vdhsubs.c

pal8514a.obj:   vdhpalet.obj
                $(CC) $(CFLAGS) $(CINC) -Fo$@ -dos -DVDH8514A=1 -c vdhpalet.c

r38514a.obj:    vdhring3.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDH8514A=1 vdhring3.asm, $@;

r28514a.obj:    vdhiopl.obj
                $(ASM) $(AFLAGS) $(AINC) -DVDH8514A=1 vdhiopl.asm, $@;


bvhinit.dll:    $(OBJINIT) $(LIB286) bvhinit.lnk bvhinit.def
                $(LINK) @bvhinit.lnk;
                mapsym $*

bvhvga.dll:     $(OBJVGA) $(LIB286) bvhvga.lnk bvhvga.def
                $(LINK) @bvhvga.lnk;
                mapsym $*

bvhwndw.dll:    $(OBJWNDW) $(LIB286) $(LIBP) bvhwndw.lnk bvhwndw.def
                $(LINK) @bvhwndw.lnk;
                mapsym $*

bvhega.dll:     $(OBJEGA) $(LIBS) bvhega.lnk bvhega.def
                $(LINK) @bvhega.lnk;
                mapsym $*

bvhcga.dll:     $(OBJCGA) $(LIBS) bvhcga.lnk bvhcga.def
                $(LINK) @bvhcga.lnk;
                mapsym $*

bvhmpa.dll:     $(OBJMPA) $(LIBS) bvhmpa.lnk bvhmpa.def
                $(LINK) @bvhmpa.lnk;
                mapsym $*

bvh8514a.dll:   $(OBJ8514A) $(LIBS) bvh8514a.lnk bvh8514a.def
                $(LINK) @bvh8514a.lnk;
                mapsym $*

#
# The following create the linker list files, *.LNK, and the *.DEF files
# for the associated DLL dynamically when the MAKEFILE changes.
#

bvhvga.lnk: makefile
       @ECHO  >$@ $(OBJVGA)
       @ECHO >>$@ $*.dll
       @ECHO >>$@ $*.map $(LFLAGS)
       @ECHO >>$@ $(LIBS)
       @ECHO >>$@ $*.def
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhvga.def: makefile
       @ECHO  >$@ LIBRARY $*
       @ECHO >>$@ BASE = 0x1AA10000
       @ECHO >>$@ PROTMODE
       @ECHO >>$@ DESCRIPTION '$(FILEVER) VGA Video Device Handler'
       @ECHO >>$@ CODE LOADONCALL
       @ECHO >>$@ DATA LOADONCALL
       @ECHO >>$@ SEGMENTS
       @ECHO >>$@    R2SEG  CLASS 'CODE' PURE IOPL       ; Hardware I/O at ring 2
       @ECHO >>$@    R2CSEG CLASS 'CODE' PURE CONFORMING ; Ring 3 or ring 2
       @ECHO >>$@ EXPORTS
       @ECHO >>$@     DEVENABLE           ; BVS-DDI initialization entry point
       @ECHO >>$@     SETMAPMASK        2 ; USHORT ReadMap, USHORT MaskValue
       @ECHO >>$@     ACCESSCURSORPOS   5 ; USHORT Columns, USHORT Color, USHORT Direction, USHORT far *PositionPacket
       @ECHO >>$@     ACCESSCURSORTYPE  4 ; USHORT Color, USHORT Direction, USHORT far *TypePacket
       @ECHO >>$@     ACCESSBLINK       4 ; USHORT Color, USHORT Direction, USHORT far *Blink
       @ECHO >>$@     ACCESSOVERSCAN    4 ; USHORT Color, USHORT Direction, USHORT far *Overscan
       @ECHO >>$@     ACCESSUNDERSCORE  4 ; USHORT Color, USHORT Direction, USHORT far *Underscore
       @ECHO >>$@     ACCESSVIDEOENABLE 4 ; USHORT Color, USHORT Direction, USHORT far *VideoEnable
       @ECHO >>$@     ACCESSCLUT        3 ; USHORT Direction, USHORT far *CLUTPacket
       @ECHO >>$@     ACCESSHARDWARE    7 ; REGADDRESS far *, USHORT WordByte, USHORT Color, USHORT Direction, REGDATA far *RegPacket
       @ECHO >>$@     ACCESSREGISTER    5 ; REGADDRESS far * Port, USHORT Direction, UCHAR far *RegValue
       @ECHO >>$@     CHARFONTEND       1 ; UCHAR Color
       @ECHO >>$@     SET132            2 ; USHORT POS_ID, USHORT Direction
       @ECHO >>$@     _VideoHardware      ;
       @ECHO >>$@ IMPORTS
       @ECHO >>$@     DOSIODELAYCNT=DOSCALLS.427 ; Needed for IoDelay macro
        if "$(DEBUG)" == "1" @ECHO >>$@ _DPRINTF         2 ; char far *
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhinit.lnk: makefile
       @ECHO  >$@ $(OBJINIT)
       @ECHO >>$@ $*.dll
       @ECHO >>$@ $*.map $(LFLAGS)
       @ECHO >>$@ $(LIBS)
       @ECHO >>$@ $*.def
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhinit.def: makefile
       @ECHO  >$@ LIBRARY $*
       @ECHO >>$@ PROTMODE
       @ECHO >>$@ DESCRIPTION '$(FILEVER) Video Device Handler for System Installation and Initialization'
       @ECHO >>$@ CODE LOADONCALL
       @ECHO >>$@ DATA LOADONCALL
       @ECHO >>$@ SEGMENTS
       @ECHO >>$@    R2SEG   CLASS 'CODE' PURE IOPL       ; Hardware I/O at ring 2
       @ECHO >>$@    R2CSEG  CLASS 'CODE' PURE CONFORMING ; Ring 3 or ring 2
       @ECHO >>$@ EXPORTS
       @ECHO >>$@     DEVENABLE           ; BVS-DDI initialization entry point
       @ECHO >>$@     CHARFONTEND       1 ; UCHAR Color
       @ECHO >>$@     ACCESSREGISTER    5 ; REGADDRESS far * Port, USHORT Direction, UCHAR far *RegValue
       @ECHO >>$@ IMPORTS
       @ECHO >>$@     DOSIODELAYCNT=DOSCALLS.427 ; Needed for IoDelay macro
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhwndw.lnk: makefile
       @ECHO  >$@ $(OBJWNDW)
       @ECHO >>$@ $*.dll
       @ECHO >>$@ $*.map $(LFLAGS)
       @ECHO >>$@ $(LIBS)
       @ECHO >>$@ $*.def
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhwndw.def: makefile
       @ECHO  >$@ LIBRARY $*
#      @ECHO >>$@ BASE = 0x1AA50000
       @ECHO >>$@ PROTMODE
       @ECHO >>$@ DESCRIPTION '$(FILEVER) Video Device Handler for Windowable and AVIO'
       @ECHO >>$@ CODE LOADONCALL
       @ECHO >>$@ DATA LOADONCALL
       @ECHO >>$@ SEGMENTS
       @ECHO >>$@    _TEXT   CLASS 'CODE' PURE CONFORMING ; Ring 3 or ring 2 ;@T52
       @ECHO >>$@    _DATA   CLASS 'DATA' SHARED                                          ;@T52
       @ECHO >>$@ EXPORTS
       @ECHO >>$@     DEVENABLE           ; BVS-DDI initialization entry point
       @ECHO >>$@     BUFFERUPDATE        ; Buffer Update entry point
       @ECHO >>$@     GETCONFIG           ; Get Configuration entry point
       @ECHO >>$@ IMPORTS
       @ECHO >>$@     PMVIOP.WINCREATECONSOLE                   ;@T52
       @ECHO >>$@     PMVIOP.WINDESTROYCONSOLE                  ;@T52
       @ECHO >>$@     PMVIOP.WINSYNCWITHPS                      ;@T52
       @ECHO >>$@     PMVIOP.LOCKVIOPS                          ;@T52
       @ECHO >>$@     PMVIOP.UNLOCKVIOPS                        ;@T52
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhega.lnk:  makefile
       @ECHO  >$@ $(OBJEGA)
       @ECHO >>$@ $*.dll
       @ECHO >>$@ $*.map $(LFLAGS)
       @ECHO >>$@ $(LIBS)
       @ECHO >>$@ $*.def
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhega.def:  makefile
       @ECHO  >$@ LIBRARY $*
       @ECHO >>$@ PROTMODE
       @ECHO >>$@ DESCRIPTION '$(FILEVER) EGA Video Device Handler'
       @ECHO >>$@ CODE LOADONCALL
       @ECHO >>$@ DATA LOADONCALL
       @ECHO >>$@ SEGMENTS
       @ECHO >>$@    R2SEG  CLASS 'CODE' PURE IOPL       ; Hardware I/O at ring 2
       @ECHO >>$@    R2CSEG CLASS 'CODE' PURE CONFORMING ; Ring 3 or ring 2
       @ECHO >>$@ EXPORTS
       @ECHO >>$@     DEVENABLE           ; BVS-DDI initialization entry point
       @ECHO >>$@     SETMAPMASK        2 ; USHORT ReadMap, USHORT MaskValue
       @ECHO >>$@     ACCESSCURSORPOS   5 ; USHORT Columns, USHORT Color, USHORT Direction, USHORT far *PositionPacket
       @ECHO >>$@     ACCESSCURSORTYPE  4 ; USHORT Color, USHORT Direction, USHORT far *TypePacket
       @ECHO >>$@     ACCESSBLINK       4 ; USHORT Color, USHORT Direction, USHORT far *Blink
       @ECHO >>$@     ACCESSOVERSCAN    4 ; USHORT Color, USHORT Direction, USHORT far *Overscan
       @ECHO >>$@     ACCESSUNDERSCORE  4 ; USHORT Color, USHORT Direction, USHORT far *Underscore
       @ECHO >>$@     ACCESSVIDEOENABLE 4 ; USHORT Color, USHORT Direction, USHORT far *VideoEnable
       @ECHO >>$@     ACCESSHARDWARE    7 ; REGADDRESS far *, USHORT WordByte, USHORT Color, USHORT Direction, REGDATA far *RegPacket
       @ECHO >>$@     ACCESSREGISTER    5 ; REGADDRESS far * Port, USHORT Direction, UCHAR far *RegValue
       @ECHO >>$@     CHARFONTEND       1 ; UCHAR Color
        if "$(DEBUG)" == "1" @ECHO >>$@ _DPRINTF         2 ; char far *
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhcga.lnk:  makefile
       @ECHO  >$@ $(OBJCGA)
       @ECHO >>$@ $*.dll
       @ECHO >>$@ $*.map $(LFLAGS)
       @ECHO >>$@ $(LIBS)
       @ECHO >>$@ $*.def
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhcga.def:  makefile
       @ECHO  >$@ LIBRARY $*
       @ECHO >>$@ PROTMODE
       @ECHO >>$@ DESCRIPTION '$(FILEVER) CGA Video Device Handler'
       @ECHO >>$@ CODE LOADONCALL
       @ECHO >>$@ DATA LOADONCALL
       @ECHO >>$@ SEGMENTS
       @ECHO >>$@    R2SEG  CLASS 'CODE' PURE IOPL       ; Hardware I/O at ring 2
       @ECHO >>$@    R2CSEG CLASS 'CODE' PURE CONFORMING ; Ring 3 or ring 2
       @ECHO >>$@ EXPORTS
       @ECHO >>$@     DEVENABLE           ; BVS-DDI initialization entry point
       @ECHO >>$@     ACCESSCURSORPOS   5 ; USHORT Columns, USHORT Color, USHORT Direction, USHORT far *PositionPacket
       @ECHO >>$@     ACCESSCURSORTYPE  4 ; USHORT Color, USHORT Direction, USHORT far *TypePacket
       @ECHO >>$@     ACCESSBLINK       4 ; USHORT Color, USHORT Direction, USHORT far *Blink
       @ECHO >>$@     ACCESSOVERSCAN    4 ; USHORT Color, USHORT Direction, USHORT far *Overscan
       @ECHO >>$@     ACCESSVIDEOENABLE 4 ; USHORT Color, USHORT Direction, USHORT far *VideoEnable
       @ECHO >>$@     ACCESSHARDWARE    7 ; REGADDRESS far *, USHORT WordByte, USHORT Color, USHORT Direction, REGDATA far *RegPacket
       @ECHO >>$@     ACCESSREGISTER    5 ; REGADDRESS far * Port, USHORT Direction, UCHAR far *RegValue
       @ECHO >>$@     CHARFONTEND       1 ; UCHAR Color
        if "$(DEBUG)" == "1" @ECHO >>$@ _DPRINTF         2 ; char far *
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhmpa.lnk:  makefile
       @ECHO  >$@ $(OBJMPA)
       @ECHO >>$@ $*.dll
       @ECHO >>$@ $*.map $(LFLAGS)
       @ECHO >>$@ $(LIBS)
       @ECHO >>$@ $*.def
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvhmpa.def:  makefile
       @ECHO  >$@ LIBRARY $*
       @ECHO >>$@ PROTMODE
       @ECHO >>$@ DESCRIPTION '$(FILEVER) MPA Video Device Handler'
       @ECHO >>$@ CODE LOADONCALL
       @ECHO >>$@ DATA LOADONCALL
       @ECHO >>$@ SEGMENTS
       @ECHO >>$@    R2SEG  CLASS 'CODE' PURE IOPL       ; Hardware I/O at ring 2
       @ECHO >>$@    R2CSEG CLASS 'CODE' PURE CONFORMING ; Ring 3 or ring 2
       @ECHO >>$@ EXPORTS
       @ECHO >>$@     DEVENABLE           ; BVS-DDI initialization entry point
       @ECHO >>$@     ACCESSCURSORPOS   5 ; USHORT Columns, USHORT Color, USHORT Direction, USHORT far *PositionPacket
       @ECHO >>$@     ACCESSCURSORTYPE  4 ; USHORT Color, USHORT Direction, USHORT far *TypePacket
       @ECHO >>$@     ACCESSVIDEOENABLE 4 ; USHORT Color, USHORT Direction, USHORT far *VideoEnable
       @ECHO >>$@     ACCESSHARDWARE    7 ; REGADDRESS far *, USHORT WordByte, USHORT Color, USHORT Direction, REGDATA far *RegPacket
       @ECHO >>$@     ACCESSREGISTER    5 ; REGADDRESS far * Port, USHORT Direction, UCHAR far *RegValue
       @ECHO >>$@     CHARFONTEND       1 ; UCHAR Color
       if "$(DEBUG)" == "1" @ECHO >>$@ _DPRINTF         2 ; char far *
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvh8514a.lnk: makefile
       @ECHO  >$@ $(OBJ8514A)
       @ECHO >>$@ $*.dll
       @ECHO >>$@ $*.map $(LFLAGS)
       @ECHO >>$@ $(LIBS)
       @ECHO >>$@ $*.def
       @ECHO >>$@ ; $@ end of generated file (see makefile)

bvh8514a.def: makefile
       @ECHO  >$@ LIBRARY $*
       @ECHO >>$@ PROTMODE
       @ECHO >>$@ DESCRIPTION '$(FILEVER) 8514/A Video Device Handler'
       @ECHO >>$@ CODE LOADONCALL
       @ECHO >>$@ DATA LOADONCALL
       @ECHO >>$@ SEGMENTS
       @ECHO >>$@    R2SEG  CLASS 'CODE' PURE IOPL       ; Hardware I/O at ring 2
       @ECHO >>$@    R2CSEG CLASS 'CODE' PURE CONFORMING ; Ring 3 or ring 2
       @ECHO >>$@ EXPORTS
       @ECHO >>$@     DEVENABLE           ; BVS-DDI initialization entry point
       @ECHO >>$@     ACCESSDISPLAYMASK 3 ; USHORT Direction, ULONG far *DisplayMask
       @ECHO >>$@     ACCESSREGISTER    5 ; REGADDRESS far * Port, USHORT Direction, UCHAR far *RegValue
       @ECHO >>$@     ACCESSCLUT        3 ; USHORT Direction, USHORT far *CLUTPacket ;@S24
       @ECHO >>$@ IMPORTS
       @ECHO >>$@     DOSIODELAYCNT=DOSCALLS.427 ; Needed for IoDelay macro
       if "$(DEBUG)" == "1" @ECHO >>$@ _DPRINTF         2 ; char far *
       @ECHO >>$@ ; $@ end of generated file (see makefile)


#******************************************************************************
