Hey there!
I started work on a custom consolescreen version, not just optimize it's code a little but also add new features 
After some ideas you gave me I came to the point where we can start testing it ^^
I don't have that much time to test everything right now so it would be kind of some of you could test it, check shifting, clearing, rt screen, pointer (touchscreen) functionality, etc 
I made a svn repo so it's easier to fix errors, add new graphics etc etc
url: https://borsty.dyndns.org:8443/svn/advconsolescreen
name/pw: anonsvn
Video
http://www.youtube.com/watch?v=iZgGgSuL9uEScreenshot:

What can be done with this console screen?
Instead of a single layer of combined background and text color, this screen uses a background layer which only stores color (RG
and two layers of text/icons which has the classical layout Char/Color, Chars are normal ASCII codes from 0 to 128, everything above contains small graphical icons as seen on the screenshot above. The color code for the text layers is (ARG
. Colors work like with the classic consolescreen, 000 would be black, 900 red, 090 green, 009 blue and 999 white.
The text layers also got an alpha value which is 0 for completly invisible to 9 completly visible, don't forget to add a 9 in front of your color code to make it visible 
So every block is 5 memory values big instead of 2.
RT screen:
The screen also supports rendering of the render target for the normal well known RT-Camera.
Touchscreen
Touchscreen functionality have been added but it only works for the owner of the screen. If you read memory address 3065 (Pointer Address) it either returns 540, which means that the owner isn't looking at the screen or something betwen 0 and 539 ( Address = X + Y * 30 )
I will work on this so you can set who is allowed to use the screen's pointer.
Misc
The screen also got a global brightness register ( 0 for everything black, 255 for everything normal ), alpha scale registers for both text layers, overlay registers for both layers to toggle overlay on rt screen areas, check the memory map for addresses!
Memory map:
You'll notice that there's a "buffered" and an "unbuffered" area, the big difference here is that the buffered area only gets applied when the clock register gets triggered ( 0 to 1 ), the remaining unbuffered area gets applied directly!
Code:
** Buffered **
0 - 2699 Image Memory: 5 values per pixel
(Background RGB), (Layer 1 Char), (Layer 1 ARGB), (Layer 2 Char), (Layer 2 ARGB)
Hardware control
2700 - Hardware scale (0)
2701 - Vertical scale (1)
2702 - Horizontal scale (1)
2703 - Screen Brightness (255)
2704 - Hardware Background Color (000)
2705 - Layer 1 Alpha (255)
2706 - Layer 2 Alpha (255)
RT Screen control
2707 - RT Enable
2708 - Start X
2709 - Start Y
2710 - End X
2711 - End Y
2712 - Enable Layer 1 overlay
2713 - Enable Layer 2 overlay
Cursor control:
2714 - Cursor Enabled
2715 - Cursor Blink Rate (0.50)
2716 - Cursor Size (0.25) // Obsolete, I mean... what's it for?
2717 - Cursor Address
2718 - 2749 ** RESERVED **
** Unbuffered **
2750 - 3036 ** UNUSED **
Hardware image control:
3040 - Screen ratio (read only)
3041 - Rotation (0 - 0*, 1 - 90*, 2 - 180*, 3 - 270*)
Shifting control:
3050 - Low shift column
3051 - High shift column
3052 - Low shift row
3053 - High shift row
Control registers:
3060 - Shift columns (number of columns, >0 shift right, <0 shift left)
3061 - Shift rows (number of rows, >0 shift down, <0 shift up)
3062 - Hardware Clear Column (Writing clears column)
3063 - Hardware Clear Row (Writing clears row)
3064 - Hardware Clear Screen
Pointer control:
3065 - Pointer Address (read only) ( owner only )
3066 - Screen got used by player (read only, auto reset)
Clock
3070 - Hardware Reset
3071 - Clock
Please report any errors, misbehaviours or things you don't understand how to use.
With Version 0.6 comes another gate which allows to use the Advanced Consolescreen with normal wires:
Clk is used to put the new char with its params into the right address, Active needs to be 1 to get the chars drawn (just like with the cpu when you print a bigger chunk of text)
So set active to 0, put your text into the screen, set active to 1 and zing! your string or whatever gets drawn.

Changelog
0.7b - 20th September (Rev. 34)
- Added Hi-Speed link to rt camera ( 0: Activate/ Is Activated | 1: Hide/ Is Hidden )
- Fixed some errors in the rt camera stool ( and added checkbox to toggle onscreen monitor )
0.7 - 20th September (Rev.31)
- Added a "Persistant" option to dynamic memory gate to make it save it's data when being duplicated
- Fixed dynamic memory gate
- Fixed duplicator issues with the wrapper and the memory gate
- Fixed small bug in the wired rt camera sent
- Fixed ClearPx(x,y) function in advconlib.c
0.6b - 19th September (Rev. 30)
- Added "GotUsed" output to wrapper gate
0.6 - 27th August (Rev. 26)
- Added Wrapper gate
- Fixed RT Camera being in the wrong STool category
- Fixed some STool strings
- Fixed Screen not drawing wire connections
0.5 - 26th August (Rev. 23)
- Several small bugfixes
- Extended c library
- Added a wired RT camera. It has an "activate" and "hide" input, exactly the same as the original one but instead of using the numpad to activate it it uses a wire input!
0.4 - 26th August (Rev. 20)
- Fixed Screen being not solid to Owner
- Improved touch screen accuracy a lot
- Added RT functions to C lib
0.3 - 25th August (Rev. 9)
- Fixed Cursor blinking
- Added advconlib.c for use with ZC32
0.2 - 24th August
- Fixed Stool
- Removed "ledboard" model from list
- Option "create flat to surface" and "weld" added
0.1 - 24th August
Bookmarks