nls-technical
[Top] [All Lists]

Re: [nls-technical] [bootstrap-nsf] Re: [bootstrap-nsf] Re: six chord ke

To: NLS Restoration Technical Discussion <nls-technical@chm.cim3.net>, bootstrap-nsf@ws.blueoxen.net
Cc: NLS Restoration Technical Discussion <nls-technical@chm.cim3.net>
From: Philip Gust <gust@NouveauSystems.com>
Date: Mon, 20 Feb 2006 06:48:48 -0800
Message-id: <7.0.0.16.2.20060220063345.062d3490@NouveauSystems.com>
Jonathan,    (01)

Thanks for your comments.  As I mentioned, I've volunteered to work 
on the Windows and MacOS interfaces, since I have access to both 
machines and some development experience on both.  I'm afraid that 
JNI is unavoidable on these two platforms, but the native code is 
pretty innocuous and isn't likely to cause the JVM to crash.    (02)

I don't plan on buying additional DB15 to USB game port adapters, 
beyond the one I purchased for myself earlier.  I just wanted to get 
the source into the record in case we need it in the future.    (03)

Still haven't heard back from the people at AO design on a bid for 
building a new batch of keysets, but will send them a reminder 
today.  I also heard that Xerox made a batch of keysets for use with 
the Altos, and I'm looking into whether any of those still exist at 
Xerox PARC.  You can see one on the Alto on exhibit at the 
Museum.  Wonder whether they'd allow you to borrow it briefly to 
document its interface.    (04)

I'm also looking at commercial chord keyboard options.  Jeff looked 
at the two whose links I posted and agreed that using commercial 
keysets would be a more scable solution for wider deployment of 
Augment systems and for Hyperscope, although not as historically 
accurate.  The one in Great Britain is particularly intriguing 
because it is so small and elegant.  Both of those units look like a 
USB keyboard, so we wouldn't have to do any interface work, and they 
could be used outside of AugTerm and Hyperscope.  I'll report once 
I've heard back from those vendors.    (05)


At 10:25 PM 2/19/2006, Jonathan Cheyer wrote:
>Hi Phil,
>
>Comments inline.
>
>Jonathan
>
>
>
>Philip Gust wrote:
> > I've found something called USB Overdrive that claims to be a
> > configurable, shareware MacOS X driver for a variety of USB devices
> > including joysticks.  Here's a URL:
> > http://www.versiontracker.com/dyn/moreinfo/macosx/13443&vid=41640.
> > <http://www.versiontracker.com/dyn/moreinfo/macosx/13443%26vid=41640.%A0>
>
>This could be a possibility. Unfortunately, it's not open source.
>
> > I also found the general Human Interface Device (HID) framework,
> > including an HID Manager for accessing USB devices such as joysticks.
> > Here's a URL:
> > 
> 
>http://developer.apple.com/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/Families_Ref/chapter_11_section_7.html
>
>HID is also what is used in Linux.
>
> > Applications use something called InputSprocket to interact with the HID
> > Manager.  Here's an article written by the lead InputSprocket architect
> > with some code samples:
> > http://www.mactech.com/articles/mactech/Vol.15/15.01/InsideInputSprocket/
> > . Nouveau Systems is a member of the Apple Developers Network so we can
> > probably get some advice on this.
>
>This is a good link and is probably worth having a developer with access
>to a MacOS X machine look into this more.
>
> > There is also a Java Input API project at java.net that seems to have a
> > framework with an OSX plugin: https://jinput.dev.java.net/
>
>I'll look into this API a little more to see what they are providing.
>
> > All of these tell me that there probably isn't a regular device similar
> > to the Linux /dev/input/js* that we can use directly.
>
>I found a project called SDL that is a cross-platform multimedia library
>designed to provide low level access to audio, keyboard, mouse, joystick
>for the following platforms: Linux, Windows, BeOS, MacOS Classic, MacOS
>X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX.
>
>http://www.libsdl.org/index.php
>
>They seem to have added support for /dev/joy for *BSD unixes. It doesn't
>explicitly mention support for MacOS X, but it might work anyway.
>
>http://www.libsdl.org/pipermail/sdl/2004-January/058892.html
>
>I guess we'll need someone with a MacOS X machine to verify one way or
>the other.
>
> >> I suspect that Windows does not use device files in a UNIX-like way, so
> >> that probably means the only way to get access to a device is through
> >> the usual Microsoft-specific APIs. If that is the case, it is almost
> >> definite that Microsoft-specific native code will need to be written.
>
>That is ok as long as we have platform-neutral interfaces that abstract
>out the Windows-specific code.
>
> > Using Cygwin is a pretty long shot, and has the drawback of requiring
> > Cygwin to be installed (it's pretty big).
>
>I'm not sure that it buys us anything, since I don't believe it has
>device level support beyond what is already supported in Windows.
>
> > There are several Java packages out there that claim to support
> > joysticks through JNI interfaces to Windows DLLs.  Several of them are
> > multi-platform and include Windows. JInput (
> > https://jinput.dev.java.net/) <https://jinput.dev.java.net/)%A0> and
> > JavaJoystick ( http://sourceforge.net/projects/javajoystick/).  Others
> > are are Windows-only (cf
> > http://www.cybergarage.org/vr/device/joystick/java/,
> > <http://www.cybergarage.org/vr/device/joystick/java/,%A0>
> > http://www.hardcode.de/jxinput/,
> > http://www.bigredswitch.co.uk/toolbox/joystick/).
> >
> > If none of these work out, the JNI code will have to write directly to
> > Microsoft DirectInput.  Here's a brief article that shows how to
> > interface a joystick through DirectInput:
> > 
> http://msdn.microsoft.com/coding4fun/gamedevelopment/beginning4/default.aspx
>
>Yes, it might be easiest to start with something like this and build our
>own driver.
>
> >> > Whichever way, I plan on doing a decent device-side interface that
> >> > will make it simple to plug in native code support.
>
>Agreed.
>
> > JInput looks to be the most promising because it has a platform-specific
> > plugin architecture with plugins for Win32i, Linux, and OS X.  I'd
> > consider looking at this first to provide native layer abstraction.
>
>Agreed.
>
>
> > Agreed.  It would be convenient, however, if the same underlying native
> > libraries could be used for both projects.
>
>The main advantage of the existing Java-based driver is that it is pure
>Java (no JNI) which is really nice from a stability standpoint. As soon
>as you introduce native code into a Java-based program, it increases the
>chances that the VM will crash. Of course, the primary disadvantage is
>what we have already discussed -- it only works on machines in which we
>can read an input stream from a joystick device file (Linux; maybe BSD
>and MacOS X; no Windows).
>
> > Just one other note.  You mentioned that Radio Shack was no longer
> > producing the DB-15 to USB PC Gaming Adapter (26-164).  I've found
> > another source.  It's slightly more expensive, but we could get enough
> > for all the keysets.  Here's the URL:
> > http://www.trianglecables.com/usbtojoydbad.html
>
>That's a good link to have. Please hold off from buying any more
>adapters for the moment though. Only one out of the seven keysets that
>we currently have is a DA-15 female version (which, with the
>hand-crafted cable, acts as an analog joystick). The other six are DB-25
>male versions. I'm not completely sure yet if the other six will be more
>similar to an analog joystick or a serial or parallel port style device.
>I will try to obtain the pinout for those six keysets soon so we can
>determine what kind of converter cables we will need to buy and/or build.
>
>Jonathan
>
>_________________________________________________________________
>Message Archives: http://chm.cim3.net/forum/nls-technical/
>Shared Files: http://chm.cim3.net/file/work/project/nls-restore/
>Community Portal: http://www.computerhistory.org/
>To Post: mailto:nls-technical@chm.cim3.net
>Community Wiki: http://chm.cim3.net/cgi-bin/wiki.pl?NLS_Restoration    (06)


Philip Gust
Nouveau Systems, Inc.    (07)

phone: +1 650 961-7992
fax:   +1 520 843-7217    (08)


mailto: gust@NouveauSystems.com     (09)



_________________________________________________________________
Message Archives: http://chm.cim3.net/forum/nls-technical/
Shared Files: http://chm.cim3.net/file/work/project/nls-restore/
Community Portal: http://www.computerhistory.org/  
To Post: mailto:nls-technical@chm.cim3.net
Community Wiki: http://chm.cim3.net/cgi-bin/wiki.pl?NLS_Restoration    (010)
<Prev in Thread] Current Thread [Next in Thread>