305573cb29
a group of dos emulator developers. Submitted by: Jonathan Lemon <jlemon@americantv.com> Obtained from: BSDI
155 lines
6.0 KiB
C
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
|