21 May 2013 12:27
19 May 2013 14:22
9atom and USB Keyboard Problem
Gregory Pavelak <pavelcak <at> gmail.com>
2013-05-19 12:22:14 GMT
2013-05-19 12:22:14 GMT
I installed 9atom downloaded from Erik's site on 5/12 on a Gigabyte GA-D525TUD (http://www.gigabyte.com/products/product-page.aspx?pid=3549#ov). When I have *nomp=1 in plan9.ini, I am able to log in and things work OK (except the mouse wheel scroll direction is opposite to what I would expect), When I remove *nomp=1 from plan9.ini, 9atom reports four processors, and every keystroke produces 6 or 8 or more tokens of the character I am trying to type. If I'm lucky and I tap a key lightly and quickly enough, I can get a single character, but it's not easy. I tried the only other usb keyboard I have and had the same problem. Any suggestions? Thanks. Greg
19 May 2013 06:32
atagenioretry: nondma
arisawa <arisawa <at> ar.aichi-u.ac.jp>
2013-05-19 04:32:52 GMT
2013-05-19 04:32:52 GMT
Hello, yesterday day I had error messages below: automatic dump Fri May 17 05:00:07 2013 automatic dump Sat May 18 05:00:08 2013 command 30 data f7aea8a0 limit f7aec0a0 dlen 16384 status 0 error 0 lba 163565804 -> 163565804, count 32 -> 32 (32) atagenioretry: nondma w:163565804:32 <at> 163565804:32 wrenwrite: error on w"/dev/sdD0/fsworm"(2315949): i/o error 040804 163565804 mirrwrite: error at w"/dev/sdD0/fsworm" block 2315949 atagenioretry: nondma w:163565836:32 <at> 163565836:32 wrenwrite: error on w"/dev/sdD0/fsworm"(2315950): i/o error 040804 163565836 mirrwrite: error at w"/dev/sdD0/fsworm" block 2315950 atagenioretry: nondma w:163565900:32 <at> 163565900:32 wrenwrite: error on w"/dev/sdD0/fsworm"(2315952): i/o error 040804 163565900 mirrwrite: error at w"/dev/sdD0/fsworm" block 2315952 atagenioretry: nondma w:163565932:32 <at> 163565932:32 ... ... it seems that wrenwrite/mirrwrite errors from cwfs are induced by "atagenioretry: nondma" which come from kernel (/sys/src/9/pc/sdide.c). have you ever seen messages like this? I suspected my sata drive (/dev/sdD0) has broken. but it seems the drive is alive. Kenji Arisawa(Continue reading)
17 May 2013 17:51
Go for systems programming
lamg <gort.andres000 <at> gmail.com>
2013-05-17 15:51:01 GMT
2013-05-17 15:51:01 GMT
Can Go be used for replacing C in Plan9? Could be a kernel be written in Go? If it is not possible, what about making a C-like Go? Where C-like Go means having similar syntax, but not channels, garbage collection, and other fancy 21st century runtime features; but with no need for makefiles and fast compilation times. Could this be a sort of plugable compiler, where we could select what features of the language we would use for being included in the runtime? I think it will be nice for Plan9 having such language-compiler, Go has proved to be an improvement over C in its own niche.
17 May 2013 00:31
15 May 2013 19:42
13 May 2013 19:33
Easily create/move window on left/right half of the screen
Costin Chirvasuta <costinc <at> gmail.com>
2013-05-13 17:33:42 GMT
2013-05-13 17:33:42 GMT
Hello,
I made this quick little hack to do what the subject says.
Sharing for anyone who might find it useful.
diff /n/sources/plan9/sys/src/cmd/rio/rio.c /sys/src/cmd/rio/rio.c
779a780,802
> if(mouse->buttons == 0 && eqpt(mouse->xy, p)){
> p = onscreen(mouse->xy);
> if(p.x < screen->clipr.min.x + 10){
> p0.x = screen->clipr.min.x;
> p0.y = screen->clipr.min.y;
> p.x = (screen->clipr.max.x + screen->clipr.min.x) / 2;
> p.y = screen->clipr.max.y;
> }else if(p.x > screen->clipr.max.x - 10){
> p0.x = (screen->clipr.max.x + screen->clipr.min.x) / 2;
> p0.y = screen->clipr.min.y;
> p.x = screen->clipr.max.x;
> p.y = screen->clipr.max.y;
> }else
> break;
> r = Rect(p0.x, p0.y, p.x, p.y);
> i = allocwindow(wscreen, r, Refnone, 0xEEEEEEFF);
> freeimage(oi);
> if(i == nil)
> goto Rescue;
> border(i, r, Selborder, red, ZP);
> flushimage(display, 1);
> break;
> }
(Continue reading)
10 May 2013 05:48
devdraw proxy
<a <at> 9srv.net>
2013-05-10 03:48:05 GMT
2013-05-10 03:48:05 GMT
has anyone ever written (for lack of a better term) a devdraw proxy? my application at hand would be to "tee" the messages between multiple "real" draw devices, but i can think of a number of useful things such a proxy might do. i'd be interested in hearing about any examples or experience before i get started. anthony
9 May 2013 20:47
btcd: A Full Alternative Bitcoin Implementation, Written In Go
Antonio Barrones <antonio.fin <at> gmail.com>
2013-05-09 18:47:48 GMT
2013-05-09 18:47:48 GMT
Hi, I have read this article: btcd: A Full Alternative Bitcoin Implementation, Written In Go http://bitcoinmagazine.com/btcd-a-full-bitcoin-alternative-written-in-go and I wonder if this could be a way to have Bitcoin in the Plan9 environment. The project it is not yet released but some part are available: https://github.com/conformal/btcwire/blob/master/README.md The program is licensed under the liberal ISC License. The blog: https://blog.conformal.com/ Antonio
8 May 2013 22:09
patch/5l-div-cond
<cinap_lenrek <at> gmx.de>
2013-05-08 20:09:58 GMT
2013-05-08 20:09:58 GMT
the patch carries over the condition flags into all the emulated instructions in the linker. i dont think this will work as intended because after returning from _div, the condition flags should have been modified no? or does BL somehow preserve the flags? i'm no arm expert... -- cinap
7 May 2013 11:02
vncv sw cursor trail
Yaroslav <yarikos <at> gmail.com>
2013-05-07 09:02:43 GMT
2013-05-07 09:02:43 GMT
When using vncv on a terminal with software cursor (vesa, rpi) the
mouse cursor leaves a trail. This seem to be caused by the fact that
vncv loads picture updates with loadimage(2) directly to screen.
Loading to an offscreen image followed by a draw(2) to screen removes
the artifact:
/n/dump/2013/0507/sys/src/cmd/vnc/draw.c:106,111 -
/sys/src/cmd/vnc/draw.c:106,112
static void
updatescreen(Rectangle r)
{
+ Image* img;
int b, bb;
lockdisplay(display);
/n/dump/2013/0507/sys/src/cmd/vnc/draw.c:120,129 -
/sys/src/cmd/vnc/draw.c:121,135
/*
* assume load image fails only because of resize
*/
+ img = allocimage(display, r, screen->chan, 0, DNofill);
+ if(img == nil)
+ sysfatal("updatescreen: %r");
b = Dx(r) * pixb * Dy(r);
- bb = loadimage(screen, rectaddpt(r, screen->r.min), pixbuf, b);
+ bb = loadimage(img, r, pixbuf, b);
if(bb != b && verbose)
fprint(2, "loadimage %d on %R for %R returned %d: %r\n", b,
rectaddpt(r, screen->r.min), screen->r, bb);
+ draw(screen, rectaddpt(r, screen->r.min), img, nil, r.min);
(Continue reading)
RSS Feed