Riddler | 18 Apr 21:52 2014

Floating point and dividing by 0

Hello again,

Continuing on with my floating point adventures, I have a question that I hope someone can provide some input on.

I'm general idea of what I'm doing the following:
    double zero = 0.0;
    notify(fpnotecatch); //Ignore divide by zero note for a moment
    double pInf = 1.0/zero;
    notify(0); //Back to default note handler

    if(isInf(pInf, 1) <= 0 && isInf(pInf, 0) <= 0) exits("Divide by zero did not result in infinity");

The error "did not result in infinity" is always tripped. My understanding is that according to the spec it should have resulted in either + or - infinity.

I suspect it's not required as there was a note thrown instead, and I can't think of any reason why you would deliberately ignore the note like I do of the top of my head. Thought I would mention it anyway see what input you guys had.

kokamoto | 18 Apr 06:46 2014

nusb/disk in 9front and usb/disk in sources

I'm now seeing two types of usb/disk implementation
as in the title.

The 9front's one can recognize partions in the usb disk,
however, the other cannot.   I feel the 9front's usb/disk
is much better than the other.
On the other hand, the former doesn't use threadmain().

Is it be safe to mix the 9front's usb/disk onto the sources's


erik quanstrom | 18 Apr 03:29 2014

another kbd issue

as i turns out, Kmouse = Spec|0x100 = 0xf900 is not in the unicode
private use area, and it's assigned.

- erik

Riddler | 17 Apr 20:12 2014

'Compose' key and Unicode characters

Hello guys,

I'm toying with floating point and the possibility of making some regression tests for Plan 9's FP support. At the moment I'm testing results of computations that should result in +/- infinity and as plan9 is built with Unicode in mind figured I should attempt to use the actual ± 0x00B1 symbol.

I'm aware there are shortcuts for some of these (including ±) in "lib/keyboard" but I could not get the +- shortcut to work. I discovered it's because I wasn't using numpad keys (I'm on a laptop), when I do it works as expected.

I'm assuming it's because of the 'shift' key in between to get the + and - symbols and I'm wondering if it is meant to work with shift or does it intentionally only work with the numpad?

arisawa | 17 Apr 14:30 2014

origin of /root

Hello  all,

have we reliable way to find the origin of /root.
local file system?
remote file system?

Kenji Arisawa

lucio | 17 Apr 13:27 2014

Plan 9 dircp

I fond that dircp behaves erratically regarding ownership of the
target files.  Is this expected or should I be looking for a possible
culprit to eliminate?


arisawa | 17 Apr 09:30 2014

9fat format


It is curious for me that if 9fat is formatted by disk/format of 9front,
then 9atom fails in boot with the error message
MBR...PBS2...Bad format or I/O errors
(or PBS1)
In making 9fat, I applied 9atom’s pbslba, 9load, etc except disk/format:
disk/format -b pbslba -d -r 2 /dev/sdC0/9fat 9load 9pc*f  plan9.ini

I guess PBS2 claims that format of the allocation table is wrong
because if the 9fat is formatted by disk/format of 9atom
then 9atom can boot up.

term% xd -c /dev/sdC0/9fat # formatted using 9front
0000400  f8 ff ff ff 03 00 04 00 05 00 06 00 07 00 \b 00
0000410  \t 00 \n 00 0b 00 0c 00 \r 00 0e 00 0f 00 10 00
0000420  11 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00
0000430  19 00 1a 00 1b 00 1c 00 1d 00 1e 00 1f 00    00
0000440   ! 00  " 00  # 00  $ 00  % 00  & 00  ' 00  ( 00
0000450   ) 00  * 00  + 00  , 00  - 00  . 00  / 00  0 00

Kenji Arisawa

erik quanstrom | 17 Apr 03:53 2014


in syncing up the various kernels, one of the biggest areas of skew was in
*/kbd.c.  there are 8 different versions.  (yeah!)  they're all pretty much
the same, except for the bit that drives the i8042 for the pc.  the reason
non-pcs have them is for the benefit of usb, which takes usb key codes
and turns them into i8042 scan codes.. and then there is devkbin and
devkbmap which interact with kbd.c  it's all a maze of twisty passages.

it seems to me that the easiest first step is to split this mess into two
bits, the i8042 driver and the i8042 scan code processing (including
kbin/kbmap).  that way, there will be one i8042 driver, and one portable
i8042 scan code processor.

this has the happy consequence of giving each attached keyboard its own
connection, so compose on one keyboard won't foul up a second.

i have a working version i'm typing this on.  it seems to have worked the
first time (modulo the fact i forgot tokenize eats ' for breakfast.)

it would be nice in the future to move away from using i8042 scan
codes.  i think forcing the drivers to output text would be better.
but that's going to require breaking some interfaces....

- erik

Jan | 15 Apr 17:24 2014

Plan 9 on Thinkpad T60

Has anyone managed to get Plan 9 running on an IBM Thinkpad T60? I can't get past installing the mbr when I've tried.
Steve Simon | 15 Apr 16:41 2014

(no subject)


I have got hold of a new 1920x1200 monitor but no card I can find seems
to support it on plan9 - Even cards that claim this resolution and higher
don't have the vesa mode entry.

Anyone any thoughts, or suggestions of cards that do
have the apropriate high resolution VESA modes?



cinap_lenrek | 15 Apr 09:57 2014

amd64 disassembly for modrm byte register with rex prefix fix

--- a/sys/src/libmach/8db.c	Fri Jan 17 21:09:17 2014 +0100
+++ b/sys/src/libmach/8db.c	Tue Apr 15 09:48:44 2014 +0200
 <at>  <at>  -1878,7 +1878,7  <at>  <at> 
 	if (ip->mod == 3) {
 		if (ip->osize == 'B')
-			bprint(ip, (ip->rex & REXB? breg64: breg)[ip->base]);
+			bprint(ip, (ip->rex? breg64: breg)[ip->rex&REXB? ip->base+8: ip->base]);
 		else if(ip->rex & REXB)
 			bprint(ip, "%s%s", ANAME(ip), reg[ip->base+8]);