NOTES

I started with getting the mux window manager working
in standard inferno. Then I changed the resolution down to 256x192
and tried to get everything to fit. The files in this lab include the
version of mux I ended up putting in the nds file running on the DS.

Things to try if you download it. Rocker moves up and down selection.
'A' key enters, 'B' key backs out back up to the higher level.
'Start' key returns to the top level menu.

Try Today's Newspaper, and The Thisburgh has the only working graphic.
Under news, click through to actually read an article. Under games,
try connect4. Audio control would look cool if any of the graphics
actually came in. The Financial Reports gives a ticker. It scrolls
slowly only because of the sleep interval in the code is incorrect.

If you want to try this version of mux using hosted inferno
just remember you need to compile prefab into your emu.
Include prefab in the mod and lib sections of your emu config file,
also uncomment prefab in the /libinterp/mkfile.

Mux uses irsim for key controls. I changed my local inferno-ds code to have the DS keys output
the same characters as used by irsim.

The files in this lab include the movies and tvlist apps and their data.
The data didn't fit on the 4MB .nds file. But they will fit when we get the GBA ROM
or dldi interface working.

I think mux is a good path to follow for DS development. It's
small, starts quickly, uses the keys effectively since it was designed
for remote controls, the programs are easy to understand, and they hit
most of the applications I'd like to start with, small games, news
reader, email reader, simple database browser (movies, tvlist), and
audio.

I tried implementing a command equivalent to srv(4) on Plan 9.
It takes a command block or network address and post
it in the srv registry.

% srv {calc >[1=0]} /chan/desk

It using an existing '#s' instance if there is one, else binds a new one.
Now we can open a console to /chan/desk from another window

% {cat & cat >[1=0] < /dev/cons} <> /chan/desk

and other windows can write to /chan/desk, the output will be
seen in the console.

Questions.

Why isn't Plan 9 srv(3) in Inferno?

File2chan(2) seems under used. Is that because of the shell interface sh-file2chan?

Is there another interface that would make file2chan more usable?

Mount(1) supports mounting from a file, as Plan 9's does. But the
inferno srv(3) device must do extra copies of the read and write buffers
to implement the interface.
Is the file interface of Plan9 srv more elegant than the extra file2chan
syscall in Inferno?

Aren't there benefits to using channels in Inferno
that make file2chan preferable?