amidisplaycc.c:
Add screen types suitable for PAL displays, and fix typos in older screen type names; reported by Gunther Nikl. amidisplay.4: Document the new screen types and add some misc information.
This commit is contained in:
parent
3f581624a0
commit
79eacc067d
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: amidisplaycc.4,v 1.7 2002/03/13 21:44:48 wiz Exp $
|
||||
.\" $NetBSD: amidisplaycc.4,v 1.8 2003/11/12 17:42:40 jandberg Exp $
|
||||
.Dd February 4, 2002
|
||||
.Dt AMIDISPLAYCC 4 amiga
|
||||
.Sh NAME
|
||||
|
@ -15,10 +15,11 @@ It exports the internal
|
|||
.Xr wsdisplay 4
|
||||
interface and contains the necessary rendering functions to
|
||||
operate a text terminal with virtual screens. It uses the
|
||||
Amiga abstract graphic driver functions for the low-level
|
||||
Amiga abstract graphic driver (grfabs) functions for the low-level
|
||||
display management.
|
||||
.Pp
|
||||
Currently it does not support running X. You can still run
|
||||
Currently it does not support running X.
|
||||
It can however coexist well enough with grf0 to make possible running
|
||||
X the old way, but be warned, you cannot switch screens while
|
||||
in X and when quitting it, it seems to hang. Switching a screen
|
||||
then will bring up the text console. As always, we apologise for
|
||||
|
@ -26,27 +27,45 @@ the inconvenience.
|
|||
.Pp
|
||||
What it does support is hilite (bold), underline, reverse and
|
||||
foreground/background colors.
|
||||
.Ss Virtual terminals and screen types
|
||||
.Pp
|
||||
The number of virtual screens is limited only by
|
||||
the available chip memory.
|
||||
Each virtual screen can have a different display mode.
|
||||
A display mode defines the following things: height and width
|
||||
in pixels, number of colors, and the size of the font.
|
||||
The predefined modes are listed below.
|
||||
.Pp
|
||||
Each virtual screen can have a different screen type.
|
||||
A screen type defines the following things: height and width
|
||||
in pixels, number of colors, and font size.
|
||||
The supported screen types are listed below.
|
||||
.Bl -bullet -offset indent -compact
|
||||
.It
|
||||
80x64 - display size 640x512 with 8 colors, font size 8x8
|
||||
.It
|
||||
80x51 - display size 640x510 with 8 colors, font size 8x10
|
||||
.It
|
||||
80x50 - display size 640x400 with 8 colors, font size 8x8
|
||||
.It
|
||||
80x40 - display size 640x400 with 8 colors, font size 8x10
|
||||
.It
|
||||
80x32 - display size 640x512 with 8 colors, font size 8x16
|
||||
.It
|
||||
80x31 - display size 640x248 with 8 colors, font size 8x8
|
||||
.It
|
||||
80x25 - display size 640x400 with 8 colors, font size 8x16
|
||||
.It
|
||||
80x24 - display size 640x384 with 8 colors, font size 8x16
|
||||
80x24 - display size 640x192 with 8 colors, font size 8x8
|
||||
.It
|
||||
default - same as either 80x64 or 80x50, depending on the presence
|
||||
of GRF_NTSC and GRF_PAL in the kernel configuration.
|
||||
.El
|
||||
.Pp
|
||||
Fonts of width 8 are supported. Fonts can be compiled into the kernel
|
||||
by specifying "options FONT_[fontname]" in the configuration file,
|
||||
or loaded with the
|
||||
The grfabs code determines the actual screen mode that is used.
|
||||
The config options GRF_NTSC, GRF_PAL, GRF_AGA, etc. determine
|
||||
what kind of chipsets/modes are available.
|
||||
.Ss Fonts
|
||||
.Pp
|
||||
Fonts of width 8 and any height are supported.
|
||||
Fonts can be compiled into the kernel by specifying "options FONT_[fontname]"
|
||||
in the configuration file, or loaded with the
|
||||
.Xr wsfontload 8
|
||||
utility runtime.
|
||||
.Sh SEE ALSO
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: amidisplaycc.c,v 1.13 2003/11/12 17:26:36 jandberg Exp $ */
|
||||
/* $NetBSD: amidisplaycc.c,v 1.14 2003/11/12 17:42:40 jandberg Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2000 Jukka Andberg.
|
||||
|
@ -28,7 +28,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: amidisplaycc.c,v 1.13 2003/11/12 17:26:36 jandberg Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: amidisplaycc.c,v 1.14 2003/11/12 17:42:40 jandberg Exp $");
|
||||
|
||||
/*
|
||||
* wscons interface to amiga custom chips. Contains the necessary functions
|
||||
|
@ -71,7 +71,6 @@ __KERNEL_RCSID(0, "$NetBSD: amidisplaycc.c,v 1.13 2003/11/12 17:26:36 jandberg E
|
|||
/* These can be lowered if you are sure you dont need that much colors. */
|
||||
#define MAXDEPTH 8
|
||||
#define MAXROWS 128
|
||||
#define MAXCOLUMNS 80
|
||||
|
||||
#define ADJUSTCOLORS
|
||||
|
||||
|
@ -190,7 +189,6 @@ const struct wsdisplay_emulops amidisplaycc_emulops = {
|
|||
struct amidisplaycc_screen_descr {
|
||||
struct wsscreen_descr wsdescr;
|
||||
int depth;
|
||||
char name[16];
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -208,20 +206,38 @@ struct amidisplaycc_screen_descr {
|
|||
WSSCREEN_HILIT | WSSCREEN_UNDERLINE }, \
|
||||
depth }
|
||||
|
||||
/*
|
||||
* Screen types.
|
||||
*
|
||||
* The first in list is used for the console screen.
|
||||
* A suitable screen mode is guessed for it by looking
|
||||
* at the GRF_* options.
|
||||
*/
|
||||
struct amidisplaycc_screen_descr amidisplaycc_screentab[] = {
|
||||
/* name, width, height, depth, fontwidth==8, fontheight */
|
||||
|
||||
#if defined(GRF_PAL) && !defined(GRF_NTSC)
|
||||
ADCC_SCREEN("default", 640, 512, 3, 8, 8),
|
||||
#else
|
||||
ADCC_SCREEN("default", 640, 400, 3, 8, 8),
|
||||
#endif
|
||||
ADCC_SCREEN("80x50", 640, 400, 3, 8, 8),
|
||||
ADCC_SCREEN("80x40", 640, 400, 3, 8, 10),
|
||||
ADCC_SCREEN("80x25", 640, 400, 3, 8, 16),
|
||||
ADCC_SCREEN("80x24", 640, 384, 3, 8, 16),
|
||||
ADCC_SCREEN("80x24", 640, 192, 3, 8, 8),
|
||||
|
||||
ADCC_SCREEN("80x64", 640, 512, 3, 8, 8),
|
||||
ADCC_SCREEN("80x51", 640, 510, 3, 8, 10),
|
||||
ADCC_SCREEN("80x32", 640, 512, 3, 8, 16),
|
||||
ADCC_SCREEN("80x31", 640, 248, 3, 8, 8),
|
||||
|
||||
ADCC_SCREEN("640x400x1", 640, 400, 1, 8, 8),
|
||||
ADCC_SCREEN("640x400x2", 640, 400, 2, 8, 8),
|
||||
ADCC_SCREEN("640x400x3", 640, 400, 3, 8, 8),
|
||||
|
||||
ADCC_SCREEN("640x200x1", 640, 200, 1, 8, 8),
|
||||
ADCC_SCREEN("640x200x1", 640, 200, 2, 8, 8),
|
||||
ADCC_SCREEN("640x200x1", 640, 200, 3, 8, 8),
|
||||
ADCC_SCREEN("640x200x2", 640, 200, 2, 8, 8),
|
||||
ADCC_SCREEN("640x200x3", 640, 200, 3, 8, 8),
|
||||
};
|
||||
|
||||
#define ADCC_SCREENPTR(index) &amidisplaycc_screentab[index].wsdescr
|
||||
|
@ -236,6 +252,11 @@ const struct wsscreen_descr *amidisplaycc_screens[] = {
|
|||
ADCC_SCREENPTR(7),
|
||||
ADCC_SCREENPTR(8),
|
||||
ADCC_SCREENPTR(9),
|
||||
ADCC_SCREENPTR(10),
|
||||
ADCC_SCREENPTR(11),
|
||||
ADCC_SCREENPTR(12),
|
||||
ADCC_SCREENPTR(13),
|
||||
ADCC_SCREENPTR(14),
|
||||
};
|
||||
|
||||
#define NELEMS(arr) (sizeof(arr)/sizeof((arr)[0]))
|
||||
|
@ -460,8 +481,10 @@ amidisplaycc_attach(struct device *pdp, struct device *dp, void *auxp)
|
|||
*/
|
||||
adp->gfxview = NULL;
|
||||
adp->gfxon = 0;
|
||||
adp->gfxwidth = 640;
|
||||
adp->gfxheight = 480;
|
||||
adp->gfxwidth = amidisplaycc_screentab[0].wsdescr.ncols *
|
||||
amidisplaycc_screentab[0].wsdescr.fontwidth;
|
||||
adp->gfxheight = amidisplaycc_screentab[0].wsdescr.nrows *
|
||||
amidisplaycc_screentab[0].wsdescr.fontheight;
|
||||
|
||||
if (aga_enable)
|
||||
adp->gfxdepth = 8;
|
||||
|
|
Loading…
Reference in New Issue