==== BINPUTB ====
----
Store bytes into a binary data container
----
^ __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// |
{{page>manual:chapter6:aux:legend&nofooter&noeditbtn&inline}}
| **Keyword type** | [[manual:chapter5:basics#commands|Command]] ||
| **Parallel list processing capabilities** | [[manual:chapter5:listproc#group-7multiple-argument-one-result-commands|Group 7]] | //Multiple argument, one result commands// |
| **Affected by flags** | //None// ||
----
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''.
----
''BINPUTB'' is specific to **newRPL** and has no direct equivalent in **userRPL**.
----
**__Input__**
4: BINDATA 2 AAAAAAAAAAAA
3: 0
2: #1122334455667788h
1: 8
…………………………………………………………………………………………………………
BINPUTB
\\
**__Output__**
4:
3:
2:
1: BINDATA 2 VWZ3iYESIzR4
…………………………………………………………………………………………………………
----
{{page>manual:chapter6:libdata&nofooter&noeditbtn&inline}}