This is the command nqc that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator
PROGRAM:
NAME
nqc - A simple C-like language for Lego's RCX programmable brick
SYNOPSIS
nqc [ options ] [ actions ] [ - | filename ] [ actions ]
DESCRIPTION
NQC stands for Not Quite C, and is a simple language for programming the LEGO RCX. The
preprocessor and control structures of NQC are very similar to C. NQC is not a general
purpose language -- there are many restrictions that stem from limitations of the standard
RCX firmware.
This man page does not attempt to describe the NQC programming language or the RCX API,
merely the options of the nqc command-line program. References to more complete
documentation are given at the end of this man page.
nqc is normally used to process a single source file given as filename. You can also read
from stdin by using - instead. If the filename ends in .rcx, it is assumed to be a RCX
image file from a previous compile, and will be used as is (for downloading or listing).
OPTIONS
-1 use NQC 1.x compatibility mode. The RCX API changed significantly with version
2.0. This flag makes the compiler grok old code.
-Ttarget
generate code and use communications methods for "smart bricks" other than the RCX.
Currently, can be either CM or Scout.
-d download program to the RCX. When this option is given, code is sent directly over
the serial port to the brick and no output file is generated by default.
-n prevent the standard nqc.h file from being automatically included.
-Dsym[=value]
define macro sym as value.
-E[filename]
write compiler errors to filename (or to stdout, if no name specified) instead of
to stderr.
-Ipath search path for include files. Multiple directories should be separated as normal
for the platform (under Linux / Unix, that'd be ""). Can also be set with the
NQC_INCLUDE environment variable.
-L[filename]
generate a human-readable bytecode listing to filename (or to stdout) instead of
generating a binary file.
-Ooutfile
output code to outfile. This option causes a file to be written even if -d or -L
is also given. If no filename is specified, the output file will have the same
basename as the input file but an extension of .rcx instead of .nqc.
-Sportname
use serial port portname. Under Linux, /dev/rcx is the default. (This will differ
on other platforms.) The port can also be specified via the RCX_PORT environment
variable, but the command line option takes precedence.
-Usym undefine macro sym.
ACTIONS
Actions look similar to options, but they have some subtle differences. In general,
options set up things (such as a serial port) for later use, while actions cause something
to happen. Actions are executed in the order that they appear on the command line. In
addition, actions appearing before the source file happen before compilation, while
actions after the source file happen after compilation. For historical reasons,
downloading the compiled file (-d) works as an option and not an action.
-run run the current program. This causes the program selected on the RCX to execute.
-pgm number
select program number. This changes the program slot on the RCX.
-datalog
get the datalog from the RCX and print it to stdout.
-datalog-full
same as -datalog but with more verbose output.
-near set the IR port to short-range mode.
-far set the IR port to long-range mode.
-watch time
set the RCX's clock to the specified time. If you use now, then the host's current
time is used.
-firmware filename
downloads the firmware to the RCX. You'll need the official Lego RCX firmware from
the CD-ROM -- the current (and so far only) file is called firm0309.lgo. This will
probably be necessary the first time you use your RCX, and whenever it's been
without batteries for more than a few minutes.
-firmfast filename
same as -firmware, but at quad speed. Requires the tower to be in near mode (see
-near). If you have trouble getting the fast download to work, please revert to
the older (and slower) method.
-sleep timeout
set RCX auto-shutoff timeout, in minutes.
-msg number
send IR message to RCX. The brick will respond to this just as it would a
communication from another RCX.
-raw data
send an arbitrary packet to the RCX and print the reply (if any) to stdout. The
data should be a hexadecimal string, with no spaces, zero-padded so that it is an
even number of characters (although it may be an odd number of bytes). For example,
to read the contents of variable 1, you could use -raw 120001. The bytecodes for
raw messages can be found on web sites that document the RCX protocol.
-remote value repeat
send a repeating remote command to the RCX.
-clear erase all programs and datalog from the RCX.
ENVIRONMENT VARIABLES
RCX_PORT
sets the default serial port. See the -S option.
NQC_OPTIONS
specifies extra options to be inserted into the command line. For example, setting
NQC_OPTIONS to -TScout would cause nqc to target the Scout by default.
NQC_INCLUDE
specifies additional paths to search for include files. See also the -I option.
EXAMPLES
To compile foo.nqc, download the bytecode to program slot three, and make the RCX start
executing it immediately:
nqc -d -pgm 3 foo.nqc -run
To just compile bar.nqc, resulting in bar.rcx:
nqc bar.nqc
To download bar.rcx to the RCX:
nqc -d bar.rcx
To set the IR tower to short-range mode and download the firmware at high speed:
nqc -near -firmfast firm0309.lgo
To compile /usr/share/doc/nqc/examples/test.nqc and print the resulting bytecode listing
to the screen in human-readable format:
nqc -L /usr/share/doc/nqc/examples/test.nqc
(This should result in the following output under nqc 2.1.0:
*** Task 0 = main
000 pwr ABC, 7 13 07 02 07
004 dir ABC, Fwd e1 87
006 InType 0, Switch 32 00 01
009 InMode 0, Boolean 42 00 20
012 out A, On 21 81
014 chkl 1 != Input(0), 14 95 82 09 01 00 00 fa ff
022 plays 0 51 00
024 out A, Off 21 41
)
Use nqc online using onworks.net services