This is fb.h in view mode; [Download] [Up]
/*
* fbreg.h - Register and other definitions for Grinnell FB.
*
* Author: Spencer W. Thomas
* Computer Science Dept.
* University of Utah
* Date: Tue Dec 20 1983
* Copyright (c) 1983 Spencer W. Thomas
*
* $Header: fbreg.h,v 1.1 84/01/05 15:58:56 thomas Exp $
* $Log: fbreg.h,v $
* Revision 1.1 84/01/05 15:58:56 thomas
* Initial revision
*
*/
#ifndef GRINNELL_H /* only once */
#define GRINNELL_H
#ifdef KERNEL
struct fbdevice
{
short drwc; /* DR11 word count */
u_short drba; /* DR11 buffer address */
short drst; /* DR11 status register */
short drdb; /* not used */
};
/* various defines */
#define FBPRI (NZERO + 1) /* sleep priority */
#define FBTOUT 600 /* 10 sec timeout */
/* DR11 control bits */
#define GO 01
#define FNCT1 02
#define INT_ENAB 0100
#define READY 0200
#define ATTN 020000
#define NEX 040000
#define ERROR 0100000
/* Frame buffer status register interpretation string */
#define FBSTAT "\020\020ERROR\017NEX\016ATTN\010READY\07IE\02F1\01GO"
#define FBADDR(unit) ((struct fbdevice *)fbinfo[unit]->ui_addr)
/* transmission modes */
#define READ INT_ENAB | FNCT1 | GO /* cpu <- fb */
#define WRITE INT_ENAB | GO /* cpu -> fb */
#endif KERNEL
/*
definitions of basic frame buffer instructions
*/
#define WriteImageData (short)0000000
#define LoadSubchannelMask (short)0010000
#define WriteGraphicData (short)0020000
#define Text (short)0022000
#define LoadWriteMode (short)0024000
#define Background (short)0200 /* Reverse Background Bit */
#define Additive (short)0100 /* Additive Characters/Graphic Data */
#define ZBit (short)040 /* the "Z-Bit" */
#define VectorMode (short)020 /* Vector Mode Bit */
#define ModeHeight (short)010
#define ModeWidth (short)04
#define CursPos (short)02 /* if on, position at A+B, else at A */
#define CursOn (short)01 /* Cursor visible or not */
#define LoadUpdateMode (short)0026000
#define ElementUpdate (short)0/* shift for E1E0 bits */
#define LineUpdate 2 /* shift for L1L0 bits */
#define ScrUpdate 4 /* shift for S1S0 bits */
#define A_no_change (short)0/* Ea or La remains unchanged */
#define A_C 1 /* Ea or La gets Ec or Lc */
#define A_AB 2 /* Ea (La) gets Ea+Eb (La+Lb) */
#define A_AC 3 /* Ea (La) gets Ea+Ec (La+Lc) */
#define NoScroll (short)0/* no scrolling */
#define ScrollHome 1 /* scroll to home position */
#define ScrollDown 2
#define ScrollUp 3
#define Erase (short)0030000
#define EraseLine (short)0032000
#define SpecialLocationUpdate (short)0034000
#define ExecuteGraphicWrite (short)0036000
#define GoWrite (short)0002000
#define LoadElement (short)0040000
#define LoadLine (short)0060000
#define LoadRelative (short)0000000
#define LoadARegisters (short)0004000
#define LoadBRegisters (short)0010000
#define LoadCregisters (short)0014000
#define LoadEaRelative (short)0040000
#define LoadEA (short)0044000
#define LoadEB (short)0050000
#define LoadEC (short)0054000
#define LoadLaRelative (short)0060000
#define LoadLA (short)0064000
#define LoadLB (short)0070000
#define LoadLC (short)0074000
#define LoadDisplayChannels (short)0100000
#define SelectPeripheralDevice (short)0120000
#define Digitizer (short)01
#define VideoControl (short)020 /* Video Configuration */
#define ColorMap (short)040 /* Bit 5 */
#define SelectRedMap (short)0
#define SelectGreenMap (short)02000
#define SelectBlueMap (short)04000
#define SelectWriteAll (short)06000
#define Zoom (short)0200 /* Zoom and Pan card (Bit 7) */
#define ZoomOn (short)010 /* Enable Zoom and Pan */
#define ZcursOn (short)040 /* Zoom cursor visible or not */
#define ZcBlink (short)020 /* Blink Zoom cursor or not */
#define Zwrap (short)04 /* Wrap or Clip */
#define Zfactor1 (short)0/* times one */
#define Zfactor2 (short)1/* times two */
#define Zfactor4 (short)2/* times four */
#define Zfactor8 (short)3/* times eight */
#define MemReadback (short)0400 /* Memory Readback */
#define ByteUnpacker (short)01000
#define UnpackText (short)07000 /* Text and bit 9. */
#define UnpackGraphicData (short)05000 /* Graphic Data and bit 9. */
#define UnpackImageData (short)03000 /* Image Data and bit 9. */
#define IntTest (short)04000 /* Internal Tests */
#define LoadPAddress (short)0130000
#define LoadPRegister (short)0140000
#define PRegShift 9 /* shift to Peripheral
Register Field */
#define LoadPData (short)0150000
#define ReadbackPData (short)0160000
#define NoOperation (short)0170000
#define BUG 1
/* bug exists which eats 2nd
word of some transfers */
#define ZBUGy 4
/* bug exists where Zoom Cursor
is 4 pixels above mark. */
#ifndef KERNEL
/* TAG( fd_file )
*
* Display file structure as used by Fdstart, Fddraw, etc.
*/
struct fd_file { /* definition of display file structure */
int fd_len; /* length used */
int fd_abs_rel; /* absolute/relative flag */
int fd_x; /* final x position */
int fd_y; /* final y position */
short fd_list[1]; /* actual display file */
};
#endif KERNEL
/* Definition of IOCTL codes */
#define FBGETBOX _IOW(F,0,struct fb_getbox)
/* Structure used by FBGETBOX ioctl */
struct fb_getbox {
short xmin, xmax,
ymin, ymax,
xfreq, yfreq;
short *buf;
int n;
};
#endif GRINNELL_H
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.