|
|
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 b
Length: 2741 (0xab5)
Types: TextFile
Names: »bitblt_aed.h«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
└─⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z«
└─⟦2109abc41⟧
└─⟦this⟧ »./X.V10R4/libibm/bitblt/bitblt_aed.h«
/* $Header: bitblt_aed.h,v 10.1 86/11/19 10:51:37 jg Exp $ */
/* aed.h - Defines and macros needed to support AED
*
* 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 AED_BM_ADDR 0xEF100000
#define AED_WIDTH 1024
#define AED_HEIGHT 800
#define AED_BM_SIZE (((((AED_WIDTH/8) * AED_HEIGHT) + 2047) / 2048) * 2048)
#define AED_COLOR ((int *)(AED_BM_ADDR + AED_BM_SIZE + 0))
#define AED_CMDQ_SEMA (*((int *)(AED_BM_ADDR + AED_BM_SIZE + 4)))
#define AED_CMDQ_INDEX (*((int *)(AED_BM_ADDR + AED_BM_SIZE + 8)))
#define AED_CMDQ ((struct aed_cmd *)(AED_BM_ADDR + AED_BM_SIZE + 128))
#define AED_CMD_SIZE 64 /* size of a command on queue */
#define AED_MAX_CMDS ((2048 - 128) / AED_CMD_SIZE)
/*
* Types of aed commands
*/
#define AED_ECHO_RECT 1
#define AED_DRAW_LINE 2
#define AED_SCREEN_COPY 3
/*
* echo a rectangle from the simulated bitmap to the display.
*/
struct aed_echo_rect {
short origin_y;
short origin_x;
short corner_y;
short corner_x;
};
/*
* draw a line
*/
struct aed_draw_line {
short from_x;
short from_y;
short to_x;
short to_y;
short rule;
short width;
short color;
u_short pat;
short patlen;
short top;
short left;
short bottom;
short right;
};
/*
* screen to screen copy
*/
struct aed_screen_copy {
short from_x;
short from_y;
short to_x;
short to_y;
short width;
short height;
short rule;
};
/*
* AED command struct
*/
struct aed_cmd {
long cmd;
union cmd_block {
struct aed_echo_rect echo_rect;
struct aed_draw_line draw_line;
struct aed_screen_copy screen_copy;
} aed_cmd_block;
char padding[AED_CMD_SIZE - sizeof(long) - sizeof(union cmd_block)];
};
#define ECHO_RECT aed_cmd_block.echo_rect
#define SCREEN_COPY aed_cmd_block.screen_copy
#define DRAW_LINE aed_cmd_block.draw_line
/*
* map bltter combination rule to AED combination rule
*/
static u_char aed_rules[16] = {
0, 8, 4, 12, 2, 10, 6, 14,
1, 9, 5, 13, 3, 11, 7, 15,
};
#define AED_RULE(x_rule) (((u_short)aed_rules[x_rule]) & 0x0F)