This section describe framebuffer options on Atari platforms
Table 2. Atari modes
| Depth | 320x200 | 320x480 | 640x200 | 640x400 | 640x480 | 896x608 | 1280x960 |
|---|---|---|---|---|---|---|---|
| 1 bit | sthigh | vga2 | falh2 | tthigh | |||
| 2 bits | stmid | vga4 | |||||
| 4 bits | stlow | ttmid/vga16 | falh16 | ||||
| 8 bits | ttlow | vga256 |
ttlow, ttmid and ttmhigh are only used on the TT, whilst vga2, vga4, vga16, vga256, falh3 and falh16 are only used on the Falcon.
When used with the kernel option
video=xxx, and no
suboption is given, the kernel will
probe for the modes in the following
order until it finds a mode that is
possible with the given
hardware:
ttmidtthighvga16sthighstmid
You may specify the particular mode you
wish to use, if you don't wish to
auto-probe for the modes you desire.
For example, video=vga16
gives you a 4 bit 640x480
display.
There are a number of suboptions
available with the
video=xxx
parameter:
inverse- inverts the display so that the background/foreground colours are reversed. Normally the background is black, but with this suboption, it gets sets to white.font- sets the font to use in text modes. Currently you can only selectVGA8x8,VGA8x16,PEARL8x8. The default is to use theVGA8x8only if the vertical size of the display is less than 400 pixels, otherwise it defaults toVGA8x16.internal- a very interesting option. See the next section for information.external- as above.monitorcap- describes the capabilities for multisyncs. DON'T use with a fixed sync monitor!
Syntax:
internal:(xres);(yres)[;(xres_max);(yres_max);(offset)]
This option specifies the
capabilities of some extended
internal video hardware, i.e
OverScan modes.
(xres) and
(yres) gives the
extended dimensions of the
screen.
If your OverScan mode needs a
black border, you'll need to
write the last three arguments
of the internal:
suboption.
(xres_max) is the
maximum line length that the
hardware allows,
(yres_max) is the
maximum number of lines, and
(offset) is the
offset of the visible part of
the screen memory to its
physical start, in
bytes.
Often extended internal video
hardware has to be activated,
for this you will need the
"switches=*"
options. [Note: Author would
like extra information on this,
please. The m68k documentation
in the kernel isn't clear
enough on this point, and he
doesn't have an Atari! Examples
would be helpful too]
Syntax:
external:(xres);(yres);(depth);(org);(scrmem)[;(scrlen)[;(vgabase)[;(colw)[;(coltype)[;(xres_virtual)]]]]]
This is quite complicated, so this document will attempt to explain as clearly as possible, but the Author would appreciate if someone would give this a look over and see that he hasn't fscked something up! :o)
This suboption specifies that you have an external video hardware (most likely a graphic board), and how to use it with Linux. The kernel is basically limited to what it knows of the internal video hardware, so you have to supply the parameters it needs in order to be able to use external video hardware. There are two limitations; you must switch to that mode before booting, and once booted, you can't change modes.
The first three parameters are obvious; gives the dimensions of the screen as pixel height, width and depth. The depth supplied should be the number of colours is 2^n that of the number of planes required. For example, if you desire to use a 256 colour display, then you need to give 8 as the depth. This depends on the external graphic hardware, though so you will be limited by what the hardware can do.
Following from this, you also
need to tell the kernel how the
video memory is organised -
supply a letter as the
(org)
parameter
n- use normal planes, i.e one whole plane after anotheri- use interleaved planes, i.e. 16 bits of the first plane, then the 16 bits of the next plane and so on. Only built-in Atari video modes uses this - and there are no graphic card that supports this mode.p- use packed pixels, i.e consecutive bits stands for all planes for a pixel. This is the most common mode for 256 colour displays on graphic cards.t- use true colour, i.e this is actually packed pixels, but does not require a colour lookup table like what other packed pixel modes uses. These modes are normally 24 bit displays, and provides 16.8 million colours.
However, for
monochrome modes, the
(org) parameter
has a different meaning:
n- use normal colours, i.e. 0 = white, 1 = blacki- use inverted colours, i.e. 0 = black, 1 = white
The next important item about the
video hardware is the base
address of the video memory.
That is given by the
(scrmem) parameter
as a hexadecimal number with an
0x prefix. You
will need to find this out from
the documentation that comes
with your external video
hardware.
The next paramter
(scrlen) tells the
kernel about the size of the
video memory. If it's missing,
this is calculated from the
(xres), and
(depth)
parameters. It's not useful to
write a value here these days
anyway. To leave this empty,
give two consecutive semicolons
if you need to give the
(vgabase)
parameter, otherwise, just
leave it.
The (vgabase)
parameter is optional. If it
isn't given, the kernel can't
read/write any colour registers
of the video hardware, and thus
you have to set up the
appropriate colours before you
boot Linux. But if your card is
VGA compatible, you can give it
the address where it can locate
the VGA register set so it can
change the colour lookup
tables. This information can be
found in your external video
hardware documentation. To make
this
clear,
(vgabase) is the
base address, i.e
a 4k aligned address. For
reading/writing the colour
registers, the kernel uses the
address range between
(vgabase) + 0x3c7 and
(vgabase) + 0x3c9.
This parameter is given in
hexadecimal and must have a
0x prefix, just
like (scrmem).
(colw) is only
meaningful, if the
(vgabase)
parameter is specified. It
tells the kernel how wide each
of the colour register is, i.e
the number of bits per single
colour (red/green/blue).
Default is usually 6 bits, but
it is also common to specify 8
bits.
(xres_virtual) is
only required for the
ProMST/ET4000 cards where the
physical linelength differs
from the visible length. With
ProMST, you need to supply
2048, whilst for ET4000, it
depends on the initialisation
of the video board.
This section describes the options for Amigas, which are quite similar to those of the Atari platform
This depends on the chipset used in the
Amiga. There are three main ones;
OCS, ECS and
AGA which all uses the
colour frame buffers.
NTSC modes
ntsc- 640x200ntsc-lace- 640x400
PAL modes
pal- 640x256pal-lace- 640x512
ECS modes - 2 bit colours on ECS chipsets, 8 bit colours on AGA chipsets only
multiscan- 640x480multiscan-lace- 640x960euro36- 640x200euro36-lace- 640x400euro72- 640x480euro72-lace- 640x800super72- 800x300super72-lace- 800x400dblntsc- 640x200dblpal- 640x256dblntsc-ff- 640x400dblntsc-lace- 640x800dblpal-ff- 640x512dblpal-lace- 640x1024
VGA modes - 2 bit colours on ECS chipsets, 8 bit colours on AGA chipsets
vga- 640x480vga70- 640x400
These are similar to the Atari suboptions. They are:
depth- specifies the pixel bit depthinverse- does the same thing as the Atari suboptionfont- does the same thing as the Atari suboption, although thePEARL8x8font is used instead of theVGA8x8font if the display size is less than 400 pixels wide.monitorcap- specifies the capabilities of the multisync monitor. Do not use with fixed sync monitors
Phase5 CyberVision 64(S3 Trio64 chipset)Phase5 CyberVision 64 3D(S3 ViRGE chipset)MacroSystems Retina Z3(NCR 77C32BLT chipset)Helfrich Piccolo, SD64, GVP ECS Spectrum, Village Tronic Picasso II / II+ and IV(Cirrus Logic GD542x / 543x chipsets)
Currently, the framebuffer device implemented only supports the mode selected in MacOS before booting into Linux, and also supports 1, 2, 4 and 8 bit colours modes.
Framebuffer suboptions are selected using the following syntax:
video=macfb:<font>:<inverse>
You can select fonts such as VGA8x8, VGA8x16 and 6x11 etc. The inverse option allows you to use reverse video.