RCX Internals (RCX.pm Status)
This is a subsection of Kekoa Proudfoot's internals page. It just lists what has been implemented in RCX.pm, what is yet to be done, and what I never plan to do.
 
  Key
  Done
  Partly Done
  N/A
  TODO
Opcodes [top]

The table in this section gives a brief overview of the opcodes that make up the RCX byte code and is an index into the RCX Opcode Reference, where more information about the opcodes can be found. An alphabetical opcode index is also available.

In the table below, the valid contexts of each opcode are listed under the Modes heading. A P indicates a request sent from the PC to the RCX, an R indicates a reply from the RCX to the PC, and a C indicates a command that may be used in byte code.

Opcode Modes Name Encoding Notes 
10/18 P     Alive void [details]
12/1a P     Get value For registers only byte source
byte argument
[details]
13/1b P   C Set motor power byte motors
byte source
byte argument
[details]
14/1c P   C Set variable byte index
byte source
short argument
[details]
15/1d P     Get versions byte key[5] [details]
16/1e   R   Set motor direction void [details]
17/xx     C Call subroutine byte subroutine [details]
20/28 P     Get memory map void [details]
21/29 P   C Set motor on/off byte code [details]
22/2a P   C Set time byte hours
byte minutes
[details]
23/2b P   C Play tone short frequency
byte duration
[details]
24/2c P   C Add to variable byte index
byte source
short argument
[details]
25/2d P     Start task download byte unknown
short task
short length
[details]
26/2e   R   Clear sensor value void [details]
27/xx     C Branch always near byte offset [details]
30/38 P     Get battery power void [details]
31/39 P   C Set transmitter range byte range [details]
32/3a P   C Set sensor type byte sensor
byte type
[details]
33/3b P   C Set display byte source
short argument
[details]
34/3c P   C Subtract from variable byte index
byte source
short argument
[details]
35/3d P     Start subroutine download byte unknown
short subroutine
short length
[details]
36/3e   R   Delete subroutine void [details]
37/xx     C Decrement loop counter near byte offset [details]
40/48 P   C Delete all tasks void [details]
42/4a P   C Set sensor mode byte sensor
byte code
[details]
43/xx     C Wait byte source
short argument
[details]
44/4c P   C Divide variable byte index
byte source
short argument
[details]
45/4d P     Transfer data short index
short length
byte data[length]
byte checksum
[details]
46/4e   R   Set power down delay void [details]
50/58 P   C Stop all tasks void [details]
51/59 P   C Play sound byte sound [details]
52/5a P   C Set datalog size short size [details]
52/5a   R   Unlock firmware byte data[25] [details]
53/5b   R   Upload datalog dlrec data[length] [details]
54/5c P   C Multiply variable byte index
byte source
short argument
[details]
56/5e   R   Clear timer void [details]
60/68 P   C Power off void [details]
61/69 P   C Delete task byte task [details]
62/6a P   C Datalog next byte source
byte argument
[details]
63/6b   R   Or variable void [details]
64/6c P   C Sign variable byte index
byte source
short argument
[details]
65/6d P   C Delete firmware byte key[5] [details]
66/6e   R   Set program number void [details]
70/78 P   C Delete all subroutines void [details]
71/79 P   C Start task byte task [details]
72/xx     C Branch always far byte offset
byte extension
[details]
73/7b   R   And variable void [details]
74/7c P   C Absolute value byte index
byte source
short argument
[details]
75/7d P     Start firmware download short address
short checksum
byte unknown
[details]
76/7e   R   Stop task void [details]
81/89 P   C Stop task byte task [details]
82/8a   R   Start firmware download byte errorcode [details]
82/xx     C Set loop counter byte source
byte argument
[details]
83/8b   R   Absolute value void [details]
84/8c P   C And variable byte index
byte source
byte argument
[details]
85/xx     C Test and branch near byte opsrc1
byte src2
short arg1
byte arg2
byte offset
[details]
86/8e   R   Start task void [details]
87/8f   R   Delete all subroutines void [details]
90/xx     C Clear message void [details]
91/99 P   C Set program number byte program [details]
92/9a   R   Delete firmware void [details]
92/xx     C Decrement loop counter far short offset [details]
93/9b   R   Sign variable void [details]
94/9c P   C Or variable byte index
byte source
byte argument
[details]
95/9d   R   Datalog next byte errorcode [details]
95/xx     C Test and branch far byte opsrc1
byte src2
short arg1
byte arg2
short offset
[details]
96/9e   R   Delete task void [details]
97/9f   R   Power off void [details]
a1/a9 P   C Clear timer byte timer [details]
a3/ab   R   Multiply variable void [details]
a4/ac P     Upload datalog short first
short count
[details]
a5/ad P     Unlock firmware byte key[5] [details]
a5/ad   R   Set datalog size byte errorcode [details]
a6/ae   R   Play sound void [details]
a7/af   R   Stop all tasks void [details]
b1/b9 P   C Set power down delay byte minutes [details]
b2/ba   R   Transfer data byte errorcode [details]
b2/xx     C Send message byte source
byte argument
[details]
b3/bb   R   Divide variable void [details]
b5/bd   R   Set sensor mode void  [details]
b7/bf   R   Delete all tasks void [details]
c1/c9 P   C Delete subroutine byte subroutine [details]
c2/ca   R   Start subroutine download byte errorcode [details]
c3/cb   R   Subtract from variable void [details]
c4/cc   R   Set display void [details]
c5/cd   R   Set sensor type void [details]
c6/ce   R   Set transmitter range void [details]
c7/cf   R   Get battery power short millivolts [details]
d1/d9 P   C Clear sensor value byte sensor [details]
d2/da   R   Start task download byte errorcode [details]
d3/db   R   Add to variable void [details]
d4/dc   R   Play tone void [details]
d5/dd   R   Set time void  [details]
d6/de   R   Set motor on/off void [details]
d7/df   R   Get memory map short map[94] [details]
e1/e9 P   C Set motor direction byte code [details]
e2/ea   R   Get versions short rom[2]
short firmware[2]
[details]
e3/eb   R   Set variable void [details]
e4/ec   R   Set motor power void [details]
e5/ed   R   Get value For registers only short value [details]
e7/ef   R   Alive void [details]
f7/xx P   C Set message byte message [details]

 
Copyright © 1998, 1999 Kekoa Proudfoot. All rights reserved. kekoa@graphics.stanford.edu