Cool

.
Never got the idea to use alternate charset for that.
It looks like you found a variant of what I did for my
STNICCC 2000 demo. It was my first practical use of the method after I discussed it on the newsgroup comp.sys.oric.

The idea is that I set in the HIRES screen the folowing values:
RED INK
GREEN INK
BLUE INK
BLACK INK
RED INK
GREEN INK
BLUE INK
BLACK INK
Repeat 25 times and rince
Then I redefined the character set to get special "matrix" patterns that will intersect the ink attributes on each scanline:
0000 0%
0001 25%
0101 50%
1111 100%
idealy I should have the 75% but we do not have enough usable characters due to the fact that we can redefine only 4 characters every 5 since the 5th is overwritten by HIRES attributes changes.
So then by redefining characters it's possible to get something like:
SETPIXEL(X,Y,RED,GREEN,BLUE)
With RED, GREEN and BLUE being a value between 0 and 3, the ASCII code of the character to use is computed as:
36+RED+GREEN*5+BLUE*5*4
The C routine to redefine charsets:
Code: Select all
char TableDither[4]={0 +64,36+64,54+64,63+64};
void RedefinesChar()
{
char *adress=(char*)0xB400+8*36; // 36
for (char blue=0;blue<4;blue++)
{
char v_blue=TableDither[blue];
for (char green=0;green<4;green++)
{
// Redefines 4 characters...
char v_green=TableDither[green];
for (char red=0;red<4;red++)
{
char v_red=TableDither[red];
*adress++=64;
*adress++=v_red;
*adress++=v_green;
*adress++=v_blue;
*adress++=v_red;
*adress++=v_green;
*adress++=v_blue;
*adress++=64;
}
// ...and skip the 5th
adress+=8;
}
}
}
Really looking forward to anything you'll produce
There are a bit more stuff in this
article.