basically, the asciimatrix turns the zaurus into a kind of "old-scool" ascii terminal, that connects to the "mainframe" via opensondcontrol:
any input to the zaurus, like key events or touchscreen actions are transmitted via osc to the server. the server responds by printing arbitrary blocks of ascii-characters to the screen of the zaurus, also via osc.
in order to make printing to the screen convenient and flexible, the asciimatrix understands a comprehensive set of named arguments to the basic print message. asciimatrix uses a keyword argument parser for osc messages similar to the syntax of lisp keyword argument expressions.
since the asciimatrix supports 24bit color for text and background, it is easy to compose a huge variety of multicolored gui-objects in the style of classic ascii-art.
the asciimatrix runs as a normal program on the original zaurus' qtopia os.
asciimatrix is open source software released under the terms of the gnu general public license.
on the sharp zaurus, go to settings > software and create a server with the url http://asciimatrix.rumori.de. install both packages shown, asciimatrix and liblo.
for developing or prototyping ascii guis, asciimatrix can be installed using the virtual framebuffer emulation, which makes the program appear nearly the same as on the zaurus.
asciimatrix can also be compiled for the linux desktop (x display), refer to the source code distribution for further details.
asciimatrix-0.0.4.tar.gz source tarball
asciimatrix_0.0.4_arm.ipk zaurus package
liblo_0.23.0_arm.ipk zaurus package of liblo 0.23 (http://liblo.sf.net)
am-abs-0.0.5.tar.gz asciimatrix abstractions for pd
osc_protocol.txt asciimatrix osc interface description
lo_parse_keyargs.h lo_parse_keyargs.c generic keyword argument parser for liblo, could be easily used outside asciimatrix (see oscreceive.cpp in the source distribution of asciimatrix for an example how to use it)
asciimatrix-0.0.4_x86_precompiled_for_opt.tar.gz binary distribution for the virtual framebuffer in conjunction with qtopia-free (see below)
qtopia-free-1.5.0-1.i386.rpm qtopia-free_1.5.0-2_i386.deb qtopia-free distribution for x86. find the source code at http://www.trolltech.com
startqpe.sh start script for qpe in the virtual framebuffer
/am/print : print to screen (or simply: "/am" is also working)
understands keyword arguments: (defaults in {})
:cmd print, del, delblock, fill, mark, unmark {print}
:s string to be printed/filled/deleted {""}
:l startline {1}
:c startcolumn {1}
:ln number of lines {until last}
:cn number of columns {until last}
:subst substitute by char, rand (random), space (space) {no subst}
:wrap currently only no, yes (0, 1) [no, hard, soft (0, 1, 2)] {0}
:fill start from beginning if :s is done no, yes (0, 1) {0}
:scroll scroll if outside screen no, yes (0, 1) {0}
:color text color (0-16) (r, g, b[, a]) {1 = 255 255 255} (white)
:back background color (0-16) (r, g, b[, a]) {0 = 0 0 0} (black)
:mark no, yes (0, 1) swap color/back semantics {0}
:delmode no, lines, allines, block, entblock (0, 1, 3, 4, 12) {no}
convenient commands, which alter default values (if not overridden):
:cmd del - enables :subst ' ' :wrap hard
:cmd delblock - enables :subst ' ' :delmode entblock
:cmd fill - enables :fill yes :wrap hard
:cmd mark - enables :mark :fill yes
:cmd unmark - enables :fill yes
:cmd scroll - enables :scroll, :l = last, :cn = 1
/am/scroll : scroll screen
understands keyword arguments: (defaults in {})
:ln scroll ln lines {1}
:cyclic don't delete lines but append to other end no, yes (0, 1)
{no}
:up scroll up instead of down no, yes (0, 1) {no}
/am/config : configure asciimatrix
understands keyword arguments: (defaults in {})
:server send osc messages to server {leave as is}
:serverport send to port on :server {leave as is}
(:listenport listen to port {leave as is}) <- currently not
working
:oscprefix send all osc-commands prepended by /oscprefix/ {don't
change}
other commands understood:
/am/getfontsizes | request availabe font sizes list (yields strange results at the moment) |
|
/am/setfontsize <points> | set font size in points | |
/am/getscreenprops | request current screen properties | |
/am/openconfig | open config dialog in asciimatrix | |
/am/quit | quit asciimatrix |
asciimatrix sends:
/am/screenprops <x> <y> <l> <c> <xc> <yc> | x-pixels, y-pixels, lines, columns, x-pixels per character, y-pixels per character sent on startup and after sending /am/setfontsize and /am/getscreenprops | |
/am/fontsizes <points> ... | availabe fixed font sizes in points | |
/am/mouse/mov <x> <y> <l> <c> | mouse coords (moved) | |
/am/mouse/prs <x> <y> <l> <c> | mouse coords (pressed) | |
/am/mouse/rel <x> <y> <l> <c> | mouse coords (released) | |
/am/mouse/dbc <x> <y> <l> <c> | mouse coords (doubleclicked) | |
/am/key/prs <keycode> <ascii> | key pressed (keycode, ascii if codable) | |
/am/key/rel <keycode> <ascii> | key released (keycode, ascii if codable) |