On Tue, Mar 01, 2011 at 09:46:19AM EST, rusi wrote: > On Mar 1, 6:01 pm, Mark Thomas <m...@thomaszone.com> wrote:
> > I know someone who was involved in creating a language called A+. It > > was invented at Morgan Stanley where they used Sun keyboards and had > > access to many symbols, so the language did have set symbols, math > > symbols, logic symbols etc. Here's a keyboard map including the > > language's symbols (the red characters). > > http://www.aplusdev.org/keyboard.html > > I have no idea if this language is still in use. > > Runs (ok limps) under debian/ubuntu -- see http://packages.debian.org/squeeze/aplus-fsf > My own attempts at improving the scene http://www.emacswiki.org/emacs/AplInDebian > If anyone has any further findings on this, I'd be happy to know. Well.. a couple months back I got to the point where I'd really had it with the anglo-centric verbosity of common programming languages (there are days when even python makes me think of COBOL.. ugh..) and I took a look at A+. At first it looks like something MS (Morgan Stanley..) dumped into the OSS lap fifteen years ago and nobody ever used it or maintained it.. so it takes a bit of digging to make it.. sort of work in current GNU/linux distributions.. especially since it knows nothing about Unicode. Here's the X/A+ map I came up with: // A+ keyboard layout: /usr/share/X11/xkb/symbols/apl // Chris Jones - 18/12/2010 // Enable via: // $ setxkbmap -v 10 apl default partial alphanumeric_keys modifier_keys xkb_symbols "APL" { name[Group1]= "APL"; // Alphanumeric section key <TLDE> { [ grave, asciitilde, 0x010000fe, 0x0100007e ] }; key <AE01> { [ 1, exclam, 0x010000a1, 0x010000e0 ] }; key <AE02> { [ 2, at, 0x010000a2, 0x010000e6 ] }; key <AE03> { [ 3, numbersign, 0x0100003c, 0x010000e7 ] }; key <AE04> { [ 4, dollar, 0x010000a4, 0x010000e8 ] }; key <AE05> { [ 5, percent, 0x0100003d, 0x010000f7 ] }; key <AE06> { [ 6, asciicircum, 0x010000a6, 0x010000f4 ] }; key <AE07> { [ 7, ampersand, 0x0100003e, 0x010000e1 ] }; key <AE08> { [ 8, asterisk, 0x010000a8, 0x010000f0 ] }; key <AE09> { [ 9, parenleft, 0x010000a9, 0x010000b9 ] }; key <AE10> { [ 0, parenright, 0x0100005e, 0x010000b0 ] }; key <AE11> { [ minus, underscore, 0x010000ab, 0x01000021 ] }; key <AE12> { [ equal, plus, 0x010000df, 0x010000ad ] }; key <AD01> { [ q, Q, 0x0100003f, 0x010000bf ] }; key <AD02> { [ w, W, 0x010000d7, Nosymbol ] }; key <AD03> { [ e, E, 0x010000c5, 0x010000e5 ] }; key <AD04> { [ r, R, 0x010000d2, Nosymbol ] }; key <AD05> { [ t, T, 0x0100007e, Nosymbol ] }; key <AD06> { [ y, Y, 0x010000d9, 0x010000b4 ] }; key <AD07> { [ u, U, 0x010000d5, Nosymbol ] }; key <AD08> { [ i, I, 0x010000c9, 0x010000e9 ] }; key <AD09> { [ o, O, 0x010000cf, 0x010000ef ] }; key <AD10> { [ p, P, 0x0100002a, 0x010000b3 ] }; key <AD11> { [ bracketleft, braceleft, 0x010000fb, 0x010000dd ] }; key <AD12> { [ bracketright, braceright, 0x010000fd, 0x010000db ] }; key <AC01> { [ a, A, 0x010000c1, Nosymbol ] }; key <AC02> { [ s, S, 0x010000d3, 0x010000be ] }; key <AC03> { [ d, D, 0x010000c4, Nosymbol ] }; key <AC04> { [ f, F, 0x0100005f, 0x010000bd ] }; key <AC05> { [ g, G, 0x010000c7, 0x010000e7 ] }; key <AC06> { [ h, H, 0x010000c8, 0x010000e8 ] }; key <AC07> { [ j, J, 0x010000ca, 0x010000ea ] }; key <AC08> { [ k, K, 0x01000027, Nosymbol ] }; key <AC09> { [ l, L, 0x010000cc, 0x010000ec ] }; key <AC10> { [ semicolon, colon, 0x010000db, 0x010000bc ] }; key <AC11> { [ apostrophe, quotedbl, 0x010000dd, 0x010000bb ] }; key <AB01> { [ z, Z, 0x010000da, 0x010000fa ] }; key <AB02> { [ x, X, 0x010000d8, Nosymbol ] }; key <AB03> { [ c, C, 0x010000c3, 0x010000e3 ] }; key <AB04> { [ v, V, 0x010000d6, Nosymbol ] }; key <AB05> { [ b, B, 0x010000c2, 0x010000e2 ] }; key <AB06> { [ n, N, 0x010000ce, 0x010000ee ] }; key <AB07> { [ m, M, 0x0100007c, 0x010000cd ] }; key <AB08> { [ comma, less, 0x010000ac, 0x0100003c ] }; key <AB09> { [ period, greater, 0x010000dc, 0x010000ae ] }; key <AB10> { [ slash, question, 0x010000af, 0x0100003f ] }; key <BKSL> { [ backslash, bar, 0x010000dc, 0x010000fc ] }; key <CAPS> { [ Caps_Lock ] }; // End alphanumeric section include "level3(win_switch)" include "level3(menu_switch)" }; In fine.. you fire up an xterm.. issue a ‘setxkbmap apl’ command from the shell prompt and you're in business. I used it daily for about a month before I switched to APLX - aka micro APL.. and as I had zero problems.. So, I suspect it is 100% A+ compatible. Initially, I thought of writing a python wrapper that would handle conversion from Unicode to A+'s peculiar brand of latin1 and back (among other things) but never had the time. cj -- http://mail.python.org/mailman/listinfo/python-list