Propeller Manual

Table Of Contents
LONG – Spin Language Reference
Page 128 · Propeller Manual v1.1
LONG
Designator: Declare long-sized symbol, long aligned/sized data, or read/write a long of main
memory.
VAR
LONG Symbol [Count ]
DAT
Symbol LONG Data [Count]
((PUB PRI))
LONG [BaseAddress] [Offset ]
Symbol is the desired name for the variable (Syntax 1) or data block (Syntax 2).
Count is an optional expression indicating the number of long-sized elements for
Symbol (Syntax 1) or the number of long-sized entries of Data (Syntax 2) to store in
a data table.
Data is a constant expression or comma-separated list of constant expressions.
BaseAddress is an expression describing the long-aligned address of main memory to
read or write. If Offset is omitted, BaseAddress is the actual address to operate on. If
Offset is specified, BaseAddress + Offset * 4 is the actual address to operate on.
Offset is an optional expression indicating the offset from BaseAddress to operate on.
Offset is in units of longs.
Explanation
LONG is one of three multi-purpose declarations (BYTE, WORD, and LONG) that declares or
operates on memory.
LONG can be used to:
1) declare a long-sized (32-bit) symbol or a multi-long symbolic array in a
VAR block, or
2) declare long-aligned, and/or long-sized, data in a
DAT block, or T
3) read or write a long of main memory at a base address with an optional offset.
Range of Long
Memory that is long-sized (32 bits) can contain a value that is one of 2
32
possible
combinations of bits (i.e., one of 4,294,967,296 combinations). The Spin language performs
all mathematic operations using 32-bit signed math, meaning every long value is considered
to be in the range -2,147,483,648 to +2,147,483,647. However, the actual numeric value
contained within a long is subject to how a computer and user interpret it. In Propeller
Assembly a long value can be treated as both signed and unsigned.