<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Fri, 14 Dec 2001 13:27:41 -0000
From   : "Richard Gellman" <r.gellman@...>
Subject: Re: International fonts & mode 7

First of all, the definitive on Mode 7/SAA505X
>From the datasheet no less...
There are no registers on the SAA5050 that can be programmed. Only its
internal counters, etc.

The Chip numbers are as follows:
Chip   Character Set
5050   English
5051   German
5052   Swedish
5053   Italian
5054   Belgian
5055   US ASCII
5056   Hebrew
5057   Cyrillic

As far as I can tell, the foreign chips just had different symbols used in
the normal character range 32-127.

The resolution was internally fixed at 6 pixels by 10 pixels for
alphanumeric characters.
All processed character codes were 7-bit (0-127), codes 128-255 being
duplicates of 0-127.
The graphics characters were "2" by "3" "blocks". each block is 3 pixels
wide, the top and
bottom block rows are 3 pixels high, and the middle row blocks are 4 pixels
high 3+3+4=10.
In separated graphics mode, the bottom row and right hand column of pixels
in each block is
set to background colour.

The resolution is doubled both horizontally and vertically by the use of
character rounding dots.
These dots are NOT hard coded into the chip, and are added at display time
by a diagonal detection
circuit which detected two pixels in a "2 on a dice" arrangement, and
inserted the "half-pixels"
in between them. In double height mode, the half pixels were not doubled in
height. This effectively
increases the resolution to 12x20.
On the 6x10 grid, the right-most pixel and bottom-most pixel in alphanumeric
mode are set to the
current background colour, to space out the characters, giving a used
alphanumeric resolution of 5x9
(no alphanumeric pixels went outside of this grid).
Character rounding can be disabled by deasserting the CRS pin. (which is
tied asserted on the bbc micros).

The bbc micro displays these extra half pixels by switching to interlace and
sync mode, which doubles
the visible vertical resolution, causing the bbc-micro's mode7 outputted
resolution to be 480x500.
This is not a 4:3 ratio as per the 1280x1024 (os-pixels) resolution of modes
0-5 (not 3). And causes
the mode 7 screen to appear horizontally squashed (like a widescreen picture
on its side).

The trick discussed previously on this list which effectively disabled the
character rounding worked
by switching back to video mode, and adjusting the lines per character
register so that the half-pixel
lines were effectively ignored.

All of this is fully supported (except the foreign chips) in BeebEm 1.4 :)

Joel Rowbottom wrote:

>Mind, it would be nice to be able to tie an emulator serial port to a
>socket, so that I could log into ccl4 on an emulator...

I have in mind a BeebEm plugin (post 1.4) that will connect the serial port
to an address via telnet.

Enjoy :)

-- Richard Gellman

<Serious bit>
This email is sent to you as personal communication or to a specific mailing
list ONLY, and does not contain any form of comercial advertsing (spam). By
replying to this email you legally agree that you will honour this in a
similar fashion, and you will not send any commercial email to this email
address, or subscribe this email address to any mailing list without prior
permission. Failure to adhere to this may result in criminal prosecution
under the misuse of information laws applicable in all countries.
<end of serious bit>
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>