OpenBoot 3.x Command Reference Manual

## Address Arithmetic

The commands listed in Table 4-9 perform address arithmetic.

Table 4-9 Address Arithmetic Functions

Command

Stack Diagram

Description

aligned

( n1 -- n1 | a-addr)

Increase n1 if necessary to yield a variable aligned address.

/c

( -- n )

The number of address units to a byte: 1.

/c*

( nu1 -- nu2 )

Synonym for chars.

ca+

( addr1 index -- addr2 )

Increment addr1 by index times the value of /c.

ca1+

( addr1 -- addr2 )

Synonym for char+.

cell+

( addr1 -- addr2 )

Increment addr1 by the value of /n.

cells

( nu1 -- nu2 )

Multiply nu1 by the value of /n.

char+

( addr1 -- addr2 )

Increment addr1 by the value of /c.

chars

( nu1 -- nu2 )

Multiply nu1 by the value of /c.

/l

( -- n )

Number of address units to a quadlet; typically 4.

/l*

( nu1 -- nu2 )

Multiply nu1 by the value of /l.

la+

( addr1 index -- addr2 )

Increment addr1 by index times the value of /l.

la1+

( addr1 -- addr2 )

Increment addr1 by the value of /l.

/n

( -- n )

Number of address units in a cell.

/n*

( nu1 -- nu2 )

Synonym for cells.

na+

( addr1 index -- addr2 )

Increment addr1 by index times the value of /n.

na1+

( addr1 -- addr2 )

Synonym for cell+.

/w

( -- n )

Number of address units to a doublet; typically 2.

/w*

( nu1 -- nu2 )

Multiply nu1 by the value of /w.

wa+

( addr1 index -- addr2 )

Increment addr1 by index times the value of /w.

wa1+

( addr1 -- addr2 )

Increment addr1 by the value of /w.

The address arithmetic commands listed in Table 4-10 are available only on 64-bit OpenBoot implementations.

Table 4-10 64-Bit Address Arithmetic Functions

Command

Stack Diagram

Description

/x

( -- n )

Number of address units in an octlet, typically eight.

/x*

( nu1 -- nu2 )

Multiply nu1 by the value of /x.

xa+

( addr1 index -- addr2 )

Increment addr1 by index times the value of /x.

xa1+

( addr1 -- addr2 )

Increment addr1 by the value of /x.