|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T a
Length: 4022 (0xfb6) Types: TextFile Names: »apa8.h«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z« └─⟦2109abc41⟧ └─⟦this⟧ »./X.V10R4/libibm/libsrc/apa8.h«
/* $Header: apa8.h,v 10.1 86/11/19 10:45:09 jg Exp $ */ /* apa8.h - Definition and macros required to access APA8 * * Defines required to support APA8 * * Author: * Scott Bates * Brown University * IRIS, Box 1946 * Providence, RI 02912 * * * Copyright (c) 1986 Brown University * * 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 appear in all copies, and that both * that copyright notice and this permission notice appear in supporting * documentation, and that the name of Brown University not be used in * advertising or publicity pertaining to distribution of the software * without specific, written prior permission. Brown University makes no * representations about the suitability of this software for any purpose. * It is provided "as-is" without express or implied warranty. */ #define SCREEN_BASE (0xF4D00000) /* base address for screen bitmap */ #define XDEV_ID XDEV_IBMAPA8 /* device id for info structure */ #define REAL_SCREEN_WIDTH 1024 /* number of bits/line for apa8 */ #define REAL_SCREEN_HEIGHT 512 /* Number of lines on apa8 */ #define X_SCREEN_WIDTH 720 /* visible bits/line for apa8 */ #define X_SCREEN_HEIGHT 512 /* visible lines on the screen */ #define SCREEN_DEVICE "/dev/apa8" /* device name */ #define MOUSE_DEVICE "/dev/msapa8" /* device name of mouse for display */ #define CURSOR_TYPE SOFT_CURSOR /* apa8 uses software cursor */ #define DISPLAY_INIT() apa8_init() /* display initialization routine */ /* * Control register (short) */ #define FC 0xF0000160 /* * Data mask registers (2 each 8 bits) */ #define DM 0xF0000162 /* * Display memory for the APA8 */ #define FB SCREEN_BASE /* * bits 0-2 rotate count */ #define DCR_ROTMASK 0x0007 /* * bits 3-5 logic unit function control */ #define DCR_FCMASK 0x0038 #define DCR_FCOR 0x0028 #define DCR_FCNOR 0x0038 #define DCR_FCPA 0x0010 #define DCR_FCPB 0x0000 #define DCR_FCPNA 0x0030 #define DCR_FCPNB 0x0020 #define DEFAULT_FUNC DCR_FCPNB #define HIDDEN_FUNC DCR_FCPA #define RDWR_FUNC DCR_FCPA /* * 8-9 memory mode */ #define DCR_MEMMODE 0x0300 #define DCR_SWR 0x0000 #define DCR_ISWR 0x0100 #define DCR_ADWR 0x0200 #define DCR_AURW 0x0300 /* * 10 inc/dec of the address counter */ #define DCR_DEC 0x0400 #define DCR_INC ~0x0400 /* * 11 x/y stepping */ #define DCR_X 0x0800 #define DCR_Y ~0x0800 /* * 12 1 means block transfer */ #define DCR_BT 0x1000 /* * 13 1 means interrupt enable */ #define DCR_IEN 0x2000 /* * 14 1 means Sync enable */ #define DCR_SEN 0x4000 /* * 15 1 means Video enable */ #define DCR_VEN 0x8000 /* * Data Mask Register masks (typically are the inverse of each other) */ #define DM_A 0xFF00 #define DM_B 0x00FF #define CLEAR_DM 0x0000 #define DEFAULT_DM DM_B #define HIDDEN_DM DM_A #define RDWR_DM DM_A /* * values for the writemask. */ #define NOMASK 0x0000 #define MASKBYTE2 0x00FF #define MASKBYTE1 0xFF00 /* * Bitmap to BUS address offsets. All address offsets in the bitmap area * must be multiplied by 2 before being used as BUS offsets. */ #define BM_TO_BUS(n) ((n) << 1) /* * The physical bitmap addresses on the apa8 adaptor card go * from 0x0000 to 0xFFFF. (the size of a short or word, 16 bits * addresses these spots. */ #define MAXOFFSET 0xFFFF /* * This is defined to be the last scan line in the hidden area. * It is needed because the side affect of setting the writemask * registers is the mask is also written to the bitmap. */ #define WRMASK_SCREEN_BASE \ (*(u_short *)(SCREEN_BASE + BM_TO_BUS(MAXOFFSET - 1))) #define SET_FC(control_info) { \ *(u_short *) FC = (u_short)(control_info); \ } #define SET_WRITEMASK(mask) { \ SET_FC(DCR_SEN | DCR_VEN | DCR_ISWR | DCR_X | DCR_FCOR); \ WRMASK_SCREEN_BASE = (u_short) mask; \ } #define SET_DATAMASK(mask) { \ *(u_short *)DM = (u_short) mask; \ }