summaryrefslogtreecommitdiff
path: root/i386/i386at/blitreg.h
diff options
context:
space:
mode:
Diffstat (limited to 'i386/i386at/blitreg.h')
-rw-r--r--i386/i386at/blitreg.h404
1 files changed, 0 insertions, 404 deletions
diff --git a/i386/i386at/blitreg.h b/i386/i386at/blitreg.h
deleted file mode 100644
index 7226aca..0000000
--- a/i386/i386at/blitreg.h
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/* **********************************************************************
- File: blitreg.h
- Description: Bell Tech Blit card hardware description
-
- $ Header: $
-
- Copyright Ing. C. Olivetti & C. S.p.A. 1988, 1989.
- All rights reserved.
-********************************************************************** */
-/*
- Copyright 1988, 1989 by Olivetti Advanced Technology Center, Inc.,
-Cupertino, California.
-
- All Rights Reserved
-
- Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Olivetti
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
- OLIVETTI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL OLIVETTI BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUR OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-/*
- * Some code taken from Bob Glossman's 1987 "minimal Blit Express
- * driver", copyright unknown. Probably copyright Intel, too.
- */
-
-
-#ifndef blitreg_DEFINED
-#define blitreg_DEFINED
-
-
-/*
- * Registers accessible through AT I/O space. These addresses can be
- * changed by changing bits 4-8 of the Blit's DIP switch.
- */
-
-#define BLIT_CONFIG_ADDR 0x304
-#define BLIT_DIAG_ADDR 0x306
-
-#if defined(sun386) || defined(i386)
-
-
-/*
- * Layout of Blit control register.
- */
-
-union blit_config_reg {
- struct config_bits {
- unsigned dos_segment : 4;
- unsigned reset : 1;
- unsigned mode : 1;
-#define BLIT_UNIX_MODE 1
-#define BLIT_DOS_MODE 0
- unsigned invisible : 1;
-#define BLIT_INVISIBLE 1
-#define BLIT_VISIBLE 0
- unsigned unused : 1;
- } reg;
- u_char byte;
-};
-
-
-/*
- * Blit Diag register.
- * The UNIX base address is currently hardwired to BLIT_BASE_ADDR.
- */
-
-#define BLIT_BASE_ADDR 0xd80000 /* base of blit memory (phys addr) */
-
-union blit_diag_reg {
- struct diag_bits {
- unsigned unix_base_addr : 5; /* phys addr (ignored) */
- unsigned led0 : 1;
- unsigned led1 : 1;
- unsigned led2 : 1;
-#define BLIT_LED_ON 1
-#define BLIT_LED_OFF 0
- } reg;
- u_char byte;
-};
-
-#endif /* sun386 || i386 */
-
-
-/*
- * Graphics memory, 786 registers, static RAM, and EPROM, all
- * accessible through mapped memory.
- */
-
-#define BLIT_MONOWIDTH 1664
-#define BLIT_MONOHEIGHT 1200
-#define BLIT_MONOFBSIZE ((BLIT_MONOWIDTH*BLIT_MONOHEIGHT)/8)
- /* byte size of monochrome fb */
-
-#define BLIT_MEMSIZE 0x100000 /* num bytes mapped graphics memory */
-
-#define BLIT_REGSIZE 128 /* bytes taken by 786 registers */
-#define BLIT_REGPAD (0x10000 - BLIT_REGSIZE)
- /* padding between reg's and SRAM */
-
-#define BLIT_SRAMSIZE 0x4000 /* num bytes mapped for SRAM */
-#define BLIT_SRAMPAD (0x10000 - BLIT_SRAMSIZE)
- /* padding between SRAM and EPROM */
-
-#define BLIT_EPROMSIZE 0x20000 /* num bytes mapped for EPROM */
-
-
-/*
- * Layout of the Blit's mapped memory. The physical address is (or
- * will be, eventually) determined by the Diag register (above).
- */
-
-struct blitdev {
- u_char graphmem[BLIT_MEMSIZE];
- u_char reg786[BLIT_REGSIZE];
- u_char pad1[BLIT_REGPAD];
- u_char sram[BLIT_SRAMSIZE];
- u_char pad2[BLIT_SRAMPAD];
- u_char eprom[BLIT_EPROMSIZE];
-};
-
-#define BLIT_MAPPED_SIZE sizeof(struct blitdev)
-
-
-/*
- * Offsets for 786 registers (i.e., indices into reg786[]).
- */
-
-#define INTER_RELOC 0x00 /* Internal Relocation Register */
-#define BIU_CONTROL 0x04 /* BIU Control Register */
-#define DRAM_REFRESH 0x06 /* DRAM Refresh control register */
-#define DRAM_CONTROL 0x08 /* DRAM control register */
-#define DP_PRIORITY 0x0A /* DP priority register */
-#define GP_PRIORITY 0x0C /* GP priority register*/
-#define EXT_PRIORITY 0x0E /* External Priority Register*/
-#define GP_OPCODE_REG 0x20 /* GP opcode register */
-#define GP_PARM1_REG 0x22 /* GP Parameter 1 Register */
-#define GP_PARM2_REG 0x24 /* GP Parameter 2 Register*/
-#define GP_STAT_REG 0x26 /* GP Status Register*/
-#define DP_OPCODE_REG 0x40 /* DP opcode register */
-#define DP_PARM1_REG 0x42 /* DP Parameter 1 Register*/
-#define DP_PARM2_REG 0x44 /* DP Parameter 2 Register*/
-#define DP_PARM3_REG 0x46 /* DP Parameter 3 Register*/
-#define DP_STAT_REG 0x48 /* DP Status Register*/
-#define DEF_VIDEO_REG 0x4A /* DP Default Video Register*/
-
-
-/*
- * 786 BIU Control Register values.
- */
-
-#define BIU_WP1 0x02 /* Write Protect One; 1 = on */
-#define BIU_16BIT 0x10 /* access 786 registers as words; 0 = bytes */
-
-
-/*
- * 786 DRAM/VRAM Control Register values.
- */
-
-/* RW bits */
-#define MEMROWS1 0
-#define MEMROWS2 0x20
-#define MEMROWS3 0x40
-#define MEMROWS4 0x60
-
-/* DC bits */
-#define PG_NONINTERLV 0
-#define FASTPG_NONINTERLV 0x10
-#define PG_INTERLV 0x08
-#define FASTPG_INTERLV 0x18
-
-/* HT bits */
-#define HEIGHT_8K 0
-#define HEIGHT_16K 0x1
-#define HEIGHT_32K 0x2
-#define HEIGHT_64K 0x3
-#define HEIGHT_128K 0x4
-#define HEIGHT_256K 0x5
-#define HEIGHT_512K 0x6
-#define HEIGHT_1M 0x7
-
-
-/*
- * 786 Graphics Processor opcodes.
- */
-
-#define GECL 0x001 /* end of command list */
-#define OP_LINK 0x200 /* LINK - "link next cmd" */
-
-
-/*
- * 786 Display Processor opcodes.
- */
-
-#define DECL 1 /* end of list */
-#define DP_LOADALL 0x500
-
-
-/*
- * Macros for accessing 786 registers (see BIU_16BIT) and EPROM.
- */
-
-#define WRITEREG8(base,offset,val) \
- (base)->reg786[(offset)] = (val) & 0xff, \
- (base)->reg786[(offset)+1] = ((val) & 0xff00) >> 8
-
-#define WRITEREG16(base,offset,val) \
- (*((u_short *)((base)->reg786+(offset)))) = (val)
-
-#define READREG(base,offset) \
- (*((u_short *)(((base)->reg786+(offset)))))
-
-#define WRITEROM(romp,offset,val) \
- (*((u_short *)((romp)+(offset)))) = (val)
-
-#define READROM(romp,offset) \
- (*((u_short *)(((romp)+(offset)))))
-
-
-/*
- * Layout of Display Processor Control Block Registers. This block is
- * allocated somewhere in the Blit's graphics memory, and a pointer to
- * it is passed to the Display Processor.
- *
- * NOTE: The 786 only sees the memory mapped by the Blit. Thus all
- * addresses passed to the 786 are relative to the start of the Blit's
- * mapped memory.
- */
-
-typedef int addr786_t; /* 0 = start of Blit mapped memory */
-
-typedef struct {
- u_short vidstat; /* video status */
- u_short intrmask; /* interrupt mask */
- u_short trip_point;
- u_short frame_intr; /* frame interrupt */
- u_short reserved1;
- u_short crtmode; /* CRT controller mode */
- u_short hsyncstop; /* monitor parameters */
- u_short hfldstart;
- u_short hfldstop;
- u_short linelength;
- u_short vsyncstop;
- u_short vfldstart;
- u_short vfldstop;
- u_short vframelen;
- u_short descl; /* descriptor pointer low part */
- u_short desch; /* descriptor pointer high part */
- u_short reserved2;
- u_short xyzoom;
- u_short fldcolor;
- u_short bordercolor;
- u_short bpp_pad1;
- u_short bpp_pad2;
- u_short bpp_pad4;
- u_short csrmode; /* & CsrPad */
- u_short cursorx; /* cursor x location */
- u_short cursory; /* cursor y location */
- u_short cursorpat[16]; /* cursor pattern */
-} DPCONTROLBLK;
-
-
-/*
- * Values for 786 Display Processor Control Block Registers.
- */
-
-/* video status */
-#define DP_DSP_ON 1 /* display on */
-#define DP_CSR_ON 2 /* cursor on */
-
-/* CRT controller modes */
-#define CRTM_NONINTER 0 /* non-interlaced */
-#define CRTM_INTERLCD 0x40 /* interlaced */
-#define CRTM_INTERSYN 0x60 /* interlaced - sync */
-#define CRTM_WIN_STAT_ENABLE 0x10 /* window status enable */
-#define CRTM_SYNC_SLAVE_MODE 0x08 /* on = operate as slave */
-#define CRTM_BLANK_SLAVE_MODE 0x04 /* on = Blank is input */
-#define CRTM_NORMAL_SPEED 0x00
-#define CRTM_HIGH_SPEED 0x01
-#define CRTM_VRYHIGH_SPEED 0x02
-#define CRTM_SUPHIGH_SPEED 0x03
-
-/* cursor style */
-#define DP_CURSOR_16X16 0x8000 /* off = 8x8 */
-#define DP_CURSOR_CROSSHAIR 0x4000 /* off = block cursor */
-#define DP_CURSOR_TRANSPRNT 0x2000 /* off = cursor is opaque */
-
-
-/*
- * Types for dealing with 786 Display Processor.
- */
-
-typedef struct {
- u_short lines; /* (lines in strip) - 1 */
- u_short linkl; /* link to next strip low part */
- u_short linkh; /* link to next strip high part */
- u_short tiles; /* C bit, (tiles in strip) - 1 */
-} STRIPHEADER;
-
-/*
- * If the C bit is turned on, the display processor "automatically
- * displays the background color" for areas not defined by the strips.
- * See section 3.1.3.2 of the '786 User's Manual.
- */
-#define DP_C_BIT 0x8000
-
-typedef struct {
- u_short bitmapw; /* width of bitmap */
- u_short meml; /* btb mem address low part */
- u_short memh; /* btb mem address high part */
- u_short bppss; /* bpp, start and stop fields */
- u_short fetchcnt; /* fetch count */
- u_short flags; /* various flags */
-} TILEDESC;
-
-
-/*
- * Macros for encoding addresses for strip headers & tile descriptors.
- * addr786 is relative to the start of the Blit's mapped memory.
- */
-
-#define DP_ADDRLOW(addr786) (((int)(addr786)) & 0xffff)
-#define DP_ADDRHIGH(addr786) ((((int)(addr786)) >> 16) & 0x3f)
-
-
-/*
- * Byte offsets to useful data words within the EPROM.
- */
-
-#define EP_MAGIC1 0
-#define EP_MAGIC1_VAL 0x7856
-#define EP_MAGIC2 2
-#define EP_MAGIC2_VAL 0x6587
-#define EP_DPSTART 4 /* start of DP ctl block */
- /* (0 = start of EPROM) */
-#define EP_DPLEN 6 /* byte length of DP control block */
-
-#define EP_FONTSTART 8 /* start of font */
- /* (0 = start of EPROM) */
-#define EP_FONTLEN 10 /* byte length of font */
-#define EP_CHARWIDTH 12 /* bit width of each char in font */
-#define EP_CHARHEIGHT 14
-#define EP_NUMCHARS 16 /* num chars in font */
-
-/* where in the bitmap the 25x80 console screen starts */
-#define EP_XSTART 18
-#define EP_YSTART 20
-
-#define EP_SCREENWIDTH 22 /* pixels per scan line */
-#define EP_SCREENHEIGHT 24 /* number of scan lines */
-
-#define EP_FIXUP_X 26 /* magic numbers for displaying */
-#define EP_FIXUP_Y 28 /* hardware cursor */
-
-#define EP_BPP 30 /* bits per pixel */
-
-
-/*
- * Miscellaneous.
- */
-
-#define BLIT_BLACK_BIT 0 /* try saying that 3 times fast */
-#define BLIT_WHITE_BIT 1
-#define BLIT_BLACK_BYTE 0
-#define BLIT_WHITE_BYTE 0xff
-
-
-#endif /* blitreg_DEFINED */