Propeller Manual
Table Of Contents
- Preface
- Chapter 1 : Introducing the Propeller Chip
- Concept
- Package Types
- Pin Descriptions
- Specifications
- Hardware Connections
- Boot Up Procedure
- Run-Time Procedure
- Shutdown Procedure
- Block Diagram
- Shared Resources
- System Clock
- Cogs (processors)
- Hub
- I/O Pins
- System Counter
- CLK Register
- Locks
- Main Memory
- Main RAM
- Main ROM
- Character Definitions
- Log and Anti-Log Tables
- Sine Table
- Boot Loader and Spin Interpreter
- Chapter 2 : Spin Language Reference
- Structure of Propeller Objects/Spin
- Categorical Listing of Propeller Spin Language
- Spin Language Elements
- ABORT
- BYTE
- BYTEFILL
- BYTEMOVE
- CASE
- CHIPVER
- CLKFREQ
- _CLKFREQ
- CLKMODE
- _CLKMODE
- CLKSET
- CNT
- COGID
- COGINIT
- COGNEW
- COGSTOP
- CON
- CONSTANT
- Constants (pre-defined)
- CTRA, CTRB
- DAT
- DIRA, DIRB
- FILE
- FLOAT
- _FREE
- FRQA, FRQB
- IF
- IFNOT
- INA, INB
- LOCKCLR
- LOCKNEW
- LOCKRET
- LOCKSET
- LONG
- LONGFILL
- LONGMOVE
- LOOKDOWN, LOOKDOWNZ
- LOOKUP, LOOKUPZ
- NEXT
- OBJ
- Operators
- Expression Workspace
- Operator Attributes
- Unary / Binary
- Normal / Assignment
- Constant and/or Variable Expression
- Level of Precedence
- Intermediate Assignments
- Constant Assignment ‘=’
- Variable Assignment ‘:=’
- Add ‘+’, ‘+=’
- Positive ‘+’ (unary form of Add)
- Subtract ‘-’, ‘-=’
- Negate ‘-’ (unary form of Subtract)
- Decrement, pre- or post- ‘- -’
- Increment, pre- or post- ‘+ +’
- Multiply, Return Low ‘*’, ‘*=’
- Multiply, Return High ‘**’, ‘**=’
- Divide ‘/’, ‘/=’
- Modulus ‘//’, ‘//=’
- Limit Minimum ‘#>’, ‘#>=’
- Limit Maximum ‘<#’, ‘<#=’
- Square Root ‘^^’
- Absolute Value ‘||’
- Sign-Extend 7 or Post-Clear ‘~’
- Sign-Extend 15 or Post-Set ‘~~’
- Shift Arithmetic Right ‘~>’, ‘~>=’
- Random ‘?’
- Bitwise Decode ‘|<’
- Bitwise Encode ‘>|’
- Bitwise Shift Left ‘<<’, ‘<<=’
- Bitwise Shift Right ‘>>’, ‘>>=’
- Bitwise Rotate Left ‘<-’, ‘<-=’
- Bitwise Rotate Right ‘->’, ‘->=’
- Bitwise Reverse ‘><’, ‘><=’
- Bitwise AND ‘&’, ‘&=’
- Bitwise OR ‘|’, ‘|=’
- Bitwise XOR ‘^’, ‘^=’
- Bitwise NOT ‘!’
- Boolean AND ‘AND’, ‘AND=’
- Boolean OR ‘OR’, ‘OR=’
- Boolean NOT ‘NOT’
- Boolean Is Equal ‘==’, ‘===’
- Boolean Is Not Equal ‘<>’, ‘<>=’
- Boolean Is Less Than ‘<’, ‘<=’
- Boolean Is Greater Than ‘>’, ‘>=’
- Boolean Is Equal or Less ‘=<’, ‘=<=’
- Boolean Is Equal or Greater ‘=>’, ‘=>=’
- Symbol Address ‘@’
- Object Address Plus Symbol ‘@@’
- OUTA, OUTB
- PAR
- PHSA, PHSB
- PRI
- PUB
- QUIT
- REBOOT
- REPEAT
- RESULT
- RETURN
- ROUND
- SPR
- _STACK
- STRCOMP
- STRING
- STRSIZE
- Symbols
- TRUNC
- VAR
- VCFG
- VSCL
- WAITCNT
- WAITPEQ
- WAITPNE
- WAITVID
- WORD
- WORDFILL
- WORDMOVE
- _XINFREQ
- Chapter 3 : Assembly Language Reference
- The Structure of Propeller Assembly
- Categorical Listing of Propeller Assembly Language
- Assembly Language Elements
- ABS
- ABSNEG
- ADD
- ADDABS
- ADDS
- ADDSX
- ADDX
- AND
- ANDN
- CALL
- CLKSET
- CMP
- CMPS
- CMPSUB
- CMPSX
- CMPX
- CNT
- COGID
- COGINIT
- COGSTOP
- Conditions ( IF_x )
- CTRA, CTRB
- DIRA, DIRB
- DJNZ
- Effects ( WC, WZ, WR, NR )
- FIT
- FRQA, FRQB
- HUBOP
- IF_x (Conditions)
- INA, INB
- JMP
- JMPRET
- LOCKCLR
- LOCKNEW
- LOCKRET
- LOCKSET
- MAX
- MAXS
- MIN
- MINS
- MOV
- MOVD
- MOVI
- MOVS
- MUXC
- MUXNC
- MUXNZ
- MUXZ
- NEG
- NEGC
- NEGNC
- NEGNZ
- NEGZ
- NOP
- NR
- Operators
- OR
- ORG
- OUTA, OUTB
- PAR
- PHSA, PHSB
- RCL
- RCR
- RDBYTE
- RDLONG
- RDWORD
- Registers
- RES
- RET
- REV
- ROL
- ROR
- SAR
- SHL
- SHR
- SUB
- SUBABS
- SUBS
- SUBSX
- SUBX
- SUMC
- SUMNC
- SUMZ
- Symbols
- TEST
- TESTN
- TJNZ
- TJZ
- VCFG
- VSCL
- WAITCNT
- WAITPEQ
- WAITPNE
- WAITVID
- WC
- WR
- WRBYTE
- WRLONG
- WRWORD
- WZ
- XOR
- Appendix A: Reserved Word List
- Appendix B: Math Samples and Function Tables
- Index
Index
I
I/O pins, 26
Direction, 104–6, 289
Inputs, 118–19, 297
Outputs, 175–77, 330
Rules, 105, 176
I/O pins (spec), 15, 16
I/O Sharing Examples (table), 27
ID of cog, 75, 283
IEEE-754, 109
IF (spin), 112–16
IF_x (asm) (conditions), 295
IFNOT (spin), 117
Import external file, 107
INA, INB (asm), 23, 297, 338
INA, INB (spin), 23, 118–19, 200
Increment, pre- or post- ‘+ +’, 152
Indention, 59, 113, 189
Infinite loops, 189
Initial clock mode, 68
Initial frequency, 65
Input register, 118–19, 297
Input states, 23
INSTR field (asm), 251
Instruction field (asm), 250
Intermediate assignments, 147
Internal RC Oscillator (spec), 16
Is Equal or Greater, Boolean ‘=>’, ‘=>=’, 172
Is Equal or Less, Boolean ‘=<’, ‘=<=’, 171
Is Equal, Boolean ‘==’, ‘===’, 169
Is Greater Than, Boolean ‘>’, ‘>=’, 171
Is Less Than, Boolean ‘<’, ‘<=’, 170
Is Not Equal, Boolean ‘<>’, ‘<>=’, 170
J
JMP (asm), 298–99
JMPRET (asm), 300–302
L
Label field (asm), 250
Labels, global and local (asm), 242
Launching a new cog, 76, 78, 284
Launching assembly code, 77, 81, 103
Launching Spin code, 77, 79, 80
Least Significant Bit (LSB), 159
Length of string, 206
Level of precedence, 143, 146
LFSR, 159
Limit Maximum ‘<#’, ‘<#=’, 155
Limit Minimum ‘#>’, ‘#>=’, 155
Linear Feedback Shift Register (LFSR), 159
List delimiter (,), 208
Literal indicator (asm), #, 240, 241, 360
Local label (asm), 242
Local label indicator (asm), :, 242, 361
Local optimized addressing, 185
Local variable separator, |, 208
Local variables, 184
Lock, 30, 120, 122, 125, 126, 303, 304, 305, 306
Lock rules, 123
LOCKCLR (asm), 303
LOCKCLR (spin), 120–21
LOCKNEW (asm), 304
LOCKNEW (spin), 122–24
LOCKRET (asm), 305
LOCKRET (spin), 125
LOCKSET (asm), 306
LOCKSET (spin), 126–27
Log and anti-log tables, 34, 381
Log table, 382
Logic threshold, 15
Long
Data declaration, 129
Global optimized addressing, 212
Local optimized addressing, 185
Memory type, 16, 128
Range of, 128
Reading/writing, 130, 336, 375
Variable declaration, 129
LONG (spin), 128–33
Long-aligned, 100
LONGFILL (spin), 134
LONGMOVE (spin), 135
LOOKDOWN, LOOKDOWNZ (spin), 136–37
LOOKUP, LOOKUPZ (spin), 138–39
Loops
Conditional, 192
Early termination, 140, 186
Examples, 188
Finite, counted, 190
Finite, simple, 190
Infinite, 189
Propeller Manual v1.1 · Page 391