Xref: lugnet.com lugnet.robotics:8403
Newsgroups: lugnet.robotics
Path: lugnet.com!dbaum
From: dbaum@spambgoneenteract.com (Dave Baum)
X-Real-Life-Name: Dave Baum
Subject: Thoughts on NQC for Scout
X-Newsreader: MT-NewsWatcher 2.4.4
Organization: None
Message-ID: <dbaum-2011991158030001@207-229-149-233.d.enteract.com>
X-Nntp-Posting-Host: 207-229-149-233.d.enteract.com
Date: Sat, 20 Nov 1999 17:57:30 GMT
Lines: 55

With the advent of the Scout SDK, several people have asked me if I plan
on making NQC available for Scout.  I thought it would be appropriate to
summarize my position on this and post it...

The Scout SDK looks quite interesting - clearly the Scout is much more
flexible than initially assumed by most advanced users.  The SDK also
provides a nice set of tools to program the Scout in assembly language
from a PC.

However, for those already using NQC - or those who prefer a C-style
syntax to assembler - the Scout assembler isn't quite enough.  Ideally, I
would like to allow NQC to target the Scout.  However, in order to do this
I will need to know the Scout's download protocol and its bytecode format.

I suspect the official line from Lego is presently something like this:
"use the ScoutDos.exe assembler as a back end for NQC".  This would work
for Windows.  This will not work for the Macintosh or Linux.  Since I use
Macintosh and Linux far more than I use Windows, I have no interest in
creating a Windows-only solution.  If it can't be made portable, I don't
want to write it.  

Similarly, the ScoutDOS.exe has some significant limitations in its
license.  Anything developed with it cannot be used in any way with
commercial implications.  That's pretty broad.  Perhaps unenforceably
broad.  NQC is free software - and its current licensing is incompatible
with the Scout SDK license.  I do not want to create "NQC for Scout" such
that it is no longer free software and requires the user to carry the
baggage of the Scout SDK license.

As I see it, there are three alternatives here:

1) Hack it - specifically hack the download protocol and bytecodes.  This
is the path that was taken for the RCX, and it really didn't take very
long, but then again several people were highly motivated to crack it.  At
this point, I've got an RCX and I'm not that motivated to crack the
Scout.  I'm willing to add Scout support to NQC (which is by no means a
trivial task), but I see no reason to make it more tedious by hacking the
protocols as well.

2) Get official information from Lego.  Quite simply, I don't see what
Lego has to gain by keeping the download protocol and bytecodes secret. 
They will come out eventually - why not use this as an opportunity for
Lego to demontstrate that they are willing to support the notion of open
software for their programmable products.

3) Forget it - no NQC for Scout.  Personally this is OK with me.  I have
more than enough RCX's and don't need to use a Scout for possible
expansion.  The Scout can do some interesting things, but nothing
compelling enough for me to abandon using the RCX as my primary
programmable brick.

Dave Baum

-- 
reply to: dbaum at enteract dot com