freebsd-nq/usr.bin/doscmd/video.h
John Dyson 90c38ed200 Add our doscmd to the tree. This is a result of work from BSDI, and
a group of dos emulator developers.
Submitted by:	Jonathan Lemon <jlemon@americantv.com>
Obtained from:	BSDI
1997-08-09 01:43:15 +00:00

155 lines
6.0 KiB
C

/*
* Copyright (c) 1992, 1993, 1996
* Berkeley Software Design, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Berkeley Software
* Design, Inc.
*
* THIS SOFTWARE IS PROVIDED BY Berkeley Software Design, Inc. ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL Berkeley Software Design, Inc. BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* BSDI video.h,v 2.2 1996/04/08 19:33:12 bostic Exp
*
* $Id: video.h,v 1.2 1996/09/22 05:53:12 miff Exp $
*/
/*
* Motorola 6845 Video Controller registers
*
* They are read by
* OUT port,code
* IN port+1,res
*
* They are written by
* OUT port,code
* OUT port+1,value
*/
#define MVC_TotHorzChar 0x00 /* Total Horizontal Character */
#define MVC_DispHorzChar 0x01 /* Display Horizontal Character */
#define MVC_HorzSyncChar 0x02 /* Horizontal sync signal after ...char */
#define MVC_HorzSyncDur 0x03 /* Duration of horizontal sync signal in char */
#define MVC_TotVertChar 0x04 /* Total Vertical Character */
#define MVC_AdjVertChar 0x05 /* Adjust Veritcal Character */
#define MVC_DispVertChar 0x06 /* Display Vertical Charcter */
#define MVC_VertSyncChar 0x07 /* Vertical sync signal after .. char */
#define MVC_InterlaceMode 0x08 /* Interlace Mode */
#define MVC_ScanLines 0x09 /* Number of scan lines per screen line */
#define MVC_CurStartLine 0x0a /* Starting line of screen cursor */
#define MVC_CurEndLine 0x0b /* Ending line of screen cursor */
#define MVC_CurHigh 0x0e /* High byte of cursor position */
#define MVC_CurLow 0x0f /* High byte of cursor position */
/*
* Additional MDA register
*/
#define MDA_StartDispPageLo 0x0c /* Starting address of displayed screen page (lo byte) */
#define MDA_StartDispPageHi 0x0d /* Starting address of displayed screen page (hi byte) */
#define MDA_BlinkCurAddrHi 0x0e /* Character address of blinking screen cursor (hi byte) */
#define MDA_BlinkCurAddrLo 0x0f /* Character address of blinking screen cursor (lo byte) */
#define MDA_LightPenHi 0x10 /* Light Pen Position (hi byte) */
#define MDA_LightPenLo 0x11 /* Light Pen Position (lo byte) */
#define MDA_Control 0x03b8 /* MDA Control Register Port */
#define MVC_Address 0x03b4 /* MVC Address Register */
#define MVC_Data 0x03b5 /* MVC Data Register */
#define MDA_VideoSeg 0xb800 /* Segmet address of video ram */
#define CGA_Control 0x03d8 /* CGA Control Register Port */
#define CGA_Status 0x03da /* CGA Control Register Port */
#define CVC_Address 0x03d4 /* CVC Address Register */
#define CVC_Data 0x03d5 /* CVC Data Register */
#define CGA_Black 0x0
#define CGA_Blue 0x1
#define CGA_Green 0x2
#define CGA_Cyan 0x3
#define CGA_Red 0x4
#define CGA_Magenta 0x5
#define CGA_Brown 0x6
#define CGA_LightGray 0x7
#define CGA_DarkGray 0x8
#define CGA_LightBlue 0x9
#define CGA_LightGreen 0xa
#define CGA_LightCyan 0xb
#define CGA_LightRed 0xc
#define CGA_LightMagenta 0xd
#define CGA_Yellow 0xe
#define CGA_White 0xf
#define VGA_Segment 0xa000 /* Starting Segment of VGA Memory */
#define V_int 0x10 /* interrupt for dealing with screen */
#define V_mode 0 /* code for setting new screen mode */
#define V_curtype 1 /* code for setting new cursor type */
#define V_setcur 2 /* code for addressing cursor */
#define V_readcur 3 /* code for reading cursor location */
#define V_readlp 4 /* code for reading light pen position */
#define V_setpage 5 /* code to select active page */
#define V_scrollup 6 /* code to scroll screen up */
#define V_scrolldn 7 /* code to scroll screen nown */
#define V_readch 8 /* code to read a character from screen */
#define V_writeach 9 /* code to write char and attributes */
#define V_writech 10 /* code to write character only */
#define V_setpal 11 /* code to set new setpal or border */
#define V_wdot 12 /* code to write a dot */
#define V_rdot 13 /* code to read a dot */
#define V_wtty 14 /* code to write as if teletype */
#define V_state 15 /* code to find current screen status */
#define VM_40x25 0x00
#define VM_80x25 0x02
#define VM_320x200x4 0x04
#define VM_640x200x2 0x06
#define VM_80x25mono 0x07
#define VM_320x200x16 0x0d
#define VM_640x200x16 0x0e
#define VM_640x350mono 0x0f
#define VM_640x350x16 0x10
#define VM_640x480x2 0x11
#define VM_640x480x16 0x12
#define VM_320x200x256 0x13
#define VM_80x30 0x50
#define VM_80x43 0x51
#define VM_80x60 0x52
#define VM_132x25 0x53
#define VM_132x30 0x54
#define VM_132x43 0x55
#define VM_132x60 0x56
#define VM_132x25h 0x57
#define VM_132x30h 0x58
#define VM_132x43h 0x59
#define VM_132x60h 0x5a
#define VM_800x600x16 0x5b
#define VM_640x400x256 0x5c
#define VM_640x480x256 0x5d
#define VM_800x600x256 0x5e
#define VM_1024x768x16 0x5f
#define VM_1024x768x4 0x60
#define VM_768x1024x16 0x61
#define VM_1024x768x256 0x62
#define VM_VGA VM_640x480x256
#define VM_EVGA VM_800x600x256
#define VM_SVGAportrait VM_768x1024x16
#define VM_SVGA16 VM_1024x768x16
#define VM_SVGA256 VM_1024x768x256