BINPUTB
Synopsis
Store bytes into a binary data container
Stack Diagram
| Input Stack | Output Stack | ||||
|---|---|---|---|---|---|
| Ddest | Numoffset | Numsrc | Numbytes | → | Ddest-upd |
| Ddest | Numoffset | Ssrc | Numbytes | → | Ddest-upd |
| Ddest | Numoffset | Lsrc | Numbytes | → | Ddest-upd |
| Level 4 | Level 3 | Level 2 | Level 1 | → | Level 1 |
Description
The BINPUTB command stores a specified number of bytes into a binary data container, starting from an offset position; it's not possible to write data exceeding the container's size.
The source of data can be:
- a scalar: the number is converted to an unsigned binary integer and divided into bytes which are stored in the container, in little endian byte order;
- a string: the string is converted to a stream of UTF8 codepoints whose lower 8 bits are stored into the container;
- a list of scalars: each number is converted to an unsigned binary integer and its lower 8 bits are written in the container.
If the size of the source data is less than the specified number of bytes remaining bytes will be set to #0h.
Compatibility
BINPUTB is specific to newRPL and has no direct equivalent in userRPL.
Usage
Input
4: BINDATA 2 AAAAAAAAAAAA 3: 0 2: #1122334455667788h 1: 8 ………………………………………………………………………………………………………… BINPUTB
Output
4:
3:
2:
1: BINDATA 2 VWZ3iYESIzR4
…………………………………………………………………………………………………………
Related Commands
| Command | Short Description | |
|---|---|---|
| MKBINDATA | Create binary data container object | NEW |
| BINPUTB | Store bytes into binary data object | NEW |
| BINGETB | Extract binary data as list of bytes | NEW |
| BINPUTW | Store 32-bit words into binary data object | NEW |
| BINGETW | Extract data from a binary data object as a list of 32-bit words | NEW |
| BINPUTOBJ | Store an entire object into a binary data container | NEW |
| BINGETOBJ | Extract an entire object from a binary data container | NEW |
| BINMOVB | Copy binary data block into a binary data object | NEW |
| BINMOVW | Copy 32-bit words between binary data objects | NEW |