BINPUTB


Synopsis


Store bytes into binary data object

Stack Diagram


Input Stack Output Stack
Ddest Numoffset Numsrc Numbytes Ddest_updated
Ddest Numoffset Ssrc Numbytes Ddest_updated
Ddest Numoffset Lsrc Numbytes Ddest_updated
Level 4 Level 3 Level 2 Level 1 Level 1
Type Command
Parallel list processing Group 7
Affected by flags None

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 #00h.

Compatibility


This command is new in newRPL and does not exist in userRPL.

Usage


4:        BINDATA 2 AAAAAAAAAAAA
3:                             0
2:            #1122334455667788h
1:                             8
……………………………………………………………………………………
BINPUTB

will result in

1:        BINDATA 2 VWZ3iYESIzR4
……………………………………………………………………………………

a data container storing bytes { #88h #77h #66h #55h #44h #33h #22h #11h } in positions from 0 to 7.


4:        BINDATA 2 AAAAAAAAAAAA
3:                             0
2:                           "∞̅"
1:                             2
……………………………………………………………………………………
BINPUTB

(where character on level 2 is $\overline{\infty}$, obtained with LShold-0) will result in

1:        BINDATA 2 AAAFHiAAAAAA
……………………………………………………………………………………

a data container storing bytes { #1Eh #05h } in positions from 0 to 1.


4:        BINDATA 2 AAAAAAAAAAAA
3:                             0
2: { #1122334455h #5544332211h }
1:                             2
……………………………………………………………………………………
BINPUTB

will result in

1:        BINDATA 2 AAARVZAAAAAA
……………………………………………………………………………………

a data container storing bytes { #55h #11h #00h #00h #00h #00h #00h #00h } in positions from 0 to 1.

Related Commands


Arbitrary data containers 9 NEW

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
  • manual/chapter6/libdata/cmd_binputb.txt
  • Last modified: 2019/11/06 15:43
  • by jojo1973