dll(1)

πŸ’– dll(1) β€” the RCX downloader, but make it a group chat πŸ’–

a brickOS utility, bestie. yes the whole page is about one (1) little program and honestly? it's iconic.


🌸 NAME 🌸

dll β€” a user-program downloader for the RCX. that's the whole rΓ©sumΓ©, and it ate. πŸ’…


✨ SYNOPSIS ✨

dll [options] command | {file}.lx

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so this manual page documents the dll user-program download command. that's literally its job description.

dll is a program that downloads user programs written for brickOS onto the RCX. you write the code, it yeets it into the brick. no cap. 🫢


πŸ‘‘ OPTIONS πŸ‘‘

this program follows the usual GNU command line syntax, with long options starting with two dashes (-). the options supported by dll are, in order, no skips, no cuts:

  • (run with no parms) β€” shows the built-in help, which is a summary of the options. just run it naked, it'll talk to you πŸ’–
  • -e, --execute β€” execute the program after the download. it goes straight from "installed" to "main character". πŸ”₯
  • -i{0|1}, --irmode={0|1} β€” set the IR mode (on the RCX) to near(0) or far(1).
  • -p{1-8}, --program={1-8} β€” download the program to program-slot-number {1-8}.
NOTE: LegOS supports 8 program slots, whereas the Mindstorms original firmware only supports 5. so like, slay for LegOS, honestly.
  • -r{hostaddress}, --rcxaddr={hostaddress} β€” send to the RCX LNP at host address {0-15}. default is 0. see also --node={hostaddress}.
  • -s{srcport}, --srcport={srcport} β€” send to the RCX LNP source port {0-15}.
  • -t{ttydevice} --tty={ttydevice} β€” specify the serial tty device where the IR tower is connected.
NOTE: the environment variable RCXTTY may be used in place of -tty. iykyk. 🌈
  • -v, --verbose β€” enable verbose output. it will simply not stop talking. we love that for it.

πŸŽ€ COMMANDS πŸŽ€

  • -d{1-8}, --delete={1-8} β€” delete the program from program-slot-number {1-8}. bye bye πŸ‘‹
  • -n{hostaddress}, --node={hostaddress} β€” set the RCX LNP host address to {0-15}.

πŸ’œ ENVIRONMENT VARIABLES πŸ’œ

dll will respond to the environment variable RCXTTY. this should be set to the serial device to which the IR tower is connected. using RCXTTY is equivalent to using the -tty command-line option β€” same energy, fewer keystrokes. ⭐


🧚 EXAMPLES 🧚

dll is a simple command to use. the following examples show most of the uses, and honestly? it's giving "effortless". ✨

Ex1: download demo/robots.lx to the RCX as program 0.

$ dll -tty=/dev/ttyS0 demo/robots.lx
$
NOTE: there is no response from dll(1) on a successful download. you can, however, watch the RCX display during the download and see activity. silence = success, periodt. 😭

Ex2: download the demo/linetrack.lx into program-slot 7. (note we are first setting RCXTTY so we don't have to keep specifying the tty device each download β€” glow-up behavior fr fr)

$ export RCXTTY=/dev/ttyS1
$ dll -p7 demo/linetrack.lx
$

Ex3: download demo/rover.lx but we are leaving the RCX powered off (assume RCXTTY is already set).

$ dll -p2 demo/rover.lx
error deleting program
$
NOTE: dll first deletes the existing program from the specified program slot and then downloads the new one. this error indicates that the first thing dll tried to do did not succeed. it didn't even get to the download part. πŸ’€

we'll leave the experiment of running dll with --verbose set as an exercise for you, our reader... (this is actually a combination of progress information and debug output.) go off, scientist πŸ”¬


πŸ™ˆ ERROR MESSAGES πŸ™ˆ

unfortunately, there is basically only one dll error message, and it applies to most possible errors, including:

  • a disconnected IR tower
  • an RCX that is turned off
  • an RCX that doesn't have brickOS
  • an RCX that has brickOS and is already running a program

so, check all those things when dll fails. one error message, four possible villains. it's giving mystery novel. πŸ•΅οΈ


🌈 SEE ALSO 🌈

firmdl3(1)


πŸ’… AUTHOR πŸ’…

dll was written by: Markus L. Noga.

Additional Contributor(s): everyone discussing LNP at LUGNET.

This manual page was written by Stephen M Moraco <stephen@debian.org>, for the Debian GNU/Linux system (but may be used by others). king behavior, truly πŸ‘‘


and that's the whole thing, bestie πŸ’– this page came out of the brickOS corner of the world back on May 12, 2002, and it still hits. go download something. πŸŽ€βœ¨πŸ¦‹