/* * Copyright (c) 2007, Takahide Matsutsuka. * 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. The name of the author may not be used to endorse or promote * products derived from this software without specific prior * written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 THE AUTHOR 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. * * $Id: libconio_z80.h,v 1.1 2007/09/19 12:48:26 matsutsuka Exp $ * */ /* * \file * Arcitecture-depend libconio module, which supposes * the machine has character VRAM and optional attribute VRAM * on the main memory. * \author * Takahide Matsutsuka */ #ifndef __LIBCONIO_ARCH_H__ #define __LIBCONIO_ARCH_H__ #ifndef LIBCONIO_VRAM_CHAR #error "must specify vram address for characters!" #endif /* LIBCONIO_VRAM_CHAR */ #ifdef LIBCONIO_CONF_ATTRIBUTES_ENABLED #ifndef LIBCONIO_VRAM_ATTR #error "must specify vram address for attributes!" #endif /* LIBCONIO_VRAM_ATTR */ #endif /* LIBCONIO_CONF_ATTRIBUTES_ENABLED */ #ifndef LIBCONIO_CONF_SCREEN_WIDTH #define LIBCONIO_CONF_SCREEN_WIDTH 32 #endif /* LIBCONIO_CONF_SCREEN_WIDTH */ #ifndef LIBCONIO_CONF_SCREEN_HEIGHT #define LIBCONIO_CONF_SCREEN_HEIGHT 16 #endif /* LIBCONIO_CONF_SCREEN_HEIGHT */ #ifndef LIBCONIO_COLOR_REVERSED #define LIBCONIO_COLOR_REVERSED 0x21 #endif /* LIBCONIO_COLOR_REVERSED */ #ifndef LIBCONIO_COLOR_NORMAL #define LIBCONIO_COLOR_NORMAL 0x20 #endif /* LIBCONIO_COLOR_NORMAL */ /* * An offset caluclation logic. * The default supposes the VRAM is sequential */ #ifndef LIBCONIO_VRAM_OFFSET #define LIBCONIO_VRAM_OFFSET(x, y) (y) * LIBCONIO_CONF_SCREEN_WIDTH + (x) #endif /* VRAM_OFFSET */ /* * A maximum offset + 1. * If offset is equal or more than this maximum, the screen will scroll. */ #ifndef LIBCONIO_VRAM_OFFSET_MAX #define LIBCONIO_VRAM_OFFSET_MAX \ (LIBCONIO_CONF_SCREEN_HEIGHT * LIBCONIO_CONF_SCREEN_WIDTH) #endif /* VRAM_MAX */ #endif /* __LIBCONIO_ARCH_H__ */