Appearance
EDIABAS Interpreter Opcodes
This document lists all opcodes implemented in the TypeScript interpreter (packages/interpreter/src/interpreter.ts). Descriptions are derived from the handler map and the operation implementations in packages/interpreter/src/operations/*. Mnemonic names follow the disassembler table in packages/best-parser/src/disassembler.ts.
Operand conventions
Most instructions take up to two operands (arg0, arg1) encoded by addressing modes:
- Integer registers:
B,A,I,L(8/8/16/32-bit) - String registers:
S(text/binary) - Float registers:
F(IEEE-754 double) - Immediate values: integer or string literals
- Indexed string operands:
Sx[index]optionally with length and/or offset
Unless stated otherwise, integer operands can be register or immediate; string operands can be string register, immediate string, or indexed string.
Arithmetic & Bitwise (integer)
0x00 - move (Move/Copy Value)
Copies value from source integer register to destination integer register.
Arguments:
- arg0: Destination integer register (B/A/I/L)
- arg1: Source integer register (B/A/I/L)
0x01 - clear (Clear Register)
Sets destination integer register to 0.
Arguments:
- arg0: Destination integer register (B/A/I/L)
0x02 - comp (Compare Integers)
Compares arg0 and arg1 and updates flags (Z/S/V/C). Result is not stored.
Arguments:
- arg0: Left integer register (B/A/I/L)
- arg1: Right integer register (B/A/I/L)
0x03 - subb (Subtract)
arg0 = arg0 - arg1 (integer). Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Source integer register
0x04 - adds (Add)
arg0 = arg0 + arg1 (integer). Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Source integer register
0x05 - mult (Multiply)
Signed multiply. Low part stored in arg0, high part stored in arg1 (source register). Updates flags (Z/S), clears V.
Arguments:
- arg0: Destination integer register (low result)
- arg1: Source integer register (high result)
0x06 - divs (Divide)
Integer division. arg0 = arg0 / arg1, arg1 = remainder. On divide by zero, leaves arg0 unchanged. Updates flags.
Arguments:
- arg0: Dividend / quotient integer register
- arg1: Divisor / remainder integer register
0x07 - and (Bitwise AND)
arg0 = arg0 & arg1. Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Source integer register
0x08 - or (Bitwise OR)
arg0 = arg0 | arg1. Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Source integer register
0x09 - xor (Bitwise XOR)
arg0 = arg0 ^ arg1. Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Source integer register
0x0a - not (Bitwise NOT)
arg0 = ~arg0. Updates flags.
Arguments:
- arg0: Destination integer register
0x18 - asr (Arithmetic Shift Right)
Right shift arg0 by arg1 bits. Carry flag updated per shift-out bit. Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Shift count integer register
0x19 - lsl (Logical Shift Left)
Left shift arg0 by arg1 bits. Carry flag updated. Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Shift count integer register
0x1a - lsr (Logical Shift Right)
Right shift arg0 by arg1 bits (same implementation as asr in this interpreter). Carry flag updated. Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Shift count integer register
0x1b - asl (Arithmetic Shift Left)
Left shift arg0 by arg1 bits (same implementation as lsl in this interpreter). Carry flag updated. Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Shift count integer register
0x49 - addc (Add with Carry)
arg0 = arg0 + arg1 + C. Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Source integer register
0x4a - subc (Subtract with Borrow)
arg0 = arg0 - arg1 - C. Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Source integer register
0x6a - test (Test AND)
Computes arg0 & arg1 and updates flags. Result not stored.
Arguments:
- arg0: Left integer register
- arg1: Right integer register
Control Flow
0x0b - jump (Unconditional Jump)
Relative jump: PC = PC + arg0.
Arguments:
- arg0: Relative offset (int register or immediate)
0x0c - jtsr (Call Subroutine)
Pushes return address to call stack and jumps relative.
Arguments:
- arg0: Relative offset (int register or immediate)
0x0d - ret (Return)
Returns to the last address on the call stack.
Arguments:
- (none)
0x0e - jc (Jump if Carry)
Jumps if carry flag set.
Arguments:
- arg0: Relative offset
0x0f - jae (Jump if Above or Equal)
Jumps if carry flag clear (unsigned >=).
Arguments:
- arg0: Relative offset
0x10 - jz (Jump if Zero)
Jumps if zero flag set.
Arguments:
- arg0: Relative offset
0x11 - jnz (Jump if Not Zero)
Jumps if zero flag clear.
Arguments:
- arg0: Relative offset
0x12 - jv (Jump if Overflow)
Jumps if overflow flag set.
Arguments:
- arg0: Relative offset
0x13 - jnv (Jump if No Overflow)
Jumps if overflow flag clear.
Arguments:
- arg0: Relative offset
0x14 - jmi (Jump if Minus)
Jumps if sign flag set (negative result).
Arguments:
- arg0: Relative offset
0x15 - jpl (Jump if Plus)
Jumps if sign flag clear.
Arguments:
- arg0: Relative offset
0x47 - jt (Jump if Timer Flag Set)
Jumps if the internal timer flag is set.
Arguments:
- arg0: Relative offset
0x48 - jnt (Jump if Timer Flag Not Set)
Jumps if the internal timer flag is clear.
Arguments:
- arg0: Relative offset
0x5a - jg (Jump if Greater)
Signed compare: jump if arg0 > arg1 from last compare (Z=0, S=V).
Arguments:
- arg0: Relative offset
0x5b - jge (Jump if Greater or Equal)
Signed compare: jump if arg0 >= arg1 (S=V).
Arguments:
- arg0: Relative offset
0x5c - jl (Jump if Less)
Signed compare: jump if arg0 < arg1 (S!=V).
Arguments:
- arg0: Relative offset
0x5d - jle (Jump if Less or Equal)
Signed compare: jump if arg0 <= arg1 (Z=1 or S!=V).
Arguments:
- arg0: Relative offset
0x5e - ja (Jump if Above)
Unsigned compare: jump if arg0 > arg1 (C=0 and Z=0).
Arguments:
- arg0: Relative offset
0x5f - jbe (Jump if Below or Equal)
Unsigned compare: jump if arg0 <= arg1 (C=1 or Z=1).
Arguments:
- arg0: Relative offset
0x1c - nop (No Operation)
Does nothing.
Arguments:
- (none)
0x1d - eoj (End of Job / Halt)
Halts interpreter execution.
Arguments:
- (none)
Flags
0x16 - clrc (Clear Carry)
Clears carry flag.
Arguments:
- (none)
0x17 - setc (Set Carry)
Sets carry flag.
Arguments:
- (none)
0x4c - clrv (Clear Overflow)
Clears overflow flag.
Arguments:
- (none)
0x4e - popf (Pop Flags)
Pops flags from data stack.
Arguments:
- (none)
0x4f - pushf (Push Flags)
Pushes flags to data stack.
Arguments:
- (none)
Stack (data)
0x1e - push (Push)
Pushes integer register value to data stack.
Arguments:
- arg0: Source integer register
0x1f - pop (Pop)
Pops value from data stack into integer register.
Arguments:
- arg0: Destination integer register
0x50 - atsp (At Stack Position)
Reads value at stack offset and stores to register. Offset 0 is top.
Arguments:
- arg0: Destination integer register
- arg1: Offset (int register or immediate)
0x51 - swap (Swap Top)
Swaps the top two values on the data stack.
Arguments:
- (none)
String & Text
0x20 - scmp (String Compare)
Compares two strings and updates flags (Z/S/C).
Arguments:
- arg0: Left string register
- arg1: Right string register
0x21 - scat (String Concatenate)
Appends arg1 to arg0.
Arguments:
- arg0: Destination string register
- arg1: Source string (string register, immediate string, or indexed)
0x22 - scut (String Cut from End)
Removes the last N characters from arg0.
Arguments:
- arg0: Destination string register
- arg1: Number of characters to remove (int reg or immediate)
0x23 - slen (String Length)
Stores string length in integer register.
Arguments:
- arg0: Destination integer register
- arg1: Source string register
0x24 - spaste (String Paste/Insert)
Inserts arg1 into the base string at indexed position. arg0 must be an indexed S operand.
Arguments:
- arg0: Indexed string destination (base S register + index/offset)
- arg1: String to insert (string reg or immediate)
0x25 - serase (String Erase)
Removes length characters from base string at indexed position.
Arguments:
- arg0: Indexed string target (base S register + index/offset)
- arg1: Length to erase (int reg or immediate)
0x53 - srevrs (Reverse String)
Reverses the string in-place.
Arguments:
- arg0: Destination string register
0x52 - setspc (Set Token Separator / Index)
Configures token extraction: sets separator string and optional token index.
Arguments:
- arg0: Separator string (string reg or immediate)
- arg1: Optional token index (int reg or immediate, 1-based)
0x54 - stoken (Extract Token)
Splits arg1 by the configured separator (from setspc) and writes the selected token to arg0. Sets Z flag if separator missing or index out of range.
Arguments:
- arg0: Destination string register
- arg1: Source string (string reg, immediate, or indexed)
0x7e - strcat (String Concatenate Alias)
Alias of scat.
Arguments:
- arg0: Destination string register
- arg1: Source string register
0x79 - fix2hex (Integer to Hex String)
Converts integer to uppercase hex string.
Arguments:
- arg0: Destination string register
- arg1: Source integer register
0x7a - fix2dez (Integer to Decimal String)
Converts integer to decimal string.
Arguments:
- arg0: Destination string register
- arg1: Source integer register
0x67 - a2fix (ASCII to Integer)
Parses decimal string and stores integer. Sets flags on parse error.
Arguments:
- arg0: Destination integer register
- arg1: Source string register
0x8f - strcmp (String Compare Alias)
Alias of scmp.
Arguments:
- arg0: Left string register
- arg1: Right string register
0x90 - strlen (String Length Alias)
Alias of slen.
Arguments:
- arg0: Destination integer register
- arg1: Source string register
0x8c - a2y (ASCII to Y/Binary)
Copies string bytes into Y-register (binary string).
Arguments:
- arg0: Destination string register
- arg1: Source string register
0x8e - hex2y (Hex String to Binary)
Parses hex string into raw bytes stored in destination string register.
Arguments:
- arg0: Destination string register
- arg1: Source string register
0x91 - y2bcd (Binary to BCD String)
Converts binary bytes to BCD string (two digits per nibble).
Arguments:
- arg0: Destination string register
- arg1: Source string register (binary)
0x92 - y2hex (Binary to Hex String)
Converts binary bytes to uppercase hex string.
Arguments:
- arg0: Destination string register
- arg1: Source string register (binary)
0xb5 - ssize (String Size in Bytes)
Stores byte length of string (CP1252 encoded) in integer register.
Arguments:
- arg0: Destination integer register
- arg1: Source string register
Floating Point
0x3a - a2flt (ASCII to Float)
Parses string to float, sets flags on error.
Arguments:
- arg0: Destination float register
- arg1: Source string register
0x3b - fadd (Float Add)
arg0 = arg0 + arg1.
Arguments:
- arg0: Destination float register
- arg1: Source float register
0x3c - fsub (Float Subtract)
arg0 = arg0 - arg1.
Arguments:
- arg0: Destination float register
- arg1: Source float register
0x3d - fmul (Float Multiply)
arg0 = arg0 * arg1.
Arguments:
- arg0: Destination float register
- arg1: Source float register
0x3e - fdiv (Float Divide)
arg0 = arg0 / arg1.
Arguments:
- arg0: Destination float register
- arg1: Source float register
0xa1 - fcomp (Float Compare)
Compares two floats and updates flags (Z/S/C/V).
Arguments:
- arg0: Left float register
- arg1: Right float register
0x87 - flt2a (Float to String)
Converts float to string.
Arguments:
- arg0: Destination string register
- arg1: Source float register
0x88 - setflt (Set Float Immediate)
Sets float register to immediate value or copies from float register.
Arguments:
- arg0: Destination float register
- arg1: Float immediate or float register
0x68 - fix2flt (Integer to Float)
Converts integer to float.
Arguments:
- arg0: Destination float register
- arg1: Source integer register
0x96 - flt2fix (Float to Integer)
Converts float to integer with truncation. Updates flags.
Arguments:
- arg0: Destination integer register
- arg1: Source float register
0x9b - flt2y4 (Float to 4-byte Binary)
Stores IEEE-754 single (big-endian) in destination string register.
Arguments:
- arg0: Destination string register
- arg1: Source float register
0x9c - flt2y8 (Float to 8-byte Binary)
Stores IEEE-754 double (big-endian) in destination string register.
Arguments:
- arg0: Destination string register
- arg1: Source float register
0x9d - y42flt (4-byte Binary to Float)
Reads IEEE-754 single (big-endian) from string register.
Arguments:
- arg0: Destination float register
- arg1: Source string register (binary)
0x9e - y82flt (8-byte Binary to Float)
Reads IEEE-754 double (big-endian) from string register.
Arguments:
- arg0: Destination float register
- arg1: Source string register (binary)
0x6e - xbatt (Battery Voltage Stub)
Stub: stores 12.0 in float register.
Arguments:
- arg0: Destination float register
Result Collection
0x34 - ergb (Result: Byte)
Records a byte result.
Arguments:
- arg0: Result name (string reg or immediate)
- arg1: Integer register (value masked to 8 bits)
0x35 - ergw (Result: Word)
Records a word result.
Arguments:
- arg0: Result name (string reg or immediate)
- arg1: Integer register (value masked to 16 bits)
0x36 - ergd (Result: Dword)
Records a dword result.
Arguments:
- arg0: Result name (string reg or immediate)
- arg1: Integer register (value masked to 32 bits)
0x37 - ergi (Result: Int)
Records a signed 16-bit integer result.
Arguments:
- arg0: Result name (string reg or immediate)
- arg1: Integer value (register or immediate)
0x38 - ergr (Result: Real)
Records a floating-point result.
Arguments:
- arg0: Result name (string reg or immediate)
- arg1: Float register
0x39 - ergs (Result: String)
Records a string result.
Arguments:
- arg0: Result name (string reg or immediate)
- arg1: String (string reg or immediate)
0x3f - ergy (Result: Binary)
Records a binary result.
Arguments:
- arg0: Result name (string reg or immediate)
- arg1: Binary source (string reg or immediate/indexed)
0x81 - ergc (Result: Char/Byte)
Records a byte (char) result. Value masked to 8 bits.
Arguments:
- arg0: Result name (string reg or immediate)
- arg1: Integer value (register or immediate)
0x82 - ergl (Result: Long/Dword)
Records a 32-bit unsigned result.
Arguments:
- arg0: Result name (string reg or immediate)
- arg1: Integer value (register or immediate)
0x95 - ergsysi (System Info Result)
Records a string result under a system info name.
Arguments:
- arg0: Result name (string reg or immediate)
- arg1: Result value (string reg or immediate)
0x40 - enewset (New Result Set)
Clears current result collector.
Arguments:
- (none)
0x41 - etag (Conditional Result Skip)
If a results filter is configured and arg1 is not requested, jumps to arg0.
Arguments:
- arg0: Relative offset (int reg or immediate)
- arg1: Result name (string reg or immediate)
0x4d - eerr (Execute Error)
Executes an error based on the current error trap bit. If errorTrapBitNr is set (≥0), looks up the corresponding error code from the trap bit dictionary and raises that error. If no match is found, raises EDIABAS_BIP_0000.
Arguments:
- (none)
Error Trap Bit Mapping:
- Bit 8 →
EDIABAS_BIP_0011 - Bit 28 →
EDIABAS_IFH_0069 - Bit 29 →
EDIABAS_IFH_0074
0xac - generr (Generate Error)
Records error info and throws an interpreter error.
Arguments:
- arg0: Error code (int reg or immediate)
- arg1: Error text (string reg or immediate)
Parameters
0x55 - parb (Get Parameter Byte)
Reads parameter at index into integer register.
Arguments:
- arg0: Destination integer register
- arg1: Parameter index (int reg or immediate)
0x56 - parw (Get Parameter Word)
Alias of parb (reads parameter as int).
Arguments:
- arg0: Destination integer register
- arg1: Parameter index
0x57 - parl (Get Parameter Long)
Alias of parb (reads parameter as int).
Arguments:
- arg0: Destination integer register
- arg1: Parameter index
0x58 - pars (Get Parameter String)
Reads parameter as string into S register.
Arguments:
- arg0: Destination string register
- arg1: Parameter index
0x69 - parr (Get Parameter Float)
Reads parameter as float into F register.
Arguments:
- arg0: Destination float register
- arg1: Parameter index
0x7f - pary (Get Parameter Binary)
Reads parameter as binary/string into S register.
Arguments:
- arg0: Destination string register
- arg1: Parameter index
0x80 - parn (Parameter Count)
Stores number of parameters in integer register.
Arguments:
- arg0: Destination integer register
Time & Timer
0x43 - gettmr (Get Timer)
Reads timer value (ms) into integer register.
Arguments:
- arg0: Destination integer register
0x44 - settmr (Set Timer)
Sets timer base value.
Arguments:
- arg0: Timer value (int reg or immediate)
0x45 - sett (Set Timer Flag)
Sets internal timer flag (used by jt/jnt).
Arguments:
- (none)
0x46 - clrt (Clear Timer Flag)
Clears internal timer flag.
Arguments:
- (none)
0x6b - wait (Wait)
Sleeps for the given duration in milliseconds.
Arguments:
- arg0: Duration (int reg or immediate)
0xae - waitex (Extended Wait)
Same as wait, takes duration in milliseconds.
Arguments:
- arg0: Duration (int reg or immediate)
0x6c - date (Get Date)
Stores current date into int or string register (YYYYMMDD or YYYY-MM-DD).
Arguments:
- arg0: Destination integer or string register
0x6d - time (Get Time)
Stores current time into int or string register (HHMMSS or HH:MM:SS).
Arguments:
- arg0: Destination integer or string register
0xad - ticks (System Ticks)
Stores Date.now() (ms since epoch, masked to 32-bit) into integer register.
Arguments:
- arg0: Destination integer register
Communication (Interface)
0x26 - xconnect (Connect Interface)
Connects the communication interface.
Arguments:
- (none)
0x27 - xhangup (Disconnect Interface)
Disconnects the communication interface.
Arguments:
- (none)
0x28 - xsetpar (Set Parameter)
Sets interface parameter.
Arguments:
- arg0: Parameter id (int register)
- arg1: Value (int register)
0x29 - xawlen (Set Answer Length)
Sets expected answer length.
Arguments:
- arg0: Length (int register)
0x2a - xsend (Send)
Sends raw bytes from string register.
Arguments:
- arg0: Source string register (binary)
0x2b - xsendf (Formatted Send)
Sends formatted request.
Arguments:
- arg0: Format string register
- arg1: Payload string register
0x2c - xrequf (Formatted Request)
Sends formatted request and receives formatted response.
Arguments:
- arg0: Format string register
- arg1: Payload string register (response stored here)
0x2d - xstopf (Stop Formatted)
Stops a formatted request/response operation.
Arguments:
- (none)
0x2e - xkeyb (Read Keyboard)
Reads keyboard input into string register.
Arguments:
- arg0: Destination string register
0x2f - xstate (Interface State)
Reads interface state into integer register.
Arguments:
- arg0: Destination integer register
0x30 - xboot (Boot)
Boots the interface (if supported).
Arguments:
- (none)
0x31 - xreset (Reset)
Resets the interface.
Arguments:
- (none)
0x32 - xtype (Interface Type)
Writes interface type string to destination.
Arguments:
- arg0: Destination string register
0x33 - xvers (Interface Version)
Writes interface version to destination.
Arguments:
- arg0: Destination integer register
0x42 - xreps (Set Response)
Sets fixed response bytes for interface.
Arguments:
- arg0: Source string register (binary)
0xaf - xopen (Open Interface)
Opens the interface. Optional mode parameter.
Arguments:
- arg0: Optional mode (int register) or none
0xb0 - xclose (Close Interface)
Closes the interface.
Arguments:
- (none)
0xb1 - xcloseex (Close Interface Extended)
Closes interface with optional mode.
Arguments:
- arg0: Optional mode (int register) or none
0xb2 - xswitch (Switch Interface)
Switches to interface index.
Arguments:
- arg0: Interface index (int register)
0xb3 - xsendex (Extended Send)
Sends extended payload (falls back to xsend).
Arguments:
- arg0: Source string register (binary)
0xb4 - xrecvex (Extended Receive)
Receives extended payload (falls back to xrecv).
Arguments:
- arg0: Destination string register
- arg1: Optional timeout (int register)
0x78 - xstoptr (Stop Transfer) [Stub]
No-op stub.
Arguments:
- (none)
0x70 - xdownl (Download) [Stub]
No-op stub.
Arguments:
- (none)
0x86 - xinfo (Interface Info) [Stub]
Stores empty string into destination.
Arguments:
- arg0: Destination string register
0x8d - xparraw (Raw Parameters) [Stub]
No-op stub.
Arguments:
- (none)
0x71 - xgetport (Get Port)
Reads a hardware port value from the interface.
Arguments:
- arg0: Destination integer register (port value)
- arg1: Port index (int register or immediate)
0x72 - xignit (Get Ignition Voltage)
Reads ignition voltage from interface and stores in destination register.
Arguments:
- arg0: Destination integer register (voltage value)
0x73 - xloopt (Loop Test)
Reads loop test result from interface.
Arguments:
- arg0: Destination integer register (test result)
0x74 - xprog (Set Program Voltage)
Sets programming voltage on the interface.
Arguments:
- arg0: Voltage value (int register or immediate)
0x75 - xraw (Raw Data)
Sends raw data to interface and receives response.
Arguments:
- arg0: Request string register (binary input)
- arg1: Response string register (binary output)
0x76 - xsetport (Set Port)
Sets a hardware port value on the interface.
Arguments:
- arg0: Port index (int register or immediate)
- arg1: Port value (int register or immediate)
0x77 - xsireset (SI Relais Reset)
Switches the SI relais for a specified time.
Arguments:
- arg0: Time in milliseconds (int register or immediate)
Files
0x59 - fclose (Close File)
Closes file handle.
Arguments:
- arg0: File handle (int register)
0x60 - fopen (Open File)
Opens file and returns handle.
Arguments:
- arg0: Destination integer register (handle)
- arg1: File path (string register)
0x61 - fread (Read File Bytes)
Reads I0 bytes from file into string register.
Arguments:
- arg0: Destination string register
- arg1: File handle (int register)
0x62 - freadln (Read Line)
Reads one line from file into string register.
Arguments:
- arg0: Destination string register
- arg1: File handle (int register)
0x63 - fseek (Seek)
Seeks to byte offset.
Arguments:
- arg0: File handle (int register)
- arg1: Offset (int register)
0x64 - fseekln (Seek Line)
Seeks forward by line count (from current).
Arguments:
- arg0: File handle (int register)
- arg1: Line offset (int register)
0x65 - ftell (Tell Position)
Stores current byte offset.
Arguments:
- arg0: Destination integer register
- arg1: File handle (int register)
0x66 - ftellln (Tell Line)
Stores current line number.
Arguments:
- arg0: Destination integer register
- arg1: File handle (int register)
Tables
0x7b - tabset (Select Table)
Sets active table by name. Updates flags on missing table.
Arguments:
- arg0: Table name (string register)
0xaa - tabsetex (Select Table Extended)
Same as tabset.
Arguments:
- arg0: Table name (string register)
0x7c - tabseek (Seek Row)
Searches for value in column, sets row index and flags.
Arguments:
- arg0: Search value (string register)
- arg1: Column index (int register)
0x9a - tabseeku (Seek Row Case-Insensitive)
Case-insensitive variant of tabseek.
Arguments:
- arg0: Search value (string register)
- arg1: Column index (int register)
0x7d - tabget (Get Cell)
Reads current row cell into string register.
Arguments:
- arg0: Destination string register
- arg1: Column index (int register)
0x83 - tabline (Get Row Line)
Gets current row as delimited string (default tab).
Arguments:
- arg0: Destination string register
- arg1: Optional delimiter string register
0xb6 - tabcols (Column Count)
Stores number of columns in table.
Arguments:
- arg0: Destination integer register
0xb7 - tabrows (Row Count)
Stores number of rows in table.
Arguments:
- arg0: Destination integer register
Shared Memory
0x93 - shmset (Shared Memory Set)
Stores binary/string value under key.
Arguments:
- arg0: Key (string reg or immediate)
- arg1: Value (string reg, immediate, or indexed)
0x94 - shmget (Shared Memory Get)
Loads value for key into destination string register.
Arguments:
- arg0: Destination string register
- arg1: Key (string reg or immediate)
Procedures (External Callouts)
0x9f - plink (Link Procedure)
Links a procedure id to a handler via procedureLinker.
Arguments:
- arg0: Procedure id (int reg or immediate)
0xa2 - plinkv (Link Procedure w/ Validation) [Stub]
Same as plink, no validation in interpreter.
Arguments:
- arg0: Procedure id (int reg or immediate)
0xa0 - pcall (Call Procedure)
Calls linked procedure with current procedure stack arguments.
Arguments:
- arg0: Procedure id (int reg or immediate)
0xa3 - ppush (Push Procedure Int)
Pushes integer onto procedure stack.
Arguments:
- arg0: Source integer register
0xa4 - ppop (Pop Procedure Int)
Pops integer from procedure stack.
Arguments:
- arg0: Destination integer register
0xa5 - ppushflt (Push Procedure Float)
Pushes float onto procedure stack.
Arguments:
- arg0: Source float register
0xa6 - ppopflt (Pop Procedure Float)
Pops float from procedure stack.
Arguments:
- arg0: Destination float register
0xa7 - ppushy (Push Procedure Binary)
Pushes binary bytes from string register onto procedure stack.
Arguments:
- arg0: Source string register
0xa8 - ppopy (Pop Procedure Binary)
Pops binary bytes into string register.
Arguments:
- arg0: Destination string register
0xa9 - pjtsr (Procedure Jump to Subroutine) [Stub]
No-op stub.
Arguments:
- (none)
Progress / UI
0x97 - iupdate (Update Progress Text)
Updates progress text string.
Arguments:
- arg0: Text (string reg or immediate)
0x98 - irange (Set Progress Range)
Sets progress range and resets position to -1.
Arguments:
- arg0: Range (int reg or immediate)
0x99 - iincpos (Increment Progress Position)
Increments progress position by given amount (clamped to range).
Arguments:
- arg0: Increment (int reg or immediate)
Misc / Stubs
0x4b - break (Breakpoint)
Raises EDIABAS_BIP_0008 error. In EdiabasLib this is used for debugging breakpoints.
Arguments:
- (none)
0x6f - tosp (To Stack Pointer) [Stub]
No-op stub (null in EdiabasLib).
Arguments:
- (none)
0x89 - cfgig (Config Get Integer)
Reads a configuration value by key and parses it as an integer. Supports hex (0x), binary (0y), and decimal formats. Handles comma/dot decimal separators.
Arguments:
- arg0: Destination integer register
- arg1: Config key (string)
0x8a - cfgsg (Config Get String)
Reads a configuration value by key into a string register. Returns empty string if key not found.
Arguments:
- arg0: Destination string register
- arg1: Config key (string)
0x8b - cfgis (Config Set Integer)
Sets a configuration value from an integer.
Arguments:
- arg0: Config key (string)
- arg1: Integer value to set
Arguments:
- arg0: Destination integer register
0xab - ufix2dez (Unsigned Int to Decimal String)
Converts unsigned int to decimal string.
Arguments:
- arg0: Destination string register
- arg1: Source integer register