%YAML 1.1 --- # The canonical source for this file is https://github.com/ev3dev/lmsasm/blob/master/bytecodes/data/ev3.yml # Do not make changes to this file unless you also submit a pull request. defines: OUTPUTS: value: 4 desc: Number of output ports in the system INPUTS: value: 4 desc: Number of input ports in the system BUTTONS: value: 6 desc: Number of buttons in the system LEDS: value: 4 desc: Number of LEDs in the system LCD_WIDTH: value: 178 desc: LCD horizontal pixels LCD_HEIGHT: value: 128 desc: LCD vertical pixels TOPLINE_HEIGHT: value: 10 desc: Top line vertical pixels LCD_STORE_LEVELS: value: 3 desc: Store levels DEFAULT_VOLUME: value: 100 DEFAULT_SLEEPMINUTES: value: 30 # SOFTWARE FG_COLOR: value: 1 desc: Forground color BG_COLOR: value: 0 desc: Background color CHAIN_DEPT: value: 4 desc: Number of bricks in the USB daisy chain (master + slaves) PATHSIZE: value: 84 desc: Max path size excluding trailing forward slash including zero termination NAMESIZE: value: 32 desc: Max name size including zero termination (must be divideable by 4) EXTSIZE: value: 5 desc: Max extension size including dot and zero termination FILENAMESIZE: value: 120 desc: Max filename size including path, name, extension and termination (must be divideable by 4) MACSIZE: value: 18 desc: Max WIFI MAC size including zero termination IPSIZE: value: 16 desc: Max WIFI IP size including zero termination BTADRSIZE: value: 13 desc: Max bluetooth address size including zero termination ERR_STRING_SIZE: value: 32 desc: Inclusive zero termination EVENT_NONE: value: 0 EVENT_BT_PIN: value: 1 EVENT_BT_REQ_CONF: value: 2 MAX_VALID_TYPE: value: 101 desc: Highest valid device type # FOLDERS MEMORY_FOLDER: value: "/mnt/ramdisk" desc: Folder for non volatile user programs/data PROGRAM_FOLDER: value: "../prjs/BrkProg_SAVE" desc: Folder for On Brick Programming programs DATALOG_FOLDER: value: "../prjs/BrkDL_SAVE" desc: Folder for On Brick Data log files SDCARD_FOLDER: value: "../prjs/SD_Card" desc: Folder for SD card mount USBSTICK_FOLDER: value: "../prjs/USB_Stick" desc: Folder for USB stick mount PRJS_DIR: value: "../prjs" desc: Project folder APPS_DIR: value: "../apps" desc: Apps folder TOOLS_DIR: value: "../tools" desc: Tools folder TMP_DIR: value: "../tmp" desc: Temporary folder SETTINGS_DIR: value: "../sys/settings" desc: Folder for non volatile settings DIR_DEEPT: value: 127 desc: Max directory items allocated including "." and ".." # FILES USED IN APPLICATION LASTRUN_FILE_NAME: value: "lastrun" desc: Last run filename CALDATA_FILE_NAME: value: "caldata" desc: Calibration data filename # FILES USED IN APPS SLEEP_FILE_NAME: value: "Sleep" desc: File used in "Sleep" app to save status VOLUME_FILE_NAME: value: "Volume" desc: File used in "Volume" app to save status WIFI_FILE_NAME: value: "WiFi" desc: File used in "WiFi" app to save status BLUETOOTH_FILE_NAME: value: "Bluetooth" desc: File used in "Bluetooth" app to save status # EXTENSIONS EXT_SOUND: value: ".rsf" desc: Robot Sound File EXT_GRAPHICS: value: ".rgf" desc: Robot Graphics File EXT_BYTECODE: value: ".rbf" desc: Robot Byte code File EXT_TEXT: value: ".rtf" desc: Robot Text File EXT_DATALOG: value: ".rdf" desc: Robot Datalog File EXT_PROGRAM: value: ".rpf" desc: Robot Program File EXT_CONFIG: value: ".rcf" desc: Robot Configuration File EXT_ARCHIVE: value: ".raf" desc: Robot Archive File # NAME LENGTHs BRICKNAMESIZE: value: 120 desc: Brick name maximal size (including zero termination) BTPASSKEYSIZE: value: 7 desc: Bluetooth pass key size (including zero termination) WIFIPASSKEYSIZE: value: 33 desc: WiFi pass key size (including zero termination) # VALID CHARACTERS CHARSET_NAME: value: 0x01 desc: Character set allowed in brick name and raw filenames CHARSET_FILENAME: value: 0x02 desc: Character set allowed in file names CHARSET_BTPASSKEY: value: 0x04 desc: Character set allowed in bluetooth pass key CHARSET_WIFIPASSKEY: value: 0x08 desc: Character set allowed in WiFi pass key CHARSET_WIFISSID: value: 0x10 desc: Character set allowed in WiFi ssid # NUMBER LIMITS DATA8_MIN: value: -127 desc: DATA8 negative limit DATA8_MAX: value: 127 desc: DATA8 positive limit DATA16_MIN: value: -32767 desc: DATA16 negative limit DATA16_MAX: value: 32767 desc: DATA16 positive limit DATA32_MIN: value: -2147483647 desc: DATA32 negative limit DATA32_MAX: value: 2147483647 desc: DATA32 positive limit DATAF_MIN: value: -2147483647 desc: DATAF negative limit DATAF_MAX: value: 2147483647 desc: DATAF positive limit DATA8_NAN: value: 0x80 DATA16_NAN: value: 0x8000 DATA32_NAN: value: 0x80000000 DATAF_NAN: value: 0x7FC00000 # PULSE_GUI_BACKGROUND: value: 0x01 PULSE_BROWSER: value: 0x02 PULSE_KEY: value: 0x04 # GRAPHICS POP3_ABS_X: value: 16 POP3_ABS_Y: value: 50 POP3_ABS_WARN_ICON_X: value: 64 POP3_ABS_WARN_ICON_X1: value: 40 POP3_ABS_WARN_ICON_X2: value: 72 POP3_ABS_WARN_ICON_X3: value: 104 POP3_ABS_WARN_ICON_Y: value: 60 POP3_ABS_WARN_SPEC_ICON_X: value: 88 POP3_ABS_WARN_SPEC_ICON_Y: value: 60 POP3_ABS_WARN_TEXT_X: value: 80 POP3_ABS_WARN_TEXT_Y: value: 68 POP3_ABS_WARN_YES_X: value: 72 POP3_ABS_WARN_YES_Y: value: 90 POP3_ABS_WARN_LINE_X: value: 21 POP3_ABS_WARN_LINE_Y: value: 89 POP3_ABS_WARN_LINE_ENDX: value: 155 enums: TYPE: &TYPE desc: Type values for byte codes members: MODE_KEEP: desc: Mode value that won't change mode in byte codes (convenient place to define) value: -1 TYPE_KEEP: desc: Type value that won't change type in byte codes value: 0 TYPE_NXT_TOUCH: desc: Device is NXT touch sensor value: 1 TYPE_NXT_LIGHT: desc: Device is NXT light sensor value: 2 TYPE_NXT_SOUND: desc: Device is NXT sound sensor value: 3 TYPE_NXT_COLOR: desc: Device is NXT color sensor value: 4 TYPE_NXT_ULTRASONIC: desc: Device is NXT ultra sonic sensor value: 5 TYPE_NXT_TEMPERATURE: desc: Device is NXT temperature sensor value: 6 TYPE_TACHO: desc: Device is EV3/NXT tacho motor value: 7 TYPE_MINITACHO: desc: Device is EV3 mini tacho motor value: 8 TYPE_NEWTACHO: desc: Device is EV3 new tacho motor value: 9 TYPE_TOUCH: desc: Device is EV3 touch sensor value: 16 TYPE_COLOR: desc: Device is EV3 color sensor value: 29 TYPE_ULTRASONIC: desc: Device is EV3 ultra sonic sensor value: 30 TYPE_GYRO: desc: Device is EV3 gyro sensor value: 32 TYPE_IR: desc: Device is EV3 IR sensor value: 33 TYPE_THIRD_PARTY_START: value: 50 TYPE_THIRD_PARTY_END: value: 98 TYPE_ENERGYMETER: desc: Device is energy meter value: 99 TYPE_IIC_UNKNOWN: desc: Device type is not known yet value: 100 TYPE_NXT_TEST: desc: Device is a NXT ADC test sensor value: 101 TYPE_NXT_IIC: desc: Device is NXT IIC sensor value: 123 TYPE_TERMINAL: desc: Port is connected to a terminal value: 124 TYPE_UNKNOWN: desc: Port not empty but type has not been determined value: 125 TYPE_NONE: desc: Port empty or not available value: 126 TYPE_ERROR: desc: Port not empty and type is invalid value: 127 SLOT: &SLOT desc: Program ID's (Slots) members: GUI_SLOT: desc: Program slot reserved for executing the user interface value: 0 USER_SLOT: desc: Program slot used to execute user projects, apps and tools value: 1 CMD_SLOT: desc: Program slot used for direct commands coming from c_com value: 2 TERM_SLOT: desc: Program slot used for direct commands coming from c_ui value: 3 DEBUG_SLOT: desc: Program slot used to run the debug ui value: 4 SLOTS: desc: Maximum slots supported by the VM value: 5 CURRENT_SLOT: value: -1 remarks: ONLY VALID IN opPROGRAM_STOP BUTTONTYPE: &BUTTONTYPE desc: Button members: NO_BUTTON: value: 0 UP_BUTTON: value: 1 ENTER_BUTTON: value: 2 DOWN_BUTTON: value: 3 RIGHT_BUTTON: value: 4 LEFT_BUTTON: value: 5 BACK_BUTTON: value: 6 ANY_BUTTON: value: 7 BUTTONTYPES: value: 8 BROWSERTYPE: &BROWSERTYPE desc: Browser Types Avaliable members: BROWSE_FOLDERS: desc: Browser for folders value: 0 BROWSE_FOLDS_FILES: desc: Browser for folders and files value: 1 BROWSE_CACHE: desc: Browser for cached / recent files value: 2 BROWSE_FILES: desc: Browser for files value: 3 BROWSERTYPES: desc: Maximum browser types supported by the VM value: 4 FONTTYPE: &FONTTYPE desc: Font Types Avaliable members: NORMAL_FONT: value: 0 SMALL_FONT: value: 1 LARGE_FONT: value: 2 TINY_FONT: value: 3 FONTTYPES: desc: Maximum font types supported by the VM value: 4 ICONTYPE: &ICONTYPE desc: Icon Types Avaliable members: NORMAL_ICON: desc: 24x12_Files_Folders_Settings.bmp value: 0 SMALL_ICON: value: 1 LARGE_ICON: desc: 24x22_Yes_No_OFF_FILEOps.bmp value: 2 MENU_ICON: value: 3 ARROW_ICON: desc: 8x12_miniArrows.bmp value: 4 ICONTYPES: desc: Maximum icon types supported by the VM value: 5 S_ICON_NO: &S_ICON_NO members: SICON_CHARGING: value: 0 SICON_BATT_4: value: 1 SICON_BATT_3: value: 2 SICON_BATT_2: value: 3 SICON_BATT_1: value: 4 SICON_BATT_0: value: 5 SICON_WAIT1: value: 6 SICON_WAIT2: value: 7 SICON_BT_ON: value: 8 SICON_BT_VISIBLE: value: 9 SICON_BT_CONNECTED: value: 10 SICON_BT_CONNVISIB: value: 11 SICON_WIFI_3: value: 12 SICON_WIFI_2: value: 13 SICON_WIFI_1: value: 14 SICON_WIFI_CONNECTED: value: 15 SICON_USB: value: 21 S_ICON_NOS: value: 22 N_ICON_NO: &N_ICON_NO members: ICON_NONE: value: -1 ICON_RUN: value: 0 ICON_FOLDER: value: 1 ICON_FOLDER2: value: 2 ICON_USB: value: 3 ICON_SD: value: 4 ICON_SOUND: value: 5 ICON_IMAGE: value: 6 ICON_SETTINGS: value: 7 ICON_ONOFF: value: 8 ICON_SEARCH: value: 9 ICON_WIFI: value: 10 ICON_CONNECTIONS: value: 11 ICON_ADD_HIDDEN: value: 12 ICON_TRASHBIN: value: 13 ICON_VISIBILITY: value: 14 ICON_KEY: value: 15 ICON_CONNECT: value: 16 ICON_DISCONNECT: value: 17 ICON_UP: value: 18 ICON_DOWN: value: 19 ICON_WAIT1: value: 20 ICON_WAIT2: value: 21 ICON_BLUETOOTH: value: 22 ICON_INFO: value: 23 ICON_TEXT: value: 24 ICON_QUESTIONMARK: value: 27 ICON_INFO_FILE: value: 28 ICON_DISC: value: 29 ICON_CONNECTED: value: 30 ICON_OBP: value: 31 ICON_OBD: value: 32 ICON_OPENFOLDER: value: 33 ICON_BRICK1: value: 34 N_ICON_NOS: value: 35 L_ICON_NO: &L_ICON_NO members: YES_NOTSEL: value: 0 YES_SEL: value: 1 NO_NOTSEL: value: 2 NO_SEL: value: 3 "OFF": value: 4 WAIT_VERT: value: 5 WAIT_HORZ: value: 6 TO_MANUAL: value: 7 WARNSIGN: value: 8 WARN_BATT: value: 9 WARN_POWER: value: 10 WARN_TEMP: value: 11 NO_USBSTICK: value: 12 TO_EXECUTE: value: 13 TO_BRICK: value: 14 TO_SDCARD: value: 15 TO_USBSTICK: value: 16 TO_BLUETOOTH: value: 17 TO_WIFI: value: 18 TO_TRASH: value: 19 TO_COPY: value: 20 TO_FILE: value: 21 CHAR_ERROR: value: 22 COPY_ERROR: value: 23 PROGRAM_ERROR: value: 24 WARN_MEMORY: value: 27 L_ICON_NOS: value: 28 M_ICON_NO: &M_ICON_NO members: ICON_STAR: value: 0 ICON_LOCKSTAR: value: 1 ICON_LOCK: value: 2 ICON_PC: value: 3 desc: Bluetooth type PC ICON_PHONE: value: 4 desc: Bluetooth type PHONE ICON_BRICK: value: 5 desc: Bluetooth type BRICK ICON_UNKNOWN: value: 6 desc: Bluetooth type UNKNOWN ICON_FROM_FOLDER: value: 7 ICON_CHECKBOX: value: 8 ICON_CHECKED: value: 9 ICON_XED: value: 10 M_ICON_NOS: value: 11 A_ICON_NO: &A_ICON_NO members: ICON_LEFT: value: 1 ICON_RIGHT: value: 2 A_ICON_NOS: value: 3 BTTYPE: &BTTYPE desc: Bluetooth Device Types members: BTTYPE_PC: desc: Bluetooth type PC value: 3 BTTYPE_PHONE: desc: Bluetooth type PHONE value: 4 BTTYPE_BRICK: desc: Bluetooth type BRICK value: 5 BTTYPE_UNKNOWN: desc: Bluetooth type UNKNOWN value: 6 BTTYPES: value: 7 LEDPATTERN: &LEDPATTERN desc: LED Pattern members: LED_BLACK: value: 0 LED_GREEN: value: 1 LED_RED: value: 2 LED_ORANGE: value: 3 LED_GREEN_FLASH: value: 4 LED_RED_FLASH: value: 5 LED_ORANGE_FLASH: value: 6 LED_GREEN_PULSE: value: 7 LED_RED_PULSE: value: 8 LED_ORANGE_PULSE: value: 9 LEDPATTERNS: value: 10 LEDTYPE: &LEDTYPE members: LED_ALL: value: 0 desc: All LEDs LED_RR: value: 1 desc: Right red LED_RG: value: 2 desc: Right green LED_LR: value: 3 desc: Left red LED_LG: value: 4 desc: Left green FILETYPE: &FILETYPE desc: File Types Avaliable members: FILETYPE_UNKNOWN: value: 0x00 TYPE_FOLDER: value: 0x01 TYPE_SOUND: value: 0x02 TYPE_BYTECODE: value: 0x03 TYPE_GRAPHICS: value: 0x04 TYPE_DATALOG: value: 0x05 TYPE_PROGRAM: value: 0x06 TYPE_TEXT: value: 0x07 TYPE_SDCARD: value: 0x10 TYPE_USBSTICK: value: 0x20 FILETYPES: value: 0x21 TYPE_RESTART_BROWSER: value: -1 TYPE_REFRESH_BROWSER: value: -2 RESULT: &RESULT desc: Describes result from executing functions members: OK: desc: No errors to report value: 0 BUSY: desc: Busy - try again value: 1 FAIL: desc: Something failed value: 2 STOP: desc: Stopped value: 4 START: desc: Start value: 8 DATA_FORMAT: &DATA_FORMAT desc: Data formats used in device type formats members: DATA_8: desc: DATA8 value: 0x00 DATA_16: desc: DATA16 value: 0x01 DATA_32: desc: DATA32 value: 0x02 DATA_F: desc: DATAF value: 0x03 DATA_S: desc: Zero terminated string value: 0x04 DATA_A: desc: Array handle value: 0x05 DATA_V: desc: Variable type value: 0x07 DATA_PCT: desc: Percent value: 0x10 DATA_RAW: desc: Raw value: 0x12 DATA_SI: desc: SI unit value: 0x13 DATA_FORMATS: value: 0x14 DEL: &DEL desc: Delimiter codes used to define how data is separated in files members: DEL_NONE: desc: No delimiter at all value: 0 DEL_TAB: desc: Use tab as delimiter value: 1 DEL_SPACE: desc: Use space as delimiter value: 2 DEL_RETURN: desc: Use return as delimiter value: 3 DEL_COLON: desc: Use colon as delimiter value: 4 DEL_COMMA: desc: Use comma as delimiter value: 5 DEL_LINEFEED: desc: Use line feed as delimiter value: 6 DEL_CRLF: desc: Use return+line feed as delimiter value: 7 DELS: value: 8 HWTYPE: &HWTYPE desc: Hardware Transport Layer members: HW_USB: value: 1 HW_BT: value: 2 HW_WIFI: value: 3 HWTYPES: value: 4 ENCRYPT: &ENCRYPT desc: Encryption Types members: ENCRYPT_NONE: value: 0 ENCRYPT_WPA2: value: 1 ENCRYPTS: value: 2 support: official: yes xtended: no compat: yes LMS_ENCRYPT: &LMS_ENCRYPT desc: Encryption Types members: LMS_ENCRYPT_NONE: value: 0 remarks: renamed from ENCRYPT_NONE LMS_ENCRYPT_WPA2: value: 1 remarks: renamed from ENCRYPT_WPA2 LMS_ENCRYPTS: value: 2 support: official: no xtended: yes compat: no remarks: renamed from ENCRYPT COLOR: &COLOR members: RED: value: 0 GREEN: value: 1 BLUE: value: 2 BLANK: value: 3 COLORS: value: 4 NXTCOLOR: &NXTCOLOR desc: Constants related to color sensor value using Color sensor as color detector members: BLACKCOLOR: value: 1 BLUECOLOR: value: 2 GREENCOLOR: value: 3 YELLOWCOLOR: value: 4 REDCOLOR: value: 5 WHITECOLOR: value: 6 WARNING: &WARNING desc: Warnings members: WARNING_TEMP: value: 0x01 WARNING_CURRENT: value: 0x02 WARNING_VOLTAGE: value: 0x04 WARNING_MEMORY: value: 0x08 WARNING_DSPSTAT: value: 0x10 WARNING_RAM: value: 0x20 WARNING_BATTLOW: value: 0x40 WARNING_BUSY: value: 0x80 WARNINGS: value: 0x3F OBJSTAT: &OBJSTAT desc: Values used to describe an object's status members: RUNNING: value: 0x0010 desc: Object code is running WAITING: value: 0x0020 desc: Object is waiting for final trigger STOPPED: value: 0x0040 desc: Object is stopped or not triggered yet HALTED: value: 0x0080 desc: Object is halted because a call is in progress DEVCMD: &DEVCMD desc: Device commands used to control (UART sensors) devices members: DEVCMD_RESET: value: 0x11 desc: UART device reset DEVCMD_FIRE: value: 0x11 desc: UART device fire (ultrasonic) support: official: yes xtended: yes compat: no remarks: Value is duplicate of DEVCMD_RESET. DEVCMD_CHANNEL: value: 0x12 desc: UART device channel (IR seeker) DEVCMDS: value: 0x13 ops: # VM ERROR: desc: This code does not exist in normal program value: 0x00 params: [] remarks: Dispatch status changes to INSTRBREAK NOP: desc: This code does absolutely nothing value: 0x01 params: [] PROGRAM_STOP: desc: Stops specific program id slot value: 0x02 params: - name: "PRGID" desc: Program id (GUI_SLOT = all, CURRENT_SLOT = current) type: PAR16 dir: in enum: *SLOT remarks: Dispatch status changes to PRGBREAK PROGRAM_START: desc: Start program id slot value: 0x03 params: - name: "PRGID" desc: Program id type: PAR16 dir: in enum: *SLOT - name: "SIZE" desc: Size of image type: PAR32 dir: in - name: "IP" desc: Address of image (value from opFILE(LOAD_IMAGE,..) ) type: PAR32 dir: in - name: "DEBUG" desc: Debug mode (0=normal, 1=debug, 2=don't execute) type: PAR8 dir: in remarks: Dispatch status unchanged OBJECT_STOP: desc: Stops specific object value: 0x04 params: - name: "OBJID" desc: Object id type: PAR16 dir: in remarks: Dispatch status changes to STOPBREAK OBJECT_START: desc: Start specific object value: 0x05 params: - name: "OBJID" desc: Object id type: PAR16 dir: in remarks: Dispatch status unchanged OBJECT_TRIG: desc: Triggers object and run the object if fully triggered value: 0x06 params: - name: "OBJID" desc: Object id type: PAR16 dir: in remarks: Dispatch status unchanged OBJECT_WAIT: desc: Wait until object has run value: 0x07 params: - name: "OBJID" type: PAR16 dir: in desc: Object id remarks: Dispatch status can change to BUSYBREAK RETURN: desc: Return from byte code subroutine value: 0x08 params: [] remarks: Dispatch status changes to STOPBREAK CALL: desc: Calls byte code subroutine value: 0x09 params: - name: "OBJID" desc: Object id type: PAR16 dir: in - name: "PARAMETERS" desc: Number of parameters type: PARNO dir: in remarks: Dispatch status changes to STOPBREAK or BUSYBREAK OBJECT_END: desc: Stops current object value: 0x0A params: [] remarks: Dispatch status changes to STOPBREAK SLEEP: desc: Breaks execution of current VMTHREAD value: 0x0B params: [] remarks: Dispatch status changes to INSTRBREAK PROGRAM_INFO: desc: Get program data value: 0x0C params: - name: "CMD" desc: Specific command parameter type: SUBP dir: in commands: OBJ_STOP: value: 0 params: - name: "PRGID" desc: Program slot number type: PAR16 dir: in enum: *SLOT - name: "OBJID" desc: Object id type: PAR16 dir: in OBJ_START: value: 4 params: - name: "PRGID" desc: Program slot number type: PAR16 dir: in enum: *SLOT - name: "OBJID" desc: Object id type: PAR16 dir: in GET_STATUS: value: 22 params: - name: "PRGID" desc: Program slot number type: PAR16 dir: in enum: *SLOT - name: "DATA" desc: Program status type: PAR8 dir: out GET_SPEED: value: 23 params: - name: "PRGID" desc: Program slot number type: PAR16 dir: in enum: *SLOT - name: "DATA" desc: Program speed [instr/S] type: PAR32 dir: out GET_PRGRESULT: value: 24 params: - name: "PRGID" desc: Program slot number type: PAR16 dir: in enum: *SLOT - name: "DATA" desc: Program result [OK, BUSY, FAIL] type: PAR8 dir: out SET_INSTR: desc: Set number of instructions before VMThread change value: 25 params: - name: "PRGID" desc: Program slot number type: PAR16 dir: in enum: *SLOT GET_PRGNAME: value: 26 params: - name: "PRGID" desc: Program slot number type: PAR16 dir: in enum: *SLOT - name: "NAME" desc: Program name type: PAR8 dir: out support: official: no xtended: yes compat: yes remarks: Dispatch status can change to FAILBREAK LABEL: desc: This code does nothing besides marking an address to a label value: 0x0D params: - name: "NO" desc: Label number type: PARLAB dir: in PROBE: desc: Display globals or object locals on terminal value: 0x0E params: - name: "PRGID" desc: Program slot number type: PAR16 dir: in enum: *SLOT - name: "OBJID" desc: Object id (zero means globals) type: PAR16 dir: in - name: "OFFSET" desc: Offset (start from) type: PAR32 dir: in - name: "SIZE" desc: Size (length of dump) zero means all (max 1024) type: PAR32 dir: in remarks: Dispatch status unchanged DO: desc: Run byte code snippet value: 0x0F params: - name: "PRGID" desc: Program slot number type: PAR16 dir: in enum: *SLOT - name: "IMAGE" desc: Address of image type: PAR32 dir: in - name: "GLOBAL" desc: Address of global variables type: PAR32 dir: in remarks: Dispatch status can change to BUSYBREAK # cMath "MATH" ADD8: desc: Add two 8-bit values DESTINATION = SOURCE1 + SOURCE2 value: 0x10 params: - name: "SOURCE1" type: PAR8 dir: in - name: "SOURCE2" type: PAR8 dir: in - name: "DESTINATION" type: PAR8 dir: out ADD16: desc: Add two 16-bit values DESTINATION = SOURCE1 + SOURCE2 value: 0x11 params: - name: "SOURCE1" type: PAR16 dir: in - name: "SOURCE2" type: PAR16 dir: in - name: "DESTINATION" type: PAR16 dir: out ADD32: desc: Add two 32-bit values DESTINATION = SOURCE1 + SOURCE2 value: 0x12 params: - name: "SOURCE1" type: PAR32 dir: in - name: "SOURCE2" type: PAR32 dir: in - name: "DESTINATION" type: PAR32 dir: out ADDF: desc: Add two floating point values DESTINATION = SOURCE1 + SOURCE2 value: 0x13 params: - name: "SOURCE1" type: PARF dir: in - name: "SOURCE2" type: PARF dir: in - name: "DESTINATION" type: PARF dir: out SUB8: desc: Subtract two 8 bit values DESTINATION = SOURCE1 - SOURCE2 value: 0x14 params: - name: "SOURCE1" type: PAR8 dir: in - name: "SOURCE2" type: PAR8 dir: in - name: "DESTINATION" type: PAR8 dir: out SUB16: desc: Subtract two 16 bit values DESTINATION = SOURCE1 - SOURCE2 value: 0x15 params: - name: "SOURCE1" type: PAR16 dir: in - name: "SOURCE2" type: PAR16 dir: in - name: "DESTINATION" type: PAR16 dir: out SUB32: desc: Subtract two 32 bit values DESTINATION = SOURCE1 - SOURCE2 value: 0x16 params: - name: "SOURCE1" type: PAR32 dir: in - name: "SOURCE2" type: PAR32 dir: in - name: "DESTINATION" type: PAR32 dir: out SUBF: desc: Subtract two floating point values DESTINATION = SOURCE1 - SOURCE2 value: 0x17 params: - name: "SOURCE1" type: PARF dir: in - name: "SOURCE2" type: PARF dir: in - name: "DESTINATION" type: PARF dir: out MUL8: desc: Multiply two 8 bit values DESTINATION = SOURCE1 * SOURCE2 value: 0x18 params: - name: "SOURCE1" type: PAR8 dir: in - name: "SOURCE2" type: PAR8 dir: in - name: "DESTINATION" type: PAR8 dir: out MUL16: desc: Multiply two 16 bit values DESTINATION = SOURCE1 * SOURCE2 value: 0x19 params: - name: "SOURCE1" type: PAR16 dir: in - name: "SOURCE2" type: PAR16 dir: in - name: "DESTINATION" type: PAR16 dir: out MUL32: desc: Multiply two 32 bit values DESTINATION = SOURCE1 * SOURCE2 value: 0x1A params: - name: "SOURCE1" type: PAR32 dir: in - name: "SOURCE2" type: PAR32 dir: in - name: "DESTINATION" type: PAR32 dir: out MULF: desc: Multiply two floating point values DESTINATION = SOURCE1 * SOURCE2 value: 0x1B params: - name: "SOURCE1" type: PARF dir: in - name: "SOURCE2" type: PARF dir: in - name: "DESTINATION" type: PARF dir: out DIV8: desc: Divide two 8 bit values DESTINATION = SOURCE1 / SOURCE2 value: 0x1C params: - name: "SOURCE1" type: PAR8 dir: in - name: "SOURCE2" type: PAR8 dir: in - name: "DESTINATION" type: PAR8 dir: out DIV16: desc: Divide two 16 bit values DESTINATION = SOURCE1 / SOURCE2 value: 0x1D params: - name: "SOURCE1" type: PAR16 dir: in - name: "SOURCE2" type: PAR16 dir: in - name: "DESTINATION" type: PAR16 dir: out DIV32: desc: Divide two 32 bit values DESTINATION = SOURCE1 / SOURCE2 value: 0x1E params: - name: "SOURCE1" type: PAR32 dir: in - name: "SOURCE2" type: PAR32 dir: in - name: "DESTINATION" type: PAR32 dir: out DIVF: desc: Divide two floating point values DESTINATION = SOURCE1 / SOURCE2 value: 0x1F params: - name: "SOURCE1" type: PARF dir: in - name: "SOURCE2" type: PARF dir: in - name: "DESTINATION" type: PARF dir: out # Logic "LOGIC" OR8: desc: Or two 8 bit values DESTINATION = SOURCE1 | SOURCE2 value: 0x20 params: - name: "SOURCE1" type: PAR8 dir: in - name: "SOURCE2" type: PAR8 dir: in - name: "DESTINATION" type: PAR8 dir: out OR16: desc: Or two 16 bit values DESTINATION = SOURCE1 | SOURCE2 value: 0x21 params: - name: "SOURCE1" type: PAR16 dir: in - name: "SOURCE2" type: PAR16 dir: in - name: "DESTINATION" type: PAR16 dir: out OR32: desc: Or two 32 bit values DESTINATION = SOURCE1 | SOURCE2 value: 0x22 params: - name: "SOURCE1" type: PAR32 dir: in - name: "SOURCE2" type: PAR32 dir: in - name: "DESTINATION" type: PAR32 dir: out AND8: desc: And two 8 bit values DESTINATION = SOURCE1 & SOURCE2 value: 0x24 params: - name: "SOURCE1" type: PAR8 dir: in - name: "SOURCE2" type: PAR8 dir: in - name: "DESTINATION" type: PAR8 dir: out AND16: desc: And two 16 bit values DESTINATION = SOURCE1 & SOURCE2 value: 0x25 params: - name: "SOURCE1" type: PAR16 dir: in - name: "SOURCE2" type: PAR16 dir: in - name: "DESTINATION" type: PAR16 dir: out AND32: desc: And two 32 bit values DESTINATION = SOURCE1 & SOURCE2 value: 0x26 params: - name: "SOURCE1" type: PAR32 dir: in - name: "SOURCE2" type: PAR32 dir: in - name: "DESTINATION" type: PAR32 dir: out XOR8: desc: Exclusive or two 8 bit values DESTINATION = SOURCE1 ^ SOURCE2 value: 0x28 params: - name: "SOURCE1" type: PAR8 dir: in - name: "SOURCE2" type: PAR8 dir: in - name: "DESTINATION" type: PAR8 dir: out XOR16: desc: Exclusive or two 16 bit values DESTINATION = SOURCE1 ^ SOURCE2 value: 0x29 params: - name: "SOURCE1" type: PAR16 dir: in - name: "SOURCE2" type: PAR16 dir: in - name: "DESTINATION" type: PAR16 dir: out XOR32: desc: Exclusive or two 32 bit values DESTINATION = SOURCE1 ^ SOURCE2 value: 0x2A params: - name: "SOURCE1" type: PAR32 dir: in - name: "SOURCE2" type: PAR32 dir: in - name: "DESTINATION" type: PAR32 dir: out RL8: desc: Rotate left 8 bit value DESTINATION = SOURCE1 << SOURCE2 value: 0x2C params: - name: "SOURCE1" type: PAR8 dir: in - name: "SOURCE2" type: PAR8 dir: in - name: "DESTINATION" type: PAR8 dir: out RL16: desc: Rotate left 16 bit value DESTINATION = SOURCE1 << SOURCE2 value: 0x2D params: - name: "SOURCE1" type: PAR16 dir: in - name: "SOURCE2" type: PAR16 dir: in - name: "DESTINATION" type: PAR16 dir: out RL32: desc: Rotate left 32 bit value DESTINATION = SOURCE1 << SOURCE2 value: 0x2E params: - name: "SOURCE1" type: PAR32 dir: in - name: "SOURCE2" type: PAR32 dir: in - name: "DESTINATION" type: PAR32 dir: out # cMove "MOVE" INIT_BYTES: desc: Move LENGTH number of DATA8 from BYTE STREAM to memory DESTINATION START value: 0x2F params: - name: "DESTINATION" desc: First element in DATA8 array to be initiated type: PAR8 dir: out - name: "LENGTH" desc: Number of elements to initiate type: PAR32 dir: in - name: "SOURCE" desc: First element to initiate DATA8 array with type: PARVALUES dir: in - name: "VALUES" type: PAR8 MOVE8_8: desc: Move 8 bit value from SOURCE to DESTINATION value: 0x30 params: - name: "SOURCE" type: PAR8 dir: in - name: "DESTINATION" type: PAR8 dir: out MOVE8_16: desc: Move 8 bit value from SOURCE to DESTINATION value: 0x31 params: - name: "SOURCE" type: PAR8 dir: in - name: "DESTINATION" type: PAR16 dir: out MOVE8_32: desc: Move 8 bit value from SOURCE to DESTINATION value: 0x32 params: - name: "SOURCE" type: PAR8 dir: in - name: "DESTINATION" type: PAR32 dir: out MOVE8_F: desc: Move 8 bit value from SOURCE to DESTINATION value: 0x33 params: - name: "SOURCE" type: PAR8 dir: in - name: "DESTINATION" type: PARF dir: out MOVE16_8: desc: Move 16 bit value from SOURCE to DESTINATION value: 0x34 params: - name: "SOURCE" type: PAR16 dir: in - name: "DESTINATION" type: PAR8 dir: out MOVE16_16: desc: Move 16 bit value from SOURCE to DESTINATION value: 0x35 params: - name: "SOURCE" type: PAR16 dir: in - name: "DESTINATION" type: PAR16 dir: out MOVE16_32: desc: Move 16 bit value from SOURCE to DESTINATION value: 0x36 params: - name: "SOURCE" type: PAR16 dir: in - name: "DESTINATION" type: PAR32 dir: out MOVE16_F: desc: Move 16 bit value from SOURCE to DESTINATION value: 0x37 params: - name: "SOURCE" type: PAR16 dir: in - name: "DESTINATION" type: PARF dir: out MOVE32_8: desc: Move 32 bit value from SOURCE to DESTINATION value: 0x38 params: - name: "SOURCE" type: PAR32 dir: in - name: "DESTINATION" type: PAR8 dir: out MOVE32_16: desc: Move 32 bit value from SOURCE to DESTINATION value: 0x39 params: - name: "SOURCE" type: PAR32 dir: in - name: "DESTINATION" type: PAR16 dir: out MOVE32_32: desc: Move 32 bit value from SOURCE to DESTINATION value: 0x3A params: - name: "SOURCE" type: PAR32 dir: in - name: "DESTINATION" type: PAR32 dir: out MOVE32_F: desc: Move 32 bit value from SOURCE to DESTINATION value: 0x3B params: - name: "SOURCE" type: PAR32 dir: in - name: "DESTINATION" type: PARF dir: out MOVEF_8: desc: Move floating point value from SOURCE to DESTINATION value: 0x3C params: - name: "SOURCE" type: PARF dir: in - name: "DESTINATION" type: PAR8 dir: out MOVEF_16: desc: Move floating point value from SOURCE to DESTINATION value: 0x3D params: - name: "SOURCE" type: PARF dir: in - name: "DESTINATION" type: PAR16 dir: out MOVEF_32: desc: Move floating point value from SOURCE to DESTINATION value: 0x3E params: - name: "SOURCE" type: PARF dir: in - name: "DESTINATION" type: PAR32 dir: out MOVEF_F: desc: Move floating point value from SOURCE to DESTINATION value: 0x3F params: - name: "SOURCE" type: PARF dir: in - name: "DESTINATION" type: PARF dir: out # cBranch "BRANCH" JR: desc: Branch unconditionally relative value: 0x40 params: - name: "OFFSET" type: PAR32 dir: in JR_FALSE: desc: Branch relative if FLAG is FALSE (zero) value: 0x41 params: - name: "FLAG" type: PAR8 dir: in - name: "OFFSET" type: PAR32 dir: in JR_TRUE: desc: Branch relative if FLAG is TRUE (non zero) value: 0x42 params: - name: "FLAG" type: PAR8 dir: in - name: "OFFSET" type: PAR32 dir: in JR_NAN: desc: Branch relative if VALUE is NAN (not a number) value: 0x43 params: - name: "VALUE" type: PARF dir: in - name: "OFFSET" type: PAR32 dir: in # cCompare "COMPARE" CP_LT8: desc: If LEFT is less than RIGTH - set FLAG value: 0x44 params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "FLAG" type: PAR8 dir: out CP_LT16: desc: If LEFT is less than RIGTH - set FLAG value: 0x45 params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "FLAG" type: PAR8 dir: out CP_LT32: desc: If LEFT is less than RIGTH - set FLAG value: 0x46 params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "FLAG" type: PAR8 dir: out CP_LTF: desc: If LEFT is less than RIGTH - set FLAG value: 0x47 params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "FLAG" type: PAR8 dir: out CP_GT8: desc: If LEFT is greater than RIGTH - set FLAG value: 0x48 params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "FLAG" type: PAR8 dir: out CP_GT16: desc: If LEFT is greater than RIGTH - set FLAG value: 0x49 params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "FLAG" type: PAR8 dir: out CP_GT32: desc: If LEFT is greater than RIGTH - set FLAG value: 0x4A params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "FLAG" type: PAR8 dir: out CP_GTF: desc: If LEFT is greater than RIGTH - set FLAG value: 0x4B params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "FLAG" type: PAR8 dir: out CP_EQ8: desc: If LEFT is equal to RIGTH - set FLAG value: 0x4C params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "FLAG" type: PAR8 dir: out CP_EQ16: desc: If LEFT is equal to RIGTH - set FLAG value: 0x4D params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "FLAG" type: PAR8 dir: out CP_EQ32: desc: If LEFT is equal to RIGTH - set FLAG value: 0x4E params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "FLAG" type: PAR8 dir: out CP_EQF: desc: If LEFT is equal to RIGTH - set FLAG value: 0x4F params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "FLAG" type: PAR8 dir: out CP_NEQ8: desc: If LEFT is not equal to RIGTH - set FLAG value: 0x50 params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "FLAG" type: PAR8 dir: out CP_NEQ16: desc: If LEFT is not equal to RIGTH - set FLAG value: 0x51 params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "FLAG" type: PAR8 dir: out CP_NEQ32: desc: If LEFT is not equal to RIGTH - set FLAG value: 0x52 params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "FLAG" type: PAR8 dir: out CP_NEQF: desc: If LEFT is not equal to RIGTH - set FLAG value: 0x53 params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "FLAG" type: PAR8 dir: out CP_LTEQ8: desc: If LEFT is less than or equal to RIGTH - set FLAG value: 0x54 params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "FLAG" type: PAR8 dir: out CP_LTEQ16: desc: If LEFT is less than or equal to RIGTH - set FLAG value: 0x55 params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "FLAG" type: PAR8 dir: out CP_LTEQ32: desc: If LEFT is less than or equal to RIGTH - set FLAG value: 0x56 params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "FLAG" type: PAR8 dir: out CP_LTEQF: desc: If LEFT is less than or equal to RIGTH - set FLAG value: 0x57 params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "FLAG" type: PAR8 dir: out CP_GTEQ8: desc: If LEFT is greater than or equal to RIGTH - set FLAG value: 0x58 params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "FLAG" type: PAR8 dir: out CP_GTEQ16: desc: If LEFT is greater than or equal to RIGTH - set FLAG value: 0x59 params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "FLAG" type: PAR8 dir: out CP_GTEQ32: desc: If LEFT is greater than or equal to RIGTH - set FLAG value: 0x5A params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "FLAG" type: PAR8 dir: out CP_GTEQF: desc: If LEFT is greater than or equal to RIGTH - set FLAG value: 0x5B params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "FLAG" type: PAR8 dir: out # Select "SELECT" SELECT8: desc: If FLAG is set move SOURCE1 to RESULT else move SOURCE2 to RESULT value: 0x5C params: - name: "FLAG" type: PAR8 dir: in - name: "SOURCE1" type: PAR8 dir: in - name: "SOURCE2" type: PAR8 dir: in - name: "RESULT" type: PAR8 dir: out SELECT16: desc: If FLAG is set move SOURCE1 to RESULT else move SOURCE2 to RESULT value: 0x5D params: - name: "FLAG" type: PAR8 dir: in - name: "SOURCE1" type: PAR16 dir: in - name: "SOURCE2" type: PAR16 dir: in - name: "RESULT" type: PAR16 dir: out SELECT32: desc: If FLAG is set move SOURCE1 to RESULT else move SOURCE2 to RESULT value: 0x5E params: - name: "FLAG" type: PAR8 dir: in - name: "SOURCE1" type: PAR32 dir: in - name: "SOURCE2" type: PAR32 dir: in - name: "RESULT" type: PAR32 dir: out SELECTF: desc: If FLAG is set move SOURCE1 to RESULT else move SOURCE2 to RESULT value: 0x5F params: - name: "FLAG" type: PAR8 dir: in - name: "SOURCE1" type: PARF dir: in - name: "SOURCE2" type: PARF dir: in - name: "RESULT" type: PARF dir: out # VM SYSTEM: desc: Executes a system command value: 0x60 params: - name: "COMMAND" desc: Command string (HND) type: PAR8 dir: in - name: "STATUS" desc: Return status of the command type: PAR32 dir: out PORT_CNV_OUTPUT: desc: Convert encoded port to Layer and Bitfield value: 0x61 params: - name: "PortIn" desc: EncodedPortNumber type: PAR32 dir: in - name: "Layer" desc: Layer type: PAR8 dir: out - name: "Bitfield" desc: Bitfield type: PAR8 dir: out - name: "Inverted" desc: yes if left/right motor are inverted (ie, C&A) type: PAR8 dir: out PORT_CNV_INPUT: desc: Convert encoded port to Layer and Port value: 0x62 params: - name: "PortIn" desc: EncodedPortNumber type: PAR32 dir: in - name: "Layer" desc: Layer type: PAR8 dir: out - name: "PortOut" desc: 0-index port for use with VM commands type: PAR8 dir: out NOTE_TO_FREQ: desc: Convert note to tone value: 0x63 params: - name: "NOTE" desc: Note string (HND) (e.c. "C#4") type: PAR8 dir: in - name: "FREQ" desc: Frequency [Hz] type: PAR16 dir: out # cBranch "BRANCH" JR_LT8: desc: Branch relative OFFSET if LEFT is less than RIGHT value: 0x64 params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "OFFSET" type: PAR32 dir: in JR_LT16: desc: Branch relative OFFSET if LEFT is less than RIGHT value: 0x65 params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "OFFSET" type: PAR32 dir: in JR_LT32: desc: Branch relative OFFSET if LEFT is less than RIGHT value: 0x66 params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "OFFSET" type: PAR32 dir: in JR_LTF: desc: Branch relative OFFSET if LEFT is less than RIGHT value: 0x67 params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "OFFSET" type: PAR32 dir: in JR_GT8: desc: Branch relative OFFSET if LEFT is greater than RIGHT value: 0x68 params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "OFFSET" type: PAR32 dir: in JR_GT16: desc: Branch relative OFFSET if LEFT is greater than RIGHT value: 0x69 params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "OFFSET" type: PAR32 dir: in JR_GT32: desc: Branch relative OFFSET if LEFT is greater than RIGHT value: 0x6A params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "OFFSET" type: PAR32 dir: in JR_GTF: desc: Branch relative OFFSET if LEFT is greater than RIGHT value: 0x6B params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "OFFSET" type: PAR32 dir: in JR_EQ8: desc: Branch relative OFFSET if LEFT is equal to RIGHT value: 0x6C params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "OFFSET" type: PAR32 dir: in JR_EQ16: desc: Branch relative OFFSET if LEFT is equal to RIGHT value: 0x6D params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "OFFSET" type: PAR32 dir: in JR_EQ32: desc: Branch relative OFFSET if LEFT is equal to RIGHT value: 0x6E params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "OFFSET" type: PAR32 dir: in JR_EQF: desc: Branch relative OFFSET if LEFT is equal to RIGHT value: 0x6F params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "OFFSET" type: PAR32 dir: in JR_NEQ8: desc: Branch relative OFFSET if LEFT is not equal to RIGHT value: 0x70 params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "OFFSET" type: PAR32 dir: in JR_NEQ16: desc: Branch relative OFFSET if LEFT is not equal to RIGHT value: 0x71 params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "OFFSET" type: PAR32 dir: in JR_NEQ32: desc: Branch relative OFFSET if LEFT is not equal to RIGHT value: 0x72 params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "OFFSET" type: PAR32 dir: in JR_NEQF: desc: Branch relative OFFSET if LEFT is not equal to RIGHT value: 0x73 params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "OFFSET" type: PAR32 dir: in JR_LTEQ8: desc: Branch relative OFFSET if LEFT is less than or equal to RIGHT value: 0x74 params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "OFFSET" type: PAR32 dir: in JR_LTEQ16: desc: Branch relative OFFSET if LEFT is less than or equal to RIGHT value: 0x75 params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "OFFSET" type: PAR32 dir: in JR_LTEQ32: desc: Branch relative OFFSET if LEFT is less than or equal to RIGHT value: 0x76 params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "OFFSET" type: PAR32 dir: in JR_LTEQF: desc: Branch relative OFFSET if LEFT is less than or equal to RIGHT value: 0x77 params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "OFFSET" type: PAR32 dir: in JR_GTEQ8: desc: Branch relative OFFSET if LEFT is greater than or equal to RIGHT value: 0x78 params: - name: "LEFT" type: PAR8 dir: in - name: "RIGHT" type: PAR8 dir: in - name: "OFFSET" type: PAR32 dir: in JR_GTEQ16: desc: Branch relative OFFSET if LEFT is greater than or equal to RIGHT value: 0x79 params: - name: "LEFT" type: PAR16 dir: in - name: "RIGHT" type: PAR16 dir: in - name: "OFFSET" type: PAR32 dir: in JR_GTEQ32: desc: Branch relative OFFSET if LEFT is greater than or equal to RIGHT value: 0x7A params: - name: "LEFT" type: PAR32 dir: in - name: "RIGHT" type: PAR32 dir: in - name: "OFFSET" type: PAR32 dir: in JR_GTEQF: desc: Branch relative OFFSET if LEFT is greater than or equal to RIGHT value: 0x7B params: - name: "LEFT" type: PARF dir: in - name: "RIGHT" type: PARF dir: in - name: "OFFSET" type: PAR32 dir: in # VM INFO: desc: Info functions entry value: 0x7C params: - name: "CMD" type: SUBP commands: SET_ERROR: value: 1 params: - name: "NUMBER" desc: Error number type: PAR8 dir: in GET_ERROR: value: 2 params: - name: "NUMBER" desc: Error number type: PAR8 dir: out ERRORTEXT: desc: Convert error number to text string value: 3 params: - name: "NUMBER" desc: Error number type: PAR8 dir: in - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out GET_VOLUME: value: 4 params: - name: "VALUE" desc: Volume [0..100%] type: PAR8 dir: out SET_VOLUME: value: 5 params: - name: "VALUE" desc: Volume [0..100%] type: PAR8 dir: in GET_MINUTES: value: 6 params: - name: "VALUE" desc: Minutes to sleep [0..120min] (0 = never) type: PAR8 dir: out SET_MINUTES: value: 7 params: - name: "VALUE" desc: Minutes to sleep [0..120min] (0 = never) type: PAR8 dir: in STRINGS: desc: String function entry value: 0x7D params: - name: "CMD" type: SUBP commands: GET_SIZE: desc: Get size of string (not including zero termination) value: 1 params: - name: "SOURCE1" desc: String variable or handle to string type: PAR8 dir: in - name: "SIZE" desc: Size type: PAR16 dir: out ADD: desc: Add two strings (SOURCE1 + SOURCE2 -> DESTINATION) value: 2 params: - name: "SOURCE1" desc: String variable or handle to string type: PAR8 dir: in - name: "SOURCE2" desc: String variable or handle to string type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out COMPARE: desc: Compare two strings value: 3 params: - name: "SOURCE1" desc: String variable or handle to string type: PAR8 dir: in - name: "SOURCE2" desc: String variable or handle to string type: PAR8 dir: in - name: "RESULT" desc: Result (0 = not equal, 1 = equal) type: PAR8 dir: out DUPLICATE: desc: Duplicate a string (SOURCE1 -> DESTINATION) value: 5 params: - name: "SOURCE1" desc: String variable or handle to string type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out VALUE_TO_STRING: desc: Convert floating point value to a string (strips trailing zeroes) value: 6 params: - name: "VALUE" desc: 'Value to write (if "nan" op to 4 dashes is returned: "----")' type: PARF dir: in - name: "FIGURES" desc: > Total number of figures inclusive decimal point (FIGURES < 0 -> Left adjusted) type: PAR8 dir: in - name: "DECIMALS" desc: Number of decimals type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out STRING_TO_VALUE: value: 7 params: - name: "SOURCE1" desc: String variable or handle to string type: PAR8 dir: in - name: "DESTINATION" desc: Value type: PARF dir: out STRIP: desc: Strip a string for spaces (SOURCE1 -> DESTINATION) value: 8 params: - name: "SOURCE1" desc: String variable or handle to string type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out NUMBER_TO_STRING: desc: Convert integer value to a string value: 9 params: - name: "VALUE" desc: Value to write type: PAR16 dir: in - name: "FIGURES" desc: Total number of figures type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out SUB: desc: > Return DESTINATION: a substring from SOURCE1 that starts were SOURCE2 ends value: 10 params: - name: "SOURCE1" desc: String variable or handle to string type: PAR8 dir: in - name: "SOURCE2" desc: String variable or handle to string type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out VALUE_FORMATTED: desc: Convert floating point value to a formatted string value: 11 params: - name: "VALUE" desc: Value to write type: PARF dir: in - name: "FORMAT" desc: Format string variable or handle to string type: PAR8 dir: in - name: "SIZE" desc: Total size of destination string type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out NUMBER_FORMATTED: desc: Convert integer number to a formatted string value: 12 params: - name: "VALUE" desc: Number to write type: PAR32 dir: in - name: "FORMAT" desc: Format string variable or handle to string type: PAR8 dir: in - name: "SIZE" desc: Total size of destination string type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out MEMORY_WRITE: desc: Write VM memory value: 0x7E params: - name: "PRGID" desc: Program slot number (must be running) type: PAR16 dir: in enum: *SLOT - name: "OBJID" desc: Object id (zero means globals) type: PAR16 dir: in - name: "OFFSET" desc: Offset (start from) type: PAR32 dir: in - name: "SIZE" desc: Size (length of array to write) type: PAR32 dir: in - name: "ARRAY" desc: First element of DATA8 array to write type: PAR8 dir: in MEMORY_READ: desc: Read VM memory value: 0x7F params: - name: "PRGID" desc: Program slot number (must be running) type: PAR16 dir: in enum: *SLOT - name: "OBJID" desc: Object id (zero means globals) type: PAR16 dir: in - name: "OFFSET" desc: Offset (start from) type: PAR32 dir: in - name: "SIZE" desc: Size (length of array to read) type: PAR32 dir: in - name: "ARRAY" desc: First element of DATA8 array to receive data type: PAR8 dir: out # cUi "UI" UI_FLUSH: desc: User Interface flush buffers value: 0x80 params: [] UI_READ: desc: User Interface read value: 0x81 params: - name: "CMD" type: SUBP commands: GET_VBATT: value: 1 params: - name: "VALUE" desc: Battery voltage [V] type: PARF dir: out GET_IBATT: value: 2 params: - name: "VALUE" desc: Battery current [A] type: PARF dir: out GET_OS_VERS: desc: Get os version string value: 3 params: - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out GET_EVENT: value: 4 params: - name: "EVENT" type: PAR8 GET_TBATT: value: 5 params: - name: "VALUE" desc: Battery temperature rise [C] type: PARF dir: out remarks: > This returns 0 on all known hardware. The EV3 has code to estimate battery temperature, but it is disabled. GET_IINT: value: 6 params: - name: "IINT" desc: Integrated battery current [A] type: PARF dir: out GET_IMOTOR: value: 7 params: - name: "VALUE" desc: Motor current [A] type: PARF dir: out remarks: > Only pre-release EV3 hardware returns a real value. Returns 0 on all known devices (they lack the necessary hardware). GET_STRING: desc: Get string from terminal value: 8 params: - name: "LENGTH" desc: Maximal length of string returned type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out GET_HW_VERS: desc: Get hardware version string value: 9 params: - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out GET_FW_VERS: desc: Get firmware version string value: 10 params: - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out GET_FW_BUILD: desc: Get firmware build string value: 11 params: - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out GET_OS_BUILD: desc: Get os build string value: 12 params: - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out GET_ADDRESS: value: 13 params: - name: "VALUE" desc: Address from lms_cmdin type: PAR32 dir: out GET_CODE: value: 14 params: - name: "LENGTH" desc: Maximal code stream length type: PAR32 dir: in - name: "IMAGE" desc: Address of image type: PAR32 dir: out - name: "GLOBAL" desc: Address of global variables type: PAR32 dir: out - name: "FLAG" desc: Flag tells if image is ready type: PAR8 dir: out KEY: value: 15 params: - name: "VALUE" desc: Key value from lms_cmdin (0 = no key) type: PAR8 dir: out GET_SHUTDOWN: value: 16 params: - name: "FLAG" type: PAR8 GET_WARNING: value: 17 params: - name: "WARNINGS" type: PAR8 enum: *WARNING GET_LBATT: desc: Get battery level in % value: 18 params: - name: "PCT" desc: Battery level [0..100] type: PAR8 dir: out TEXTBOX_READ: value: 21 params: - name: "TEXT" type: PAR8 - name: "SIZE" type: PAR32 - name: "DEL" type: PAR8 - name: "LENGTH" type: PAR8 - name: "LINE" type: PAR16 - name: "DESTINATION" type: PAR8 GET_VERSION: desc: Get version string value: 26 params: - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out GET_IP: desc: Get IP address string value: 27 params: - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out GET_POWER: value: 29 params: - name: "VBATT" desc: Battery voltage [V] type: PARF dir: out - name: "IBATT" desc: Battery current [A] type: PARF dir: out - name: "IINT" desc: Integrated battery current [A] type: PARF dir: out - name: "IMOTOR" desc: Motor current [A] type: PARF dir: out remarks: All known hardware returns 0 for IMOTOR. GET_SDCARD: value: 30 params: - name: "STATE" desc: SD card present [0..1] type: PAR8 dir: out - name: "TOTAL" desc: Kbytes in total type: PAR32 dir: out - name: "FREE" desc: Kbytes free type: PAR32 dir: out GET_USBSTICK: value: 31 params: - name: "STATE" desc: USB stick present [0..1] type: PAR8 dir: out - name: "TOTAL" desc: Kbytes in total type: PAR32 dir: out - name: "FREE" desc: Kbytes free type: PAR32 dir: out UI_WRITE: value: 0x82 params: - name: "CMD" type: SUBP commands: WRITE_FLUSH: value: 1 params: [] FLOATVALUE: value: 2 params: - name: "VALUE" desc: Value to write type: PARF dir: in - name: "FIGURES" desc: Total number of figures inclusive decimal point type: PAR8 dir: in - name: "DECIMALS" desc: Number of decimals type: PAR8 dir: in STAMP: value: 3 params: - name: "VALUE" type: PAR8 PUT_STRING: value: 8 params: - name: "STRING" desc: First character in string to write type: PAR8 dir: in VALUE8: value: 9 params: - name: "VALUE" desc: Value to write type: PAR8 dir: in VALUE16: value: 10 params: - name: "VALUE" desc: Value to write type: PAR16 dir: in VALUE32: value: 11 params: - name: "VALUE" desc: Value to write type: PAR32 dir: in VALUEF: value: 12 params: - name: "VALUE" desc: Value to write type: PARF dir: in ADDRESS: value: 13 params: - name: "VALUE" type: PAR32 dir: out CODE: value: 14 params: - name: "ARRAY" desc: First byte in byte array to write type: PAR8 dir: in - name: "LENGTH" desc: Length of array type: PAR32 dir: in DOWNLOAD_END: desc: > Send to brick when file down load is completed (plays sound and updates the UI browser) value: 15 params: [] SCREEN_BLOCK: desc: > Set or clear screen block status (if screen blocked - all graphical screen action are disabled) value: 16 params: - name: "STATUS" desc: Value [0 = normal,1 = blocked] type: PAR8 dir: in ALLOW_PULSE: value: 17 params: - name: "VALUE" type: PAR8 SET_PULSE: value: 18 params: - name: "VALUE" type: PAR8 TEXTBOX_APPEND: desc: Append line of text at the bottom of a text box value: 21 params: - name: "TEXT" desc: First character in text box text (must be zero terminated) type: PAR8 dir: in - name: "SIZE" desc: Maximal text size (including zero termination) type: PAR32 dir: in - name: "DEL" desc: Delimiter code type: PAR8 dir: in enum: *DEL - name: "SOURCE" desc: String variable or handle to string to append type: PAR8 dir: in SET_BUSY: value: 22 params: - name: "VALUE" desc: Value [0,1] type: PAR8 dir: in SET_TESTPIN: value: 24 params: - name: "STATE" desc: Value [0 = low,1 = high] type: PAR8 dir: in remarks: > This was only available on pre-release EV3 hardware. INIT_RUN: desc: Start the "Mindstorms" "run" screen value: 25 params: [] UPDATE_RUN: value: 26 params: [] LED: value: 27 params: - name: "PATTERN" desc: LED Pattern type: PAR8 dir: in enum: *LEDPATTERN POWER: value: 29 params: - name: "VALUE" desc: Value [0,1] type: PAR8 dir: in GRAPH_SAMPLE: desc: > Update tick to scroll graph horizontally in memory when drawing graph in "scope" mode value: 30 params: [] TERMINAL: value: 31 params: - name: "STATE" desc: Value [0 = Off,1 = On] type: PAR8 dir: in remarks: Dispatch status can change to BUSYBREAK and FAILBREAK UI_BUTTON: value: 0x83 params: - name: "CMD" type: SUBP commands: SHORTPRESS: value: 1 params: - name: "BUTTON" type: PAR8 dir: in enum: *BUTTONTYPE - name: "STATE" desc: Button has been pressed (0 = no, 1 = yes) type: PAR8 dir: out LONGPRESS: value: 2 params: - name: "BUTTON" type: PAR8 dir: in enum: *BUTTONTYPE - name: "STATE" desc: Button has been pressed (0 = no, 1 = yes) type: PAR8 dir: out WAIT_FOR_PRESS: value: 3 params: [] FLUSH: value: 4 params: [] PRESS: value: 5 params: - name: "BUTTON" type: PAR8 dir: in enum: *BUTTONTYPE RELEASE: value: 6 params: - name: "BUTTON" type: PAR8 dir: in enum: *BUTTONTYPE GET_HORZ: value: 7 params: - name: "VALUE" desc: Horizontal arrows data (-1 = left, +1 = right, 0 = not pressed) type: PAR16 dir: out GET_VERT: value: 8 params: - name: "VALUE" desc: Vertical arrows data (-1 = up, +1 = down, 0 = not pressed) type: PAR16 dir: out PRESSED: value: 9 params: - name: "BUTTON" type: PAR8 dir: in enum: *BUTTONTYPE - name: "STATE" desc: Button is pressed (0 = no, 1 = yes) type: PAR8 dir: out SET_BACK_BLOCK: value: 10 params: - name: "BLOCKED" desc: Set UI back button blocked flag (0 = not blocked, 1 = blocked) type: PAR8 dir: in GET_BACK_BLOCK: value: 11 params: - name: "BLOCKED" desc: Get UI back button blocked flag (0 = not blocked, 1 = blocked) type: PAR8 dir: out TESTSHORTPRESS: value: 12 params: - name: "BUTTON" type: PAR8 dir: in enum: *BUTTONTYPE - name: "STATE" desc: Button has been hold down(0 = no, 1 = yes) type: PAR8 dir: out TESTLONGPRESS: value: 13 params: - name: "BUTTON" type: PAR8 dir: in enum: *BUTTONTYPE - name: "STATE" desc: Button has been hold down(0 = no, 1 = yes) type: PAR8 dir: out GET_BUMBED: value: 14 params: - name: "BUTTON" type: PAR8 dir: in enum: *BUTTONTYPE - name: "STATE" desc: Button has been pressed (0 = no, 1 = yes) type: PAR8 dir: out support: official: yes xtended: yes compat: no GET_BUMPED: value: 14 params: - name: "BUTTON" type: PAR8 dir: in enum: *BUTTONTYPE - name: "STATE" desc: Button has been pressed (0 = no, 1 = yes) type: PAR8 dir: out support: official: no xtended: no compat: yes remarks: Renamed from GET_BUMBED GET_CLICK: desc: Get and clear click sound request (internal use only) value: 15 params: - name: "CLICK" desc: Click sound request (0 = no, 1 = yes) type: PAR8 dir: out UI_DRAW: desc: UI draw value: 0x84 params: - name: "CMD" type: SUBP commands: UPDATE: value: 0 params: [] CLEAN: value: 1 params: [] PIXEL: value: 2 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in LINE: value: 3 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "X1" desc: X end [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y1 " desc: Y end [0..LCD_HEIGHT] type: PAR16 dir: in CIRCLE: value: 4 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "R" desc: Radius type: PAR16 dir: in TEXT: value: 5 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "STRING" desc: First character in string to draw type: PAR8 dir: in ICON: value: 6 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "TYPE" desc: Icon type (pool) type: PAR8 enum: *ICONTYPE dir: in - name: "NO" desc: Icon number type: PAR8 dir: in PICTURE: value: 7 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "IP" desc: Address of picture type: PAR32 dir: in VALUE: value: 8 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "VALUE" desc: Value to write type: PARF dir: in - name: "FIGURES" desc: Total number of figures inclusive decimal point type: PAR8 dir: in - name: "DECIMALS" desc: Number of decimals type: PAR8 dir: in FILLRECT: value: 9 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "X1" desc: X size [0..LCD_WIDTH - X0] type: PAR16 dir: in - name: "Y1 " desc: Y size [0..LCD_HEIGHT - Y0] type: PAR16 dir: in RECT: value: 10 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "X1" desc: X size [0..LCD_WIDTH - X0] type: PAR16 dir: in - name: "Y1 " desc: Y size [0..LCD_HEIGHT - Y0] type: PAR16 dir: in support: official: yes xtended: no compat: no RECTANGLE: value: 10 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "X1" desc: X size [0..LCD_WIDTH - X0] type: PAR16 dir: in - name: "Y1 " desc: Y size [0..LCD_HEIGHT - Y0] type: PAR16 dir: in support: official: no xtended: yes compat: yes remarks: renamed from RECT NOTIFICATION: value: 11 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "ICON1" desc: First icon type: PAR8 dir: in - name: "ICON2" desc: Second icon type: PAR8 dir: in - name: "ICON3" desc: Third icon type: PAR8 dir: in - name: "STRING" desc: First character in notification string type: PAR8 dir: in - name: "STATE" desc: State 0 = INIT type: PAR8 dir: in QUESTION: value: 12 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "ICON1" desc: First icon type: PAR8 dir: in - name: "ICON2" desc: Second icon type: PAR8 dir: in - name: "STRING" desc: First character in question string type: PAR8 dir: in - name: "STATE" desc: State 0 = NO, 1 = OK type: PAR8 dir: in - name: "OK" desc: Answer 0 = NO, 1 = OK, -1 = SKIP type: PAR8 dir: out KEYBOARD: value: 13 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "ICON" type: PAR8 dir: in - name: "LENGTH" desc: Maximal string length type: PAR8 dir: in - name: "DEFAULT" desc: Default string (0 = none) type: PAR8 dir: in - name: "CHARSET" desc: > Internal use (must be a variable initialised by a "valid character set") type: PAR8 dir: in - name: "STRING" desc: First character in string receiving keyboard input type: PAR8 dir: out BROWSE: value: 14 params: - name: "TYPE" desc: Browser Types Avaliable type: PAR8 dir: in enum: *BROWSERTYPE - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "X1" desc: X size [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y1" desc: Y size [0..LCD_HEIGHT] type: PAR16 dir: in - name: "LENGTH" desc: Maximal string length type: PAR8 dir: in - name: "ITEM_TYPE" desc: > Item type (folder, byte code file, sound file, ...)(must be a zero initialised variable) type: PAR8 dir: out - name: "STRING" desc: First character in string receiving selected item name type: PAR8 dir: out VERTBAR: value: 15 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "X1" desc: X size [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y1" desc: Y size [0..LCD_HEIGHT] type: PAR16 dir: in - name: "MIN" desc: Minimum value type: PAR16 dir: in - name: "MAX" desc: Maximum value type: PAR16 dir: in - name: "ACT" desc: Actual value type: PAR16 dir: in INVERSERECT: value: 16 params: - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "X1" desc: X size [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y1 " desc: Y size [0..LCD_HEIGHT] type: PAR16 dir: in SELECT_FONT: value: 17 params: - name: "TYPE" desc: Font type [0..2] font will change to 0 when UPDATE is called type: PAR8 enum: *FONTTYPE dir: in TOPLINE: value: 18 params: - name: "ENABLE" desc: Enable top status line (0 = disabled, 1 = enabled) type: PAR8 dir: in FILLWINDOW: value: 19 params: - name: "COLOR" desc: > Color [BG_COLOR..FG_COLOR] (Color != BG_COLOR and FG_COLOR -> test pattern) type: PAR8 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "Y1" desc: X size [0..LCD_HEIGHT] type: PAR16 dir: in SCROLL: value: 20 params: - name: "Y" type: PAR16 DOTLINE: value: 21 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "X1" desc: X end [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y1 " desc: Y end [0..LCD_HEIGHT] type: PAR16 dir: in - name: "ON " desc: On pixels type: PAR16 dir: in - name: "OFF " desc: Off pixels type: PAR16 dir: in VIEW_VALUE: value: 22 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "VALUE" desc: Value to write type: PARF dir: in - name: "FIGURES" desc: Total number of figures inclusive decimal point type: PAR8 dir: in - name: "DECIMALS" desc: Number of decimals type: PAR8 dir: in VIEW_UNIT: value: 23 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "VALUE" desc: Value to write type: PARF dir: in - name: "FIGURES" desc: Total number of figures inclusive decimal point type: PAR8 dir: in - name: "DECIMALS" desc: Number of decimals type: PAR8 dir: in - name: "LENGTH" desc: Maximal string length type: PAR8 dir: in - name: "STRING" desc: First character in string to draw type: PAR8 dir: in FILLCIRCLE: value: 24 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "R" desc: Radius type: PAR16 dir: in STORE: value: 25 params: - name: "NO" desc: Level number type: PAR8 dir: in RESTORE: value: 26 params: - name: "NO" desc: Level number (N=0 -> Saved screen just before run) type: PAR8 dir: in ICON_QUESTION: value: 27 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "STATE" desc: State 0 = INIT type: PAR8 dir: in - name: "ICONS" desc: bitfield with icons type: PAR32 dir: in BMPFILE: value: 28 params: - name: "COLOR" desc: Color [BG_COLOR..FG_COLOR] type: PAR8 dir: in - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "Y0" desc: Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "NAME" desc: First character in filename (character string) type: PAR8 dir: in POPUP: value: 29 params: - name: "OPEN" type: PAR8 GRAPH_SETUP: value: 30 params: - name: "X0" desc: X start cord [0..LCD_WIDTH] type: PAR16 dir: in - name: "X1" desc: X size [0..LCD_WIDTH - X0] type: PAR16 dir: in - name: "ITEMS" desc: Number of datasets in arrays type: PAR16 dir: in - name: "OFFSET" desc: DATA16 array (handle) containing Y start cord [0..LCD_HEIGHT] type: PAR16 dir: in - name: "SPAN" desc: > DATA16 array (handle) containing Y size [0..(LCD_HEIGHT - hOFFSET[])] type: PAR8 dir: in - name: "MIN" desc: DATAF array (handle) containing min values type: PAR16 dir: in - name: "MAX" desc: DATAF array (handle) containing max values type: PAR16 dir: in - name: "SAMPLE" desc: DATAF array (handle) containing sample values type: PAR16 dir: in GRAPH_DRAW: value: 31 params: - name: "VIEW" desc: Dataset number to view (0=all) type: PAR8 dir: in - name: "ACTUAL" type: PARF dir: out - name: "LOWEST" type: PARF dir: out - name: "HIGHEST" type: PARF dir: out - name: "AVERAGE" type: PARF dir: out TEXTBOX: value: 32 params: - name: "X0" type: PAR16 - name: "Y0" type: PAR16 - name: "X1" type: PAR16 - name: "Y1" type: PAR16 - name: "TEXT" type: PAR8 - name: "SIZE" type: PAR32 - name: "DEL" type: PAR8 - name: "LINE" type: PAR8 remarks: Dispatch status can change to BUSYBREAK # cTimer "TIMER" TIMER_WAIT: desc: Setup timer to wait TIME mS value: 0x85 params: - name: "TIME" desc: Time to wait [mS] type: PAR32 dir: in - name: "TIMER" desc: Variable used for timing type: PAR32 dir: in remarks: Dispatch status unchanged TIMER_READY: desc: Wait for timer ready (wait for timeout) value: 0x86 params: - name: "TIMER" desc: Variable used for timing type: PAR32 dir: in remarks: Dispatch status can change to BUSYBREAK TIMER_READ: desc: Read free running timer [mS] value: 0x87 params: - name: "TIME" desc: Value type: PAR32 dir: out remarks: Dispatch status unchanged # VM BP0: desc: Display globals or object locals on terminal value: 0x88 params: [] remarks: Removes it self when done BP1: desc: Display globals or object locals on terminal value: 0x89 params: [] remarks: Removes it self when done BP2: desc: Display globals or object locals on terminal value: 0x8A params: [] remarks: Removes it self when done BP3: desc: Display globals or object locals on terminal value: 0x8B params: [] remarks: Removes it self when done BP_SET: desc: Set break point in byte code program value: 0x8C params: - name: "PRGID" desc: Program slot number type: PAR16 dir: in enum: *SLOT - name: "NO" desc: Breakpoint number [0..2] (3 = trigger out on TP4) type: PAR8 dir: in - name: "ADDRESS" desc: Address (Offset from start of image) (0 = remove breakpoint) type: PAR32 dir: in remarks: TP4 is only present on pre-release EV3 hardware MATH: desc: Math function entry value: 0x8D params: - name: "CMD" desc: Specific command parameter type: SUBP commands: EXP: desc: e^x r = expf(x) value: 1 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out MOD: desc: Modulo r = fmod(x,y) value: 2 params: - name: "X" type: PARF dir: in - name: "Y" type: PARF dir: in - name: "R" type: PARF dir: out FLOOR: desc: Floor r = floor(x) value: 3 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out CEIL: desc: Ceiling r = ceil(x) value: 4 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out ROUND: desc: Round r = round(x) value: 5 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out ABS: desc: Absolute r = fabs(x) value: 6 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out NEGATE: desc: Negate r = 0.0 - x value: 7 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out SQRT: desc: Squareroot r = sqrt(x) value: 8 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out LOG: desc: Log r = log10(x) value: 9 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out LN: desc: Ln r = log(x) value: 10 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out SIN: desc: Sin (R = sinf(X)) value: 11 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out COS: desc: Cos (R = cos(X)) value: 12 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out TAN: desc: Tan (R = tanf(X)) value: 13 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out ASIN: desc: ASin (R = asinf(X)) value: 14 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out ACOS: desc: ACos (R = acos(X)) value: 15 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out ATAN: desc: ATan (R = atanf(X)) value: 16 params: - name: "X" type: PARF dir: in - name: "R" type: PARF dir: out MOD8: desc: Modulo DATA8 r = x % y value: 17 params: - name: "X" type: PAR8 dir: in - name: "Y" type: PAR8 dir: in - name: "R" type: PAR8 dir: out MOD16: desc: Modulo DATA16 r = x % y value: 18 params: - name: "X" type: PAR16 dir: in - name: "Y" type: PAR16 dir: in - name: "R" type: PAR16 dir: out MOD32: desc: Modulo DATA32 r = x % y value: 19 params: - name: "X" type: PAR32 dir: in - name: "Y" type: PAR32 dir: in - name: "R" type: PAR32 dir: out POW: desc: Exponent r = powf(x,y) value: 20 params: - name: "X" type: PARF dir: in - name: "Y" type: PARF dir: in - name: "R" type: PARF dir: out TRUNC: desc: Truncate r = (float)((int)(x * pow(y))) / pow(y) value: 21 params: - name: "X" desc: Value type: PARF dir: in - name: "P" desc: Precision [0..9] type: PAR8 dir: in - name: "R" desc: Result type: PARF dir: out RANDOM: desc: Get random value value: 0x8E params: - name: "MIN" desc: Minimum value type: PAR16 dir: in - name: "MAX" desc: Maximum value type: PAR16 dir: in - name: "VALUE" desc: value type: PAR16 dir: out # cTimer "TIMER" TIMER_READ_US: desc: Read free running timer [uS] value: 0x8F params: - name: "TIME" desc: Value type: PAR32 dir: out # cUi "UI" KEEP_ALIVE: desc: Keep alive value: 0x90 params: - name: "MINUTES" desc: Number of minutes before sleep type: PAR8 dir: out # cCom "COM" COM_READ: desc: Communication read value: 0x91 params: - name: "CMD" type: SUBP commands: COMMAND: value: 14 params: - name: "LENGTH" desc: Maximal code stream length type: PAR32 dir: in - name: "IMAGE" desc: Address of image type: PAR32 dir: out - name: "GLOBAL" desc: Address of global variables type: PAR32 dir: out - name: "FLAG" desc: Flag that tells if image is ready type: PAR8 dir: out remarks: Dispatch status unchanged COM_WRITE: desc: Communication write value: 0x92 params: - name: "CMD" type: SUBP dir: in commands: REPLY: value: 14 params: - name: "IMAGE" desc: Address of image type: PAR32 dir: in - name: "GLOBAL" desc: Address of global variables type: PAR32 dir: in - name: "STATUS" desc: Status type: PAR8 dir: in enum: *RESULT remarks: Dispatch status unchanged # cSound "SOUND" SOUND: value: 0x94 params: - name: "CMD" type: SUBP commands: BREAK: value: 0 params: [] TONE: value: 1 params: - name: "VOLUME" desc: Volume [0..100] type: PAR8 dir: in - name: "FREQUENCY" desc: Frequency [Hz] type: PAR16 dir: in - name: "DURATION" desc: Duration [mS] type: PAR16 dir: in PLAY: value: 2 params: - name: "VOLUME" desc: Volume [0..100] type: PAR8 dir: in - name: "NAME" desc: First character in filename (character string) type: PARS dir: in REPEAT: value: 3 params: - name: "VOLUME" desc: Volume [0..100] type: PAR8 dir: in - name: "NAME" desc: First character in filename (character string) type: PARS dir: in SERVICE: value: 4 params: [] remarks: Dispatch status unchanged SOUND_TEST: desc: Test if sound busy (playing file or tone value: 0x95 params: - name: "BUSY" desc: Sound busy flag (0 = ready, 1 = busy) type: PAR8 dir: out remarks: Dispatch status unchanged SOUND_READY: desc: Wait for sound ready (wait until sound finished) value: 0x96 params: [] remarks: Dispatch status can change to BUSYBREAK # cInput "INPUT" INPUT_SAMPLE: desc: Sample devices value: 0x97 params: - name: "TIME" desc: Sample time [mS] type: PAR32 dir: in - name: "SAMPLES" desc: Number of samples type: PAR16 dir: in - name: "INIT" desc: > DATA16 array (handle) - to start/reset buffer -> fill array with -1 otherwise don't change type: PAR16 dir: in - name: "DEVICES" desc: DATA8 array (handle) with devices to sample type: PAR8 dir: in - name: "TYPES" desc: DATA8 array (handle) with types type: PAR8 dir: in - name: "MODES" desc: DATA8 array (handle) with modes type: PAR8 dir: in - name: "DATASETS" desc: DATA8 array (handle) with data sets type: PAR8 dir: in - name: "VALUES" desc: DATAF array (handle) with values type: PARF dir: out INPUT_DEVICE_LIST: desc: Read all available devices on input and output(chain) value: 0x98 params: - name: "LENGTH" desc: Maximum number of device types (normally 32) type: PAR8 dir: in - name: "ARRAY" desc: First element of DATA8 array of types (normally 32) type: PAR8 enum: *TYPE dir: out - name: "CHANGED" desc: Changed status type: PAR8 dir: out INPUT_DEVICE: desc: Read information about device value: 0x99 params: - name: "CMD" type: SUBP dir: in commands: INSERT_TYPE: desc: Insert type in table value: 1 params: - name: "TYPEDATA" desc: String variable or handle to string containing type data type: PAR8 dir: in - name: "FORCE" desc: Force type insert even if present (0 = don't force, 1 = force) type: PAR8 dir: in - name: "ERROR" desc: Error if not Third Party type (0 = no error, 1 = error or known) type: PAR8 dir: out GET_FORMAT: value: 2 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "DATASETS" desc: Number of data sets type: PAR8 dir: out - name: "FORMAT" desc: Format [0..3] type: PAR8 dir: out - name: "MODES" desc: Number of modes [1..8] type: PAR8 dir: out - name: "VIEWS" desc: Number of views [1..8] type: PAR8 dir: out CAL_MINMAX: desc: > Apply new minimum and maximum raw value for device type to be used in scaling PCT and SI value: 3 params: - name: "TYPE" desc: Device type id from typedata.rcf type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Device mode [0..7] type: PAR8 dir: in - name: "CAL_MIN" desc: 32 bit raw minimum value (Zero) type: PAR32 dir: in - name: "CAL_MAX" desc: 32 bit raw maximum value (Full scale) type: PAR32 dir: in CAL_DEFAULT: desc: > Apply the default minimum and maximum raw value for device type to be used in scaling PCT and SI value: 4 params: - name: "TYPE" desc: Device type id from typedata.rcf type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Device mode [0..7] type: PAR8 dir: in GET_TYPEMODE: desc: Get device type and mode value: 5 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "TYPE" desc: Device type id from typedata.rcf type: PAR8 enum: *TYPE dir: out - name: "MODE" desc: Device mode [0..7] type: PAR8 dir: out GET_SYMBOL: value: 6 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out CAL_MIN: desc: > Apply new minimum raw value for device type to be used in scaling PCT and SI value: 7 params: - name: "TYPE" desc: Device type id from typedata.rcf type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Device mode [0..7] type: PAR8 dir: in - name: "CAL_MIN" desc: 32 bit raw minimum value (Zero) type: PAR32 dir: in CAL_MAX: desc: > Apply new maximum raw value for device type to be used in scaling PCT and SI value: 8 params: - name: "TYPE" desc: Device type id from typedata.rcf type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Device mode [0..7] type: PAR8 dir: in - name: "CAL_MAX" desc: 32 bit SI maximum value (Full scale) type: PAR32 dir: in SETUP: desc: Generic setup/read IIC sensors value: 9 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "REPEAT" desc: Repeat setup/read "REPEAT" times (0 = infinite) type: PAR8 dir: in - name: "TIME" desc: Time between repeats [10..1000mS] (0 = 10) type: PAR16 dir: in - name: "WRITE_LEN" desc: No of bytes to write type: PAR8 dir: in - name: "WRITE_DATA" desc: DATA8 array (handle) of data to write type: PAR8 dir: in - name: "READ_LEN" desc: No of bytes to read type: PAR8 dir: in - name: "READ_DATA" desc: DATA8 array (handle) to read into type: PAR8 dir: out CLR_ALL: desc: Clear all devices (e.c. counters, angle, ...) value: 10 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in GET_RAW: value: 11 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "VALUE" desc: 32 bit raw value type: PAR32 dir: out GET_CONNECTION: desc: Get device connection type (for test) value: 12 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "CONN" desc: Connection type type: PAR8 dir: out enum: &CONN CONN_UNKNOWN: desc: Connection is fake (test) value: 111 CONN_DAISYCHAIN: desc: Connection is daisy chained value: 117 CONN_NXT_COLOR: desc: Connection type is NXT color sensor value: 118 CONN_NXT_DUMB: desc: Connection type is NXT analog sensor value: 119 CONN_NXT_IIC: desc: Connection type is NXT IIC sensor value: 120 CONN_INPUT_DUMB: desc: > Connection type is LMS2012 input device with ID resistor value: 121 CONN_INPUT_UART: desc: Connection type is LMS2012 UART sensor value: 122 CONN_OUTPUT_DUMB: desc: > Connection type is LMS2012 output device with ID resistor value: 123 CONN_OUTPUT_INTELLIGENT: desc: > Connection type is LMS2012 output device with communication value: 124 CONN_OUTPUT_TACHO: desc: > Connection type is LMS2012 tacho motor with series ID resistance value: 125 CONN_NONE: desc: Port empty or not available value: 126 CONN_ERROR: desc: Port not empty and type is invalid value: 127 STOP_ALL: desc: Stop all devices (e.c. motors, ...) value: 13 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in SET_TYPEMODE: desc: Set new type and mode on existing devices value: 14 params: - name: "TYPE" desc: Existing type type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Existing mode type: PAR8 dir: in - name: "NEWTYPE" desc: New type type: PAR8 enum: *TYPE dir: in - name: "NEWMODE" desc: New mode type: PAR8 dir: in - name: "ERROR" desc: > Error if not Third Party type (0 = no error, 1 = error or not found) type: PAR8 dir: out remarks: > if TYPE==NEWTYPE and MODE==NEWMODE -> ERROR will be 0 if exists and nothing is changed READY_IIC: desc: Generic setup/read IIC sensors with result value: 15 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "WRLNG" desc: No of bytes to write type: PAR8 dir: in - name: "WRDATA" desc: DATA8 array (handle) of data to write type: PAR8 dir: in - name: "RDLNG" desc: No of bytes to read (if negative -> byte order is reversed) type: PAR8 dir: in - name: "RDDATA" desc: DATA8 array (handle) to read into type: PAR8 dir: out - name: "RESULT" desc: Write/read result (OK, FAIL) type: PAR8 enum: *RESULT dir: out GET_NAME: value: 21 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out GET_MODENAME: value: 22 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "MODE" desc: Mode type: PAR8 dir: in - name: "LENGTH" desc: Maximal length of string returned (-1 = no check) type: PAR8 dir: in - name: "DESTINATION" desc: String variable or handle to string type: PAR8 dir: out SET_RAW: value: 23 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "TYPE" desc: Device type id (0 = don't change type) type: PAR8 enum: *TYPE dir: in - name: "VALUE" type: PAR32 dir: in GET_FIGURES: value: 24 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "FIGURES" desc: Total number of figures (inclusive decimal point and decimals) type: PAR8 dir: out - name: "DECIMALS" desc: Number of decimals type: PAR8 dir: out GET_CHANGES: value: 25 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "VALUE" desc: Positive changes since last clear type: PARF dir: out CLR_CHANGES: desc: Clear changes and bumps value: 26 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in READY_PCT: value: 27 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "TYPE" desc: Device type id (0 = don't change type) type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Device mode [0..7] (-1 = don't change mode) type: PAR8 dir: in - name: "VALUES" desc: Number of return values type: PARNO dir: in READY_RAW: value: 28 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "TYPE" desc: Device type id (0 = don't change type) type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Device mode [0..7] (-1 = don't change mode) type: PAR8 dir: in - name: "VALUES" desc: Number of return values type: PARNO dir: in READY_SI: value: 29 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "TYPE" desc: Device type id (0 = don't change type) type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Device mode [0..7] (-1 = don't change mode) type: PAR8 dir: in - name: "VALUES" desc: Number of return values type: PARNO dir: in GET_MINMAX: value: 30 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "MIN" desc: Min SI value type: PARF dir: out - name: "MAX" desc: Max SI value type: PARF dir: out GET_BUMPS: value: 31 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "VALUE" desc: Negative changes since last clear type: PARF dir: out INPUT_READ: desc: Read device value in Percent value: 0x9A params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "TYPE" desc: Device type id (0 = don't change type) type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Device mode [0..7] (-1 = don't change mode) type: PAR8 dir: in - name: "PCT" desc: Percent value from device type: PAR8 dir: out INPUT_TEST: desc: Test if device busy (changing type or mode) value: 0x9B params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "BUSY" desc: Device busy flag (0 = ready, 1 = busy) type: PAR8 dir: out INPUT_READY: desc: Wait for device ready (wait for valid data) value: 0x9C params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in remarks: Dispatch status can change to BUSYBREAK INPUT_READSI: desc: Read device value in SI units value: 0x9D params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "TYPE" desc: Device type id (0 = don't change type) type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Device mode [0..7] (-1 = don't change mode) type: PAR8 dir: in - name: "SI" desc: SI unit value from device type: PARF dir: out INPUT_READEXT: desc: Read device value value: 0x9E params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "TYPE" desc: Device type id (0 = don't change type) type: PAR8 enum: *TYPE dir: in - name: "MODE" desc: Device mode [0..7] (-1 = don't change mode) type: PAR8 dir: in - name: "FORMAT" desc: Format (PCT, RAW, SI ...) type: PAR8 enum: *DATA_FORMAT dir: in - name: "VALUES" desc: Number of return values type: PARNO dir: in INPUT_WRITE: desc: Write data to device (only UART devices) value: 0x9F params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "BYTES" desc: No of bytes to write [1..32] type: PAR8 dir: in - name: "DATA" desc: First byte in DATA8 array to write type: PAR8 dir: in remarks: Dispatch status can change to BUSYBREAK # cOutput "OUTPUT" OUTPUT_GET_TYPE: value: 0xA0 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "TYPE" type: PAR8 enum: *TYPE dir: out support: official: no xtended: no compat: no remarks: This bytecode is defined but not implemented OUTPUT_SET_TYPE: desc: Set output type value: 0xA1 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Output no [0..3] type: PAR8 dir: in - name: "TYPE" desc: Device type id from typedata.rcf type: PAR8 enum: *TYPE dir: out OUTPUT_RESET: desc: Resets the Tacho counts value: 0xA2 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in OUTPUT_STOP: desc: Stops the outputs value: 0xA3 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "BRAKE" desc: 0 = Coast, 1 = BRAKE type: PAR8 dir: in OUTPUT_POWER: desc: Set power of the outputs value: 0xA4 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "POWER" desc: Power [-100..100%] type: PAR8 dir: in OUTPUT_SPEED: desc: Set speed of the outputs value: 0xA5 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "SPEED" desc: Speed [-100..100%] type: PAR8 dir: in OUTPUT_START: desc: Starts the outputs value: 0xA6 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in OUTPUT_POLARITY: desc: Set polarity of the outputs value: 0xA7 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "POL" desc: Polarity [-1,0,1] type: PAR8 dir: in remarks: > Polarity: * -1 makes the motor run backward * 1 makes the motor run forward * 0 makes the motor run the opposite direction OUTPUT_READ: value: 0xA8 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: NO - Output no [0..3] type: PAR8 dir: in - name: "SPEED" desc: Speed [-100..100%] type: PAR8 dir: out - name: "TACHO" desc: Tacho pulses [-MAX .. +MAX] type: PAR32 dir: out OUTPUT_TEST: desc: Testing if output is not used value: 0xA9 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "BUSY" desc: Output busy flag (0 = ready, 1 = Busy) type: PAR8 dir: out OUTPUT_READY: desc: Wait for output ready (wait for completion) value: 0xAA params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in remarks: > cOUTPUT_START command has no effect on this command. Dispatch status can change to BUSYBREAK. OUTPUT_POSITION: value: 0xAB params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "POS" type: PAR32 dir: out support: official: no xtended: no compat: no remarks: This bytecode is defined but not implemented OUTPUT_STEP_POWER: desc: Set Ramp up, constant and rampdown steps and power of the outputs value: 0xAC params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "POWER" desc: Power [-100..100%] type: PAR8 dir: in - name: "STEP1" desc: Tacho pulses [0..MAX] type: PAR32 dir: in - name: "STEP2" desc: Tacho pulses [0..MAX] type: PAR32 dir: in - name: "STEP3" desc: Tacho pulses [0..MAX] type: PAR32 dir: in - name: "BRAKE" desc: 0 = Coast, 1 = BRAKE type: PAR8 dir: in OUTPUT_TIME_POWER: desc: Set Ramp up, constant and rampdown steps and power of the outputs value: 0xAD params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "POWER" desc: Power [-100..100%] type: PAR8 dir: in - name: "TIME1" desc: Time in Ms [0..MAX] type: PAR32 dir: in - name: "TIME2" desc: Time in Ms [0..MAX] type: PAR32 dir: in - name: "TIME3" desc: Time in Ms [0..MAX] type: PAR32 dir: in - name: "BRAKE" desc: 0 = Coast, 1 = BRAKE type: PAR8 dir: in OUTPUT_STEP_SPEED: desc: Set Ramp up, constant and rampdown steps and power of the outputs value: 0xAE params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "SPEED" desc: Speed [-100..100%] type: PAR8 dir: in - name: "STEP1" desc: Tacho pulses [0..MAX] type: PAR32 dir: in - name: "STEP2" desc: Tacho pulses [0..MAX] type: PAR32 dir: in - name: "STEP3" desc: Tacho pulses [0..MAX] type: PAR32 dir: in - name: "BRAKE" desc: 0 = Coast, 1 = BRAKE type: PAR8 dir: in OUTPUT_TIME_SPEED: desc: Set Ramp up, constant and rampdown steps and power of the outputs value: 0xAF params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "SPEED" desc: Speed [-100..100%] type: PAR8 dir: in - name: "TIME1" desc: Time in Ms [0..MAX] type: PAR32 dir: in - name: "TIME2" desc: Time in Ms [0..MAX] type: PAR32 dir: in - name: "TIME3" desc: Time in Ms [0..MAX] type: PAR32 dir: in - name: "BRAKE" desc: 0 = Coast, 1 = BRAKE type: PAR8 dir: in OUTPUT_STEP_SYNC: value: 0xB0 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "SPEED" desc: Speed [-100..100%] type: PAR8 dir: in - name: "TURN" desc: Turn Ratio [-200..200] type: PAR16 dir: in - name: "STEP" desc: Tacho Pulses [0..MAX] type: PAR32 dir: in - name: "BRAKE" desc: 0 = Coast, 1 = BRAKE type: PAR8 dir: in OUTPUT_TIME_SYNC: value: 0xB1 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "SPEED" desc: Speed [-100..100%] type: PAR8 dir: in - name: "TURN" desc: Turn Ratio [-200..200] type: PAR16 dir: in - name: "TIME" desc: Time in ms [0..MAX] type: PAR32 dir: in - name: "BRAKE" desc: 0 = Coast, 1 = BRAKE type: PAR8 dir: in OUTPUT_CLR_COUNT: desc: Clearing tacho count when used as sensor value: 0xB2 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in OUTPUT_GET_COUNT: desc: Getting tacho count when used as sensor - values are in shared memory value: 0xB3 params: - name: "LAYER" desc: Daisy chain layer number [0..3] type: PAR8 dir: in - name: "NOS" desc: Output bit field [0x00..0x0F] type: PAR8 dir: in - name: "TACHO" desc: Tacho pulses [-MAX .. +MAX] type: PAR32 dir: out OUTPUT_PRG_STOP: desc: Program stop value: 0xB4 params: [] # cMemory "MEMORY" FILE: desc: Memory file entry value: 0xC0 params: - name: "CMD" type: SUBP dir: in commands: OPEN_APPEND: desc: Create file or open for append value: 0 params: - name: "NAME" desc: First character in file name (character string) type: PAR8 dir: in - name: "HANDLE" desc: Handle to file type: PAR16 dir: out remarks: if name starts with '~','/' or '.' it is not from current folder OPEN_READ: desc: Open file for read value: 1 params: - name: "NAME" desc: First character in file name (character string) type: PAR8 dir: in - name: "HANDLE" desc: Handle to file type: PAR16 dir: out - name: "SIZE" desc: File size (0 = not found) type: PAR32 dir: out remarks: if name starts with '~','/' or '.' it is not from current folder OPEN_WRITE: desc: Create file for write value: 2 params: - name: "NAME" desc: First character in file name (character string) type: PAR8 dir: in - name: "HANDLE" desc: Handle to file type: PAR16 dir: out remarks: if name starts with '~','/' or '.' it is not from current folder READ_VALUE: desc: Read floating point value from file value: 3 params: - name: "HANDLE" desc: Handle to file type: PAR16 dir: in - name: "DEL" desc: Delimiter code type: PAR8 enum: *DEL dir: in - name: "VALUE" desc: Value read type: PARF dir: out WRITE_VALUE: desc: Write floating point value to file value: 4 params: - name: "HANDLE" desc: Handle to file type: PAR16 dir: in - name: "DEL" desc: Delimiter code type: PAR8 enum: *DEL dir: in - name: "VALUE" desc: Value to write type: PARF dir: in - name: "FIGURES" desc: Total number of figures inclusive decimal point type: PAR8 dir: in - name: "DECIMALS" desc: Number of decimals type: PAR8 dir: in READ_TEXT: desc: Read text from file value: 5 params: - name: "HANDLE" desc: Handle to file type: PAR16 dir: in - name: "DEL" desc: Delimiter code type: PAR8 enum: *DEL dir: in - name: "LENGTH" desc: Maximal string length type: PAR16 dir: in - name: "TEXT" desc: First character in text to read (character string) type: PAR8 dir: out WRITE_TEXT: desc: Write text to file value: 6 params: - name: "HANDLE" desc: Handle to file type: PAR16 dir: in - name: "DEL" desc: Delimiter code type: PAR8 enum: *DEL dir: in - name: "TEXT" desc: First character in text to write (character string) type: PAR8 dir: in CLOSE: desc: Close file value: 7 params: - name: "HANDLE" desc: Handle to file type: PAR16 dir: in LOAD_IMAGE: value: 8 params: - name: "PRGID" desc: Program id type: PAR16 enum: *SLOT dir: in - name: "NAME" desc: First character in name (character string) type: PAR8 dir: in - name: "SIZE" desc: Size type: PAR32 dir: out - name: "IP" desc: Address of image type: PAR32 dir: out GET_HANDLE: desc: Get handle from filename value: 9 params: - name: "NAME" desc: First character in file name (character string) type: PAR8 dir: in - name: "HANDLE" desc: Handle to file type: PAR16 dir: out - name: "WRITE" desc: Open for write / append (0 = no, 1 = yes) type: PAR8 dir: out remarks: if name starts with '~','/' or '.' it is not from current folder MAKE_FOLDER: desc: Make folder if not present value: 10 params: - name: "NAME" desc: First character in folder name (character string) type: PAR8 dir: in - name: "SUCCESS" desc: Success (0 = no, 1 = yes) type: PAR8 dir: out GET_POOL: value: 11 params: - name: "SIZE" desc: Size of pool type: PAR32 dir: in - name: "HANDLE" desc: Handle to file type: PAR16 dir: out - name: "IP" desc: Address of image type: PAR32 dir: out SET_LOG_SYNC_TIME: value: 12 params: - name: "TIME" desc: Sync time used in data log files type: PAR32 dir: in - name: "TICK" desc: Sync tick used in data log files type: PAR32 dir: in GET_FOLDERS: value: 13 params: - name: "NAME" desc: First character in folder name (ex "../prjs/") type: PAR8 dir: in - name: "ITEMS" desc: No of sub folders type: PAR8 dir: out GET_LOG_SYNC_TIME: value: 14 params: - name: "TIME" desc: Sync time used in data log files type: PAR32 dir: out - name: "TICK" desc: Sync tick used in data log files type: PAR32 dir: out GET_SUBFOLDER_NAME: value: 15 params: - name: "NAME" desc: First character in folder name (ex "../prjs/") type: PAR8 dir: in - name: "ITEM" desc: Sub folder index [1..ITEMS] type: PAR8 dir: in - name: "LENGTH" desc: Maximal string length type: PAR8 dir: in - name: "STRING" desc: First character in character string type: PAR8 dir: out WRITE_LOG: desc: Write time slot samples to file value: 16 params: - name: "HANDLE" desc: Handle to file type: PAR16 dir: in - name: "TIME" desc: Relative time in mS type: PAR32 dir: in - name: "ITEMS" desc: Total number of values in this time slot type: PAR8 dir: in - name: "VALUES" desc: DATAF array (handle) containing values type: PARF dir: in CLOSE_LOG: desc: Close data log file value: 17 params: - name: "HANDLE" desc: Handle to file type: PAR16 dir: in - name: "NAME" desc: First character in file name (character string) type: PAR8 dir: in GET_IMAGE: value: 18 params: - name: "NAME" desc: First character in name (character string) type: PAR8 dir: in - name: "PRGID" desc: Program id type: PAR16 enum: *SLOT dir: in - name: "ITEM" desc: Sub folder index [1..ITEMS] type: PAR8 dir: in - name: "IP" desc: Address of image type: PAR32 dir: out GET_ITEM: value: 19 params: - name: "NAME" desc: First character in name (character string) type: PAR8 dir: in - name: "STRING" desc: First character in item name string type: PAR8 dir: in - name: "ITEM" desc: Sub folder index [1..ITEMS] type: PAR8 dir: out GET_CACHE_FILES: value: 20 params: - name: "ITEMS" desc: Number of files in cache type: PAR8 dir: out PUT_CACHE_FILE: value: 21 params: - name: "STRING" desc: First character in character string type: PAR8 dir: in GET_CACHE_FILE: value: 22 params: - name: "ITEM" desc: Cache index [1..ITEMS] type: PAR8 dir: in - name: "LENGTH" desc: Maximal string length type: PAR8 dir: in - name: "STRING" desc: First character in character string type: PAR8 dir: out DEL_CACHE_FILE: value: 23 params: - name: "STRING" desc: First character in character string type: PAR8 dir: out DEL_SUBFOLDER: value: 24 params: - name: "NAME" desc: First character in folder name (ex "../prjs/") type: PAR8 dir: in - name: "ITEM" desc: Sub folder index [1..ITEMS] type: PAR8 dir: in GET_LOG_NAME: desc: Get the current open log filename value: 25 params: - name: "LENGTH" desc: Max string length (don't care if NAME is a HND) type: PAR8 dir: in - name: "NAME" desc: First First character in file name (character string or HND) type: PAR8 dir: in OPEN_LOG: desc: Create file for data logging value: 27 params: - name: "NAME" desc: First character in file name (character string) type: PAR8 dir: in - name: "syncedTime" type: PAR32 dir: in - name: "syncedTick" type: PAR32 dir: in - name: "nowTick" type: PAR32 dir: in - name: "sample_interval_in_ms" type: PAR32 dir: in - name: "duration_in_ms" type: PAR32 dir: in - name: "SDATA" desc: First character in sensor type data (character string) type: PAR8 dir: in - name: "HANDLE" desc: Handle to file type: PAR16 dir: out remarks: if name starts with '~','/' or '.' it is not from current folder READ_BYTES: desc: Read a number of bytes from file value: 28 params: - name: "HANDLE" desc: Handle to file type: PAR16 dir: in - name: "BYTES" desc: Number of bytes to read type: PAR16 dir: in - name: "DESTINATION" desc: First byte in byte stream type: PAR8 dir: out WRITE_BYTES: desc: Write a number of bytes to file value: 29 params: - name: "HANDLE" desc: Handle to file type: PAR16 dir: in - name: "BYTES" desc: Number of bytes to write type: PAR16 dir: in - name: "SOURCE" desc: First byte in byte stream to write type: PAR8 dir: in REMOVE: desc: Delete file value: 30 params: - name: "NAME" desc: First character in file name (character string) type: PAR8 dir: in remarks: if name starts with '~','/' or '.' it is not from current folder MOVE: desc: Move file SOURCE to DEST value: 31 params: - name: "SOURCE" desc: First character in source file name (character string) type: PAR8 dir: in - name: "DEST" desc: First character in destination file name (character string) type: PAR8 dir: in remarks: if name starts with '~','/' or '.' it is not from current folder ARRAY: desc: Array entry value: 0xC1 params: - name: "CMD" type: SUBP dir: in commands: DELETE: value: 0 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in support: official: yes xtended: no compat: no DESTROY: value: 0 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in support: official: no xtended: yes compat: yes remarks: renamed from DELETE CREATE8: value: 1 params: - name: "ELEMENTS" desc: Number of elements type: PAR32 dir: in - name: "HANDLE" desc: Array handle type: PAR16 dir: out CREATE16: value: 2 params: - name: "ELEMENTS" desc: Number of elements type: PAR32 dir: in - name: "HANDLE" desc: Array handle type: PAR16 dir: out CREATE32: value: 3 params: - name: "ELEMENTS" desc: Number of elements type: PAR32 dir: in - name: "HANDLE" desc: Array handle type: PAR16 dir: out CREATEF: value: 4 params: - name: "ELEMENTS" desc: Number of elements type: PAR32 dir: in - name: "HANDLE" desc: Array handle type: PAR16 dir: out RESIZE: value: 5 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "ELEMENTS" desc: Total number of elements type: PAR32 dir: in FILL: value: 6 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "VALUE" desc: Value to write - type depends on type of array type: PARV dir: in COPY: value: 7 params: - name: "HSOURCE" desc: Source array Handle type: PAR16 dir: in - name: "HDEST" desc: Destination array handle type: PAR16 dir: out INIT8: value: 8 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "INDEX" desc: Index to element to write type: PAR32 dir: in - name: "ELEMENTS" desc: Number of elements to write type: PAR32 dir: in - name: "VALUES" type: PARVALUES dir: in - name: "VALUE" desc: First value to write - type must be equal to the array type type: PAR8 dir: in INIT16: value: 9 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "INDEX" desc: Index to element to write type: PAR32 dir: in - name: "ELEMENTS" desc: Number of elements to write type: PAR32 dir: in - name: "VALUES" type: PARVALUES dir: in - name: "VALUE" desc: First value to write - type must be equal to the array type type: PAR16 dir: in INIT32: value: 10 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "INDEX" desc: Index to element to write type: PAR32 dir: in - name: "ELEMENTS" desc: Number of elements to write type: PAR32 dir: in - name: "VALUES" type: PARVALUES dir: in - name: "VALUE" desc: First value to write - type must be equal to the array type type: PAR32 dir: in INITF: value: 11 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "INDEX" desc: Index to element to write type: PAR32 dir: in - name: "ELEMENTS" desc: Number of elements to write type: PAR32 dir: in - name: "VALUES" type: PARVALUES dir: in - name: "VALUE" desc: First value to write - type must be equal to the array type type: PARF dir: in SIZE: value: 12 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "ELEMENTS" desc: Total number of elements in array type: PAR32 dir: out support: official: yes xtended: no compat: no SET_SIZE: value: 12 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "ELEMENTS" desc: Total number of elements in array type: PAR32 dir: out support: official: no xtended: yes compat: yes remarks: Renamed from SIZE READ_CONTENT: value: 13 params: - name: "PRGID" desc: Program slot number (must be running) type: PAR16 enum: *SLOT dir: in - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "INDEX" desc: Index to first byte to read type: PAR32 dir: in - name: "BYTES" desc: Number of bytes to read type: PAR32 dir: in - name: "ARRAY" desc: First byte of array to receive data type: PAR8 dir: out WRITE_CONTENT: value: 14 params: - name: "PRGID" desc: Program slot number (must be running) type: PAR16 enum: *SLOT dir: in - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "INDEX" desc: Index to first byte to write type: PAR32 dir: in - name: "BYTES" desc: Number of bytes to write type: PAR32 dir: in - name: "ARRAY" desc: First byte of array to deliver data type: PAR8 dir: in READ_SIZE: value: 15 params: - name: "PRGID" desc: Program slot number (must be running) type: PAR16 enum: *SLOT dir: in - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "BYTES" desc: Number of bytes in array type: PAR32 dir: out remarks: Dispatch status can change to BUSYBREAK or FAILBREAK ARRAY_WRITE: desc: Array element write value: 0xC2 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "INDEX" desc: Index to first byte to write type: PAR32 dir: in - name: "VALUE" desc: Value to write - type depends on type of array type: PARV dir: in remarks: Dispatch status can change to FAILBREAK ARRAY_READ: desc: Array element read value: 0xC3 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "INDEX" desc: Index to first byte to write type: PAR32 dir: in - name: "VALUE" desc: Value to read - type depends on type of array type: PARV dir: out remarks: Dispatch status can change to FAILBREAK ARRAY_APPEND: desc: Array element append value: 0xC4 params: - name: "HANDLE" desc: Array handle type: PAR16 dir: in - name: "VALUE" desc: Value (new element) to append - type depends on type of array type: PARV dir: in remarks: Dispatch status can change to FAILBREAK MEMORY_USAGE: desc: Get memory usage value: 0xC5 params: - name: "TOTAL" desc: Total memory [KB] type: PAR32 dir: out - name: "FREE" desc: Free memory [KB] type: PAR32 dir: out FILENAME: desc: Memory filename entry value: 0xC6 params: - name: "CMD" type: SUBP dir: in commands: EXIST: desc: Test if file exists value: 16 params: - name: "NAME" desc: First character in file name (character string) type: PAR8 dir: in - name: "FLAG" desc: Exist (0 = no, 1 = yes) type: PAR8 dir: out remarks: if name starts with '~','/' or '.' it is not from current folder TOTALSIZE: desc: Calculate folder/file size value: 17 params: - name: "NAME" desc: First character in file name (character string) type: PAR8 dir: in - name: "FILES" desc: Total number of files type: PAR32 dir: out - name: "SIZE" desc: Total folder size [KB] type: PAR32 dir: out remarks: if name starts with '~','/' or '.' it is not from current folder SPLIT: desc: Split filename into Folder, name, extension value: 18 params: - name: "FILENAME" desc: First character in file name (character string) type: PAR8 dir: in - name: "LENGTH" desc: Maximal length for each of the below parameters type: PAR8 dir: in - name: "FOLDER" desc: First character in folder name (character string) type: PAR8 dir: out - name: "NAME" desc: First character in name (character string) type: PAR8 dir: out - name: "EXT" desc: First character in extension (character string) type: PAR8 dir: out remarks: > Example: passing "../folder/subfolder/name.ext" in FILENAME will return "../folder/subfolder" in FOLDER, "name" in NAME and ".ext" in EXT. MERGE: desc: Merge Folder, name, extension into filename value: 19 params: - name: "FOLDER" desc: First character in folder name (character string) type: PAR8 dir: in - name: "NAME" desc: First character in name (character string) type: PAR8 dir: in - name: "EXT" desc: First character in extension (character string) type: PAR8 dir: in - name: "LENGTH" desc: Maximal length for the below parameter type: PAR8 dir: in - name: "FILENAME" desc: First character in file name (character string) type: PAR8 dir: out remarks: > Example: passing "../folder/subfolder" in FOLDER, "name" in NAME and ".ext" in EXT will return "../folder/subfolder/name.ext" in FILENAME. CHECK: desc: Check filename value: 20 params: - name: "FILENAME" desc: First character in file name (character string) type: PAR8 dir: in - name: "OK" desc: Filename ok (0 = FAIL, 1 = OK) type: PAR8 dir: out PACK: desc: Pack file or folder into "raf" container value: 21 params: - name: "FILENAME" desc: First character in file name (character string) type: PAR8 dir: in remarks: .raf is the same as .tar.gz UNPACK: desc: Unpack "raf" container value: 22 params: - name: "FILENAME" desc: First character in file name (character string) type: PAR8 dir: in remarks: .raf is the same as .tar.gz GET_FOLDERNAME: desc: Get current folder name value: 23 params: - name: "LENGTH" desc: Maximal length for the below parameter type: PAR8 dir: in - name: "FOLDERNAME" desc: First character in folder name (character string) type: PAR8 dir: out # cMove "READ" READ8: desc: Read 8 bit value from SOURCE[INDEX] to DESTINATION value: 0xC8 params: - name: "SOURCE" desc: First value in array of values type: PAR8 dir: in - name: "INDEX" desc: Index to array member to read type: PAR8 dir: in - name: "DESTINATION" desc: Variable to receive read value type: PAR8 dir: out READ16: desc: Read 16 bit value from SOURCE[INDEX] to DESTINATION value: 0xC9 params: - name: "SOURCE" desc: First value in array of values type: PAR16 dir: in - name: "INDEX" desc: Index to array member to read type: PAR8 dir: in - name: "DESTINATION" desc: Variable to receive read value type: PAR16 dir: out READ32: desc: Read 32 bit value from SOURCE[INDEX] to DESTINATION value: 0xCA params: - name: "SOURCE" desc: First value in array of values type: PAR32 dir: in - name: "INDEX" desc: Index to array member to read type: PAR8 dir: in - name: "DESTINATION" desc: Variable to receive read value type: PAR32 dir: out READF: desc: Read floating point value from SOURCE[INDEX] to DESTINATION value: 0xCB params: - name: "SOURCE" desc: First value in array of values type: PARF dir: in - name: "INDEX" desc: Index to array member to read type: PAR8 dir: in - name: "DESTINATION" desc: Variable to receive read value type: PARF dir: out # cMove "WRITE" WRITE8: desc: Write 8 bit value from SOURCE to DESTINATION[INDEX] value: 0xCC params: - name: "SOURCE" desc: Variable to write type: PAR8 dir: in - name: "INDEX" desc: Index to array member to write type: PAR8 dir: in - name: "DESTINATION" desc: Array to receive write value type: PAR8 dir: in WRITE16: desc: Write 16 bit value from SOURCE to DESTINATION[INDEX] value: 0xCD params: - name: "SOURCE" desc: Variable to write type: PAR16 dir: in - name: "INDEX" desc: Index to array member to write type: PAR8 dir: in - name: "DESTINATION" desc: Array to receive write value type: PAR16 dir: in WRITE32: desc: Write 32 bit value from SOURCE to DESTINATION[INDEX] value: 0xCE params: - name: "SOURCE" desc: Variable to write type: PAR32 dir: in - name: "INDEX" desc: Index to array member to write type: PAR8 dir: in - name: "DESTINATION" desc: Array to receive write value type: PAR32 dir: in WRITEF: desc: Write floating point value from SOURCE to DESTINATION[INDEX] value: 0xCF params: - name: "SOURCE" desc: Variable to write type: PARF dir: in - name: "INDEX" desc: Index to array member to write type: PAR8 dir: in - name: "DESTINATION" desc: Array to receive write value type: PARF dir: in # cCom "COM" COM_READY: desc: Test if communication is busy value: 0xD0 params: - name: "HARDWARE" desc: Hardware transport layer type: PAR8 dir: in enum: *HWTYPE - name: "NAME" desc: Name of the remote/own device type: PAR8 dir: in remarks: > Dispatch status may be set to BUSYBREAK. If name is 0 then own adapter status is evaluated. COM_READDATA: value: 0xD1 desc: This code does not exist in normal program params: - name: "VALUE1" type: PAR8 - name: "VALUE2" type: PAR8 - name: "VALUE3" type: PAR16 - name: "VALUE4" type: PAR8 remarks: Dispatch status changes to INSTRBREAK COM_WRITEDATA: value: 0xD2 desc: This code does not exist in normal program params: - name: "VALUE1" type: PAR8 - name: "VALUE2" type: PAR8 - name: "VALUE3" type: PAR16 - name: "VALUE4" type: PAR8 remarks: Dispatch status changes to INSTRBREAK COM_GET: desc: Communication get entry value: 0xD3 params: - name: "CMD" type: SUBP commands: GET_ON_OFF: desc: Get active state value: 1 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ACTIVE" desc: Active [0,1] type: PAR8 dir: out GET_VISIBLE: desc: Get visibility state value: 2 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "VISIBLE" desc: Visible [0,1] type: PAR8 dir: out GET_RESULT: desc: Get status. value: 4 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ITEM" desc: Name index type: PAR8 dir: in - name: "RESULT" desc: Results type: PAR8 dir: out enum: *RESULT remarks: > This command gets the result of the command that is being executed. This could be a search or a connection request. GET_PIN: desc: Get pin code. value: 5 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "NAME" desc: First character in character string type: PAR8 dir: in - name: "LENGTH" desc: Max length of returned string type: PAR8 dir: in - name: "PINCODE" desc: First character in character string type: PAR8 dir: out remarks: For now "1234" is returned LIST_STATE: desc: > Gets a list state value. This can be compared to previous values to determine if items are added or removed from a list since the last call. value: 7 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "STATE" desc: Value that represents the current state type: PAR16 dir: out support: official: no xtended: no compat: yes SEARCH_ITEMS: desc: Get number of item from search. value: 8 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ITEMS" desc: No of items in seach list type: PAR8 dir: out remarks: > After a search has been completed, SEARCH ITEMS will return the number of remote devices found. SEARCH_ITEM: desc: Get search item informations. value: 9 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ITEM" desc: Item - index in search list type: PAR8 dir: in - name: "LENGTH" desc: Max length of returned string type: PAR8 dir: in - name: "NAME" desc: First character in character string type: PAR8 dir: out - name: "PAIRED" desc: Paired [0,1] type: PAR8 dir: out - name: "CONNECTED" desc: Connected [0,1] type: PAR8 dir: out - name: "TYPE" desc: Bluetooth Device Type type: PAR8 dir: out enum: *BTTYPE - name: "VISIBLE" desc: Visible [0,1] type: PAR8 dir: out remarks: Used to retrieve the item information in the search list FAVOUR_ITEMS: desc: Get no of item in favourite list. value: 10 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ITEMS" desc: No of items in seach list type: PAR8 dir: out remarks: > The number of paired devices, not necessarily visible or present devices FAVOUR_ITEM: desc: Get favourite item information. value: 11 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ITEM" desc: Item - index in favourite list type: PAR8 dir: in - name: "LENGTH" desc: Max length of returned string type: PAR8 dir: in - name: "NAME" desc: First character in character string type: PAR8 dir: out - name: "PAIRED" desc: Paired [0,1] type: PAR8 dir: out - name: "CONNECTED" desc: Connected [0,1] type: PAR8 dir: out - name: "TYPE" desc: Bluetooth Device Type type: PAR8 enum: *BTTYPE dir: out remarks: > Used to retrieve the item information in the favourite list. All items in the favourite list are paired devices. GET_ID: desc: Get bluetooth address information value: 12 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "LENGTH" desc: Max length of returned string type: PAR8 dir: in - name: "STRING" desc: First character in BT adr string type: PAR8 dir: out GET_BRICKNAME: desc: Gets the name of the brick value: 13 params: - name: "LENGTH" desc: Max length of returned string type: PAR8 dir: in - name: "NAME" desc: First character in brick name type: PAR8 dir: out GET_NETWORK: desc: Gets the network information. WIFI only value: 14 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "LENGTH" desc: Max length of returned string type: PAR8 dir: in - name: "NAME" desc: First character in AP name type: PAR8 dir: out - name: "MAC" desc: First character in MAC address string type: PAR8 dir: out - name: "IP" desc: First character in IP address string type: PAR8 dir: out GET_PRESENT: desc: Return if hardare is present. WIFI only value: 15 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "OK" desc: Present [0,1] type: PAR8 dir: out GET_ENCRYPT: desc: Returns the encryption mode of the hardware. WIFI only value: 16 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ITEM" desc: Item - index in favourite list type: PAR8 dir: in - name: "TYPE" desc: Encryption type type: PAR8 dir: out enum: *ENCRYPT CONNEC_ITEMS: value: 17 params: - name: "HARDWARE" type: PAR8 - name: "ITEMS" type: PAR8 CONNEC_ITEM: value: 18 params: - name: "HARDWARE" type: PAR8 - name: "ITEM" type: PAR8 - name: "LENGTH" type: PAR8 - name: "NAME" type: PAR8 - name: "TYPE" type: PAR8 GET_INCOMING: desc: Returns the encryption mode of the hardware. WIFI only value: 19 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "LENGTH" desc: Max length of returned string type: PAR8 dir: in - name: "NAME" desc: First character in name type: PAR8 dir: in - name: "TYPE" desc: Encryption type type: PAR8 enum: *ENCRYPT dir: out GET_MODE2: value: 20 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ACTIVE" desc: Active [0,1], 1 = on, 0 = off type: PAR8 dir: out remarks: Dispatch status can return FAILBREAK COM_SET: desc: Communication set entry value: 0xD4 params: - name: "CMD" type: SUBP commands: SET_ON_OFF: desc: Set active state, either on or off value: 1 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ACTIVE" desc: Active [0,1], 1 = on, 0 = off type: PAR8 dir: in SET_VISIBLE: desc: Set visibility state - Only available for bluetooth value: 2 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "VISIBLE" desc: Visible [0,1], 1 = visible, 0 = invisible type: PAR8 dir: in SET_SEARCH: desc: Starts or or stops the search for remote devices value: 3 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "SEARCH" desc: Search [0,1] 0 = stop search, 1 = start search type: PAR8 dir: in SET_PIN: desc: Set pin code. value: 5 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "NAME" desc: First character in character string type: PAR8 dir: in - name: "PINCODE" desc: First character in character string type: PAR8 dir: in remarks: > Set the pincode for a remote device. Used when requested by bluetooth. Not at this point possible by user program. SET_PASSKEY: desc: Set pin code. value: 6 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ACCEPT" desc: Acceptance [0,1] 0 = reject 1 = accept type: PAR8 dir: in remarks: > Set the pincode for a remote device. Used when requested by bluetooth. Not at this point possible by user program. SET_CONNECTION: desc: > Initiate or close the connection request to a remote device by the specified name. value: 7 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "NAME" desc: First character in character string type: PAR8 dir: in - name: "CONNECTION" desc: Connect [0,1], 1 = Connect, 0 = Disconnect type: PAR8 dir: in SET_BRICKNAME: desc: Sets the name of the brick value: 8 params: - name: "NAME" desc: First character in character string type: PAR8 dir: in SET_MOVEUP: desc: Moves the index in list one step up. value: 9 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ITEM" desc: Index in table type: PAR8 dir: in remarks: Used to re-arrange WIFI list. Only used for WIFI. SET_MOVEDOWN: desc: Moves the index in list one step down. value: 10 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ITEM" desc: Index in table type: PAR8 dir: in remarks: Used to re-arrange WIFI list. Only used for WIFI. SET_ENCRYPT: desc: Sets the encryption type for an item in a list. value: 11 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ITEM" desc: Index in table type: PAR8 dir: in - name: "ENCRYPT" desc: Encryption type type: PAR8 dir: in remarks: Only used for WIFI. SET_SSID: desc: Sets the SSID name. Only used for WIFI value: 12 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "NAME" desc: First character in character string type: PAR8 dir: in SET_MODE2: desc: Set active mode state, either active or not value: 13 params: - name: "HARDWARE" desc: Hardware Transport Layer type: PAR8 dir: in enum: *HWTYPE - name: "ACTIVE" desc: Active [0,1], 1 = on, 0 = off type: PAR8 dir: in remarks: Dispatch status can return FAILBREAK COM_TEST: desc: Test if communication is busy value: 0xD5 params: - name: "HARDWARE" desc: Hardware transport layer type: PAR8 dir: in enum: *HWTYPE - name: "NAME" desc: Name of the remote/own device type: PAR8 dir: in - name: "BUSY" desc: Busy flag type: PAR8 dir: out remarks: > Dispatch status is set to NOBREAK. If name is 0 then own adapter busy status is returned. COM_REMOVE: desc: Removes a know remote device from the brick value: 0xD6 params: - name: "HARDWARE" type: PAR8 enum: *HWTYPE - name: "REMOTE_NAME" desc: Pointer to remote brick name type: PAR8 remarks: Dispatch status can return FAILBREAK COM_WRITEFILE: desc: Sends a file or folder to remote brick. value: 0xD7 params: - name: "HARDWARE" type: PAR8 enum: *HWTYPE - name: "REMOTE_NAME" desc: Pointer to remote brick name type: PAR8 - name: "FILE_NAME" desc: File/folder name to send type: PAR8 - name: "FILE_TYPE" desc: File or folder type to send type: PAR8 remarks: Dispatch status can return FAILBREAK MAILBOX_OPEN: desc: Open a mail box on the brick value: 0xD8 params: - name: "NO" desc: Reference ID for the mailbox. Maximum number of mailboxes is 30 type: PAR8 dir: in - name: "BOXNAME" desc: Zero terminated string with the mailbox name type: PAR8 dir: in - name: "TYPES" desc: Data type of the content of the mailbox type: PAR8 dir: in enum: *DATA_FORMAT - name: "FIFOSIZE" desc: Not used type: PAR8 dir: in - name: "VALUES" desc: Number of values of the type (specified by TYPE). type: PAR8 dir: in remarks: > If data type DATA_S is selected then it requires that a zero terminated string is sent. Maximum mailbox size is 250 bytes. I.e. if type is string (DATA_S) then there can only be 1 string of maximum 250 bytes (incl. zero termination), or if array (DATA_A), then array size cannot be larger than 250 bytes. Dispatch status can return FAILBREAK MAILBOX_WRITE: desc: Write to mailbox in remote brick value: 0xD9 params: - name: "BRICKNAME" desc: Zero terminated string name of the receiving brick type: PAR8 dir: in - name: "HARDWARE" desc: Transportation media type: PAR8 dir: in enum: *HWTYPE - name: "BOXNAME" desc: Zero terminated string name of the receiving mailbox type: PAR8 dir: in - name: "TYPE" desc: Data type of the values type: PAR8 dir: in enum: *DATA_FORMAT - name: "VALUES" desc: Number of values of the specified type to send type: PARNO dir: in remarks: > If Brick name is left empty (0) then all connected devices will receive the mailbox message. If string type (DATA_S) data is to be transmitted then a zero terminated string is expected. If array type data (DATA_A) is to be transmitted then the number of bytes to be sent is equal to the array size. Dispatch status can return FAILBREAK. MAILBOX_READ: desc: Read data from mailbox specified by NO value: 0xDA params: - name: "NO" desc: Messagebox ID of the message box you want to read type: PAR8 dir: in - name: "LENGTH" desc: Maximum bytes to be read type: PAR8 dir: in - name: "VALUES" desc: Number of value to read type: PARNO dir: in remarks: > Returns (Type specified in open) VALUE - Data from the message box The type of Value is specified by mailbox open byte code. Dispatch status can return FAILBREAK. MAILBOX_TEST: desc: Tests if new message has been read value: 0xDB params: - name: "NO" desc: Reference ID mailbox number type: PAR8 dir: in - name: "BUSY" desc: If Busy = TRUE then no new messages are received type: PAR8 dir: out remarks: Dispatch status can return FAILBREAK MAILBOX_READY: desc: Waiting from message to be read value: 0xDC params: - name: "NO" desc: Reference ID mailbox number type: PAR8 dir: in remarks: Dispatch status can return FAILBREAK MAILBOX_CLOSE: desc: Closes mailbox indicated by NO value: 0xDD params: - name: "NO" desc: Reference ID mailbox number type: PAR8 dir: in remarks: Dispatch status can return FAILBREAK # Extended opcodes INPUT_SET_CONN: desc: Set the connection type for a specific port value: 0xE0 params: - name: "LAYER" desc: Chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "CONN" desc: Connection type (CONN_NXT_IIC, CONN_NXT_DUMB or CONN_INPUT_DUMB) type: PAR8 dir: in enum: *CONN support: official: no xtended: yes compat: yes remarks: Note that this won't do much if the auto-id has not been disabled INPUT_IIC_READ: desc: Read I2C data from specified port value: 0xE1 params: - name: "LAYER" desc: Chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "RDLNG" desc: No of bytes to read type: PAR8 dir: in - name: "RDDATA" desc: DATA8 array (handle) to read into type: PAR8 dir: out - name: "RESULT" desc: Write/read result (OK, FAIL, BUSY, STOP) type: PAR8 dir: out enum: *RESULT support: official: no xtended: yes compat: yes INPUT_IIC_STATUS: desc: Read I2C status of specified port value: 0xE2 params: - name: "LAYER" desc: Chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "RESULT" desc: Current I2C bus status (OK, FAIL, BUSY, STOP) type: PAR8 dir: out enum: *RESULT support: official: no xtended: yes compat: yes INPUT_IIC_WRITE: desc: Write I2C data to specified port value: 0xE3 params: - name: "LAYER" desc: Chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "WRLNG" desc: No of bytes to write type: PAR8 dir: in - name: "WRDATA" desc: DATA8 array (handle) of data to write type: PAR8 dir: in - name: "RDLNG" desc: No of bytes to read type: PAR8 dir: in - name: "RESULT" desc: Write/read result (OK, FAIL, BUSY, STOP) type: PAR8 dir: out enum: *RESULT support: official: no xtended: yes compat: yes INPUT_SET_AUTOID: desc: Enabled or disable auto-id for a specific sensor port value: 0xE4 params: - name: "LAYER" desc: Chain layer number [0..3] type: PAR8 dir: in - name: "NO" desc: Port number type: PAR8 dir: in - name: "ENABLE" desc: Boolean (0 disabled, 1 enable) type: PAR8 dir: in support: official: no xtended: yes compat: yes MAILBOX_SIZE: desc: Returns the size of the mailbox. value: 0xE5 params: - name: "NO" desc: Reference ID mailbox number type: PAR8 dir: in - name: "SIZE" desc: Size in bytes of the contents of mailbox NO type: PAR8 dir: out support: official: no xtended: yes compat: yes FILE_MD5SUM: desc: Get md5 sum of a file value: 0xE6 params: - name: "NAME" desc: First character in file name (character string) type: PAR8 dir: in - name: "MD5SUM" desc: First byte in md5 sum (byte array) type: PAR8 dir: out - name: "SUCCESS" desc: Success flag (0 = no, 1 = yes) type: PAR8 dir: out support: official: no xtended: yes compat: yes remarks: Dispatch status unchanged # For the 3rd party VMs DYNLOAD_VMLOAD: desc: Load the selected VM value: 0xF0 params: - name: "VMINDEX" desc: VM Index, Robotc = 0, Labview = 1 type: PAR8 dir: in - name: "RESULT" desc: OK if VM loaded ok FAIL if it did not. type: PAR8 dir: out support: official: no xtended: yes compat: yes DYNLOAD_VMEXIT: desc: Clean up the dynamic VM loading system value: 0xF1 params: [] remarks: Calls the VM's exit_vm() function to tidy up support: official: no xtended: yes compat: yes DYNLOAD_ENTRY_0: desc: Execute Entry Point function 0 in Third Party VM value: 0xF2 params: - name: "CMD" desc: Sub command to be executed type: PAR8 dir: in - name: "LENGTH_IN" desc: Amount of data passed to this opcode type: PAR8 dir: in - name: "LENGTH_OUT" desc: Amount of data returned type: PAR16 dir: out - name: "VALUE" desc: Data from opcode type: PARV dir: out support: official: no xtended: yes compat: yes DYNLOAD_ENTRY_1: desc: Execute Entry Point function 1 in Third Party VM value: 0xF3 params: - name: "CMD" desc: Sub command to be executed type: PAR8 dir: in - name: "LENGTH_IN" desc: Amount of data passed to this opcode type: PAR8 dir: in - name: "LENGTH_OUT" desc: Amount of data returned type: PAR16 dir: out - name: "VALUE" desc: Data from opcode type: PARV dir: out support: official: no xtended: yes compat: yes DYNLOAD_ENTRY_2: desc: Execute Entry Point function 2 in Third Party VM value: 0xF4 params: - name: "CMD" desc: Sub command to be executed type: PAR8 dir: in - name: "LENGTH_IN" desc: Amount of data passed to this opcode type: PAR8 dir: in - name: "LENGTH_OUT" desc: Amount of data returned type: PAR16 dir: out - name: "VALUE" desc: Data from opcode type: PARV dir: out support: official: no xtended: yes compat: yes DYNLOAD_ENTRY_3: desc: Execute Entry Point function 3 in Third Party VM value: 0xF5 params: - name: "CMD" desc: Sub command to be executed type: PAR8 dir: in - name: "LENGTH_IN" desc: Amount of data passed to this opcode type: PAR8 dir: in - name: "LENGTH_OUT" desc: Amount of data returned type: PAR16 dir: out - name: "VALUE" desc: Data from opcode type: PARV dir: out support: official: no xtended: yes compat: yes DYNLOAD_ENTRY_4: desc: Execute Entry Point function 4 in Third Party VM value: 0xF6 params: - name: "CMD" desc: Sub command to be executed type: PAR8 dir: in - name: "LENGTH_IN" desc: Amount of data passed to this opcode type: PAR8 dir: in - name: "LENGTH_OUT" desc: Amount of data returned type: PAR16 dir: out - name: "VALUE" desc: Data from opcode type: PARV dir: out support: official: no xtended: yes compat: yes DYNLOAD_ENTRY_5: desc: Execute Entry Point function 5 in Third Party VM value: 0xF7 params: - name: "CMD" desc: Sub command to be executed type: PAR8 dir: in - name: "LENGTH_IN" desc: Amount of data passed to this opcode type: PAR8 dir: in - name: "LENGTH_OUT" desc: Amount of data returned type: PAR16 dir: out - name: "VALUE" desc: Data from opcode type: PARV dir: out support: official: no xtended: yes compat: yes DYNLOAD_ENTRY_6: desc: Execute Entry Point function 6 in Third Party VM value: 0xF8 params: - name: "CMD" desc: Sub command to be executed type: PAR8 dir: in - name: "LENGTH_IN" desc: Amount of data passed to this opcode type: PAR8 dir: in - name: "LENGTH_OUT" desc: Amount of data returned type: PAR16 dir: out - name: "VALUE" desc: Data from opcode type: PARV dir: out support: official: no xtended: yes compat: yes DYNLOAD_ENTRY_7: desc: Execute Entry Point function 7 in Third Party VM value: 0xF9 params: - name: "CMD" desc: Sub command to be executed type: PAR8 dir: in - name: "LENGTH_IN" desc: Amount of data passed to this opcode type: PAR8 dir: in - name: "LENGTH_OUT" desc: Amount of data returned type: PAR16 dir: out - name: "VALUE" desc: Data from opcode type: PARV dir: out support: official: no xtended: yes compat: yes DYNLOAD_ENTRY_8: desc: Execute Entry Point function 8 in Third Party VM value: 0xFA params: - name: "CMD" desc: Sub command to be executed type: PAR8 dir: in - name: "LENGTH_IN" desc: Amount of data passed to this opcode type: PAR8 dir: in - name: "LENGTH_OUT" desc: Amount of data returned type: PAR16 dir: out - name: "VALUE" desc: Data from opcode type: PARV dir: out support: official: no xtended: yes compat: yes DYNLOAD_ENTRY_9: desc: Execute Entry Point function 9 in Third Party VM value: 0xFB params: - name: "CMD" desc: Sub command to be executed type: PAR8 dir: in - name: "LENGTH_IN" desc: Amount of data passed to this opcode type: PAR8 dir: in - name: "LENGTH_OUT" desc: Amount of data returned type: PAR16 dir: out - name: "VALUE" desc: Data from opcode type: PARV dir: out support: official: no xtended: yes compat: yes DYNLOAD_GET_VM: desc: Get the index of the currently loaded VM value: 0xFC params: - name: "RESULT" desc: VM Index, Robotc = 0, Labview = 1, -1 for no loaded VM type: PAR8 dir: out support: official: no xtended: yes compat: yes # TST TST: desc: System test functions entry value: 0xFF params: - name: "CMD" type: SUBP dir: in commands: TST_OPEN: desc: Enables test byte codes for 10 seconds value: 10 params: [] TST_CLOSE: desc: Disables test byte codes value: 11 params: [] TST_READ_PINS: desc: Read connector pin status value: 12 params: - name: "PORT" desc: Input connector [0..3], output connector [16..19] type: PAR8 dir: in - name: "LENGTH" desc: Number of pins in returned string type: PAR8 dir: in - name: "STRING" desc: String variable start index ('0' = low, '1' = high) type: PAR8 dir: out remarks: > Input -----— STRING[0] Pin1 I_ONx current source control output ['0','1'] STRING[1] Pin2 LEGDETx ['0','1'] STRING[2] Pin5 DIGIx0 ['0','1'] STRING[3] Pin6 DIGIx1 ['0','1'] STRING[4] - TXINx_EN ['0','1'] Output -----— STRING[0] Pin1 MxIN0 ['0','1'] STRING[1] Pin2 MxIN1 ['0','1'] STRING[2] Pin5 DETx0 ['0','1'] STRING[3] Pin5 INTx0 ['0','1'] STRING[4] Pin6 DIRx ['0','1'] TST_WRITE_PINS: desc: Write to connector pin value: 13 params: - name: "PORT" desc: Input connector [0..3], output connector [16..19] type: PAR8 dir: in - name: "LENGTH" desc: Number of pins in returned string type: PAR8 dir: in - name: "STRING" desc: > String variable start index ('0' = set low, '1' = set high, 'X' = tristate, '-' = don't touch) type: PAR8 dir: in remarks: > Input -----— STRING[0] Pin1 I_ONx current source control output ['0','1','X','-'] STRING[1] Pin2 LEGDETx ['0','1','X','-'] STRING[2] Pin5 DIGIx0 ['0','1','X','-'] STRING[3] Pin6 DIGIx1 ['0','1','X','-'] STRING[4] - TXINx_EN ['0','1','X','-'] Output -----— STRING[0] Pin1 MxIN0 ['0','1','X','-'] STRING[1] Pin2 MxIN1 ['0','1','X','-'] STRING[2] Pin5 DETx0 Write ['0','1','X','-'] STRING[3] Pin5 INTx0 Read ['0','1','X','-'] STRING[4] Pin6 DIRx ['0','1','X','-'] TST_READ_ADC: desc: Read raw count from ADC value: 14 params: - name: "INDEX" desc: Input mapped index (see remarks) [0..15] type: PAR8 dir: in - name: "VALUE" desc: Raw count [0..4095] type: PAR16 dir: out remarks: > INDEX 0..3 Input connector pin 1 (0=conn1, 1=conn2, 2=conn3, 3=conn4) INDEX 4..7 Input connector pin 6 (4=conn1, 5=conn2, 6=conn3, 7=conn4) INDEX 8..11 Output connector pin 5 (8=conn1, 9=conn2, 10=conn3, 11=conn4) INDEX 12 Battery temperature INDEX 13 Current flowing to motors INDEX 14 Current flowing from the battery INDEX 15 Voltage at battery cell 1, 2, 3,4, 5, and 6 TST_WRITE_UART: desc: Write data to port through UART value: 15 params: - name: "PORT" desc: Input connector [0..3] type: PAR8 dir: in - name: "LENGTH" desc: Length of string to write [0..63] type: PAR8 dir: in - name: "STRING" desc: String of data type: PAR8 dir: in TST_READ_UART: desc: Read data from port through UART value: 16 params: - name: "PORT" desc: Input connector [0..3] type: PAR8 dir: in - name: "LENGTH" desc: Length of string to write [0..63] type: PAR8 dir: in - name: "STRING" desc: String of data type: PAR8 dir: out TST_ENABLE_UART: desc: Enable all UARTs value: 17 params: - name: "BITRATE" desc: Bit rate [2400..115200 b/S] type: PAR32 dir: in TST_DISABLE_UART: desc: Disable all UARTs value: 18 params: [] TST_ACCU_SWITCH: desc: Read accu switch state value: 19 params: - name: "ACTIVE" desc: State [0..1] type: PAR8 dir: out TST_BOOT_MODE2: desc: Turn on mode2 value: 20 params: [] remarks: This only works on pre-release EV3 hardware. TST_POLL_MODE2: desc: Read mode2 status value: 21 params: - name: "STATUS" desc: State [0..2] type: PAR8 dir: out remarks: This only works on pre-release EV3 hardware. TST_CLOSE_MODE2: desc: Closes mode2 value: 22 params: [] remarks: This only works on pre-release EV3 hardware. TST_RAM_CHECK: desc: Read RAM test status status value: 23 params: - name: "STATUS" desc: State [0,1] 0 = FAIL, 1 = SUCCESS type: PAR8 dir: out remarks: > This set of commands are for test only as they change behaviour in some driver modules. When test is open every command keeps the test byte codes enabled for 10 seconds.