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
LQFP, 14
LSB, 159
M
Main memory, 30
Main memory access (asm), 245, 335, 336, 337,
374, 375, 376
Main Memory Map (figure), 31
Main RAM, 23, 31
Main RAM/ROM (spec), 16
Main ROM, 23, 32
Master clock frequency, 28, 31
Math function tables, 380
Math/Logic Operators (table), 144
MAX (asm), 307
Maximum, Limit ‘<#’, ‘<#=’, 155
MAXS (asm), 308
Memory
Access (asm), 245, 335, 336, 337, 374, 375, 376
Access (spin), 40, 51, 57, 58, 128, 134, 135, 136,
138, 203, 206, 227, 234, 235
Addressing Main RAM, 54, 131, 231
Alternate reference, 55, 132, 231
Cog, 240
Copying, 58, 135, 235
Data tables, 51, 100, 128, 227
Filling, 57, 134, 234
Main, 30
Main RAM, 31
Main ROM, 32
Reserving (asm), 339
Reserving (spin), 110
Memory type
Byte, 16, 51
Long, 16, 128
Word, 16, 227
Method termination, 47, 196
MIN (asm), 309
Minimum, Limit ‘#>’, ‘#>=’, 155
MINS (asm), 310
Modulus ‘//’, ‘//=’, 154
Most Significant Bit (MSB), 159
MOV (asm), 311
MOVD (asm), 312
MOVI (asm), 313
MOVS (asm), 314
MSB, 159
Multi-decision block, 59, 112, 117
Multi-line code comment, { }, 208, 361
Multi-line doc comment, {{ }}, 208, 361
Multi-long addition (asm), 262, 264
Multi-long comparison (asm), 278, 281
Multi-long subtraction (asm), 352, 354
Multiply, Return High ‘**’, ‘**=’, 153
Multiply, Return Low ‘*’, ‘*=’, 153
Multi-processing, 75, 76, 78, 83, 283, 284, 286
Multi-tasking, single-process (asm), 301
Mutually exclusive resource, 22, 24, 123
MUXC (asm), 315
MUXNC (asm), 316
MUXNZ (asm), 317
MUXZ (asm), 318
N
NEG (asm), 319
Negate ‘-’, 150
NEGC (asm), 320
NEGNC (asm), 321
NEGNZ (asm), 322
NEGX, 93, 94
NEGZ (asm), 323
NEXT (spin), 140
NOP (asm), 324
Normal / assignment operators, 145
NOT, Bitwise ‘!’, 166
NOT, Boolean ‘NOT’, 168
NR (asm), 325
Numerical bases, 45
O
OBJ (spin), 141–42
Object Address Plus Symbol ‘@@’, 173
Object assignment, :, 208
Object block, 141
Object Exchange, 11
Object reference, 141
Object-Constant Reference, #, 207
Object-Method Reference, ., 207
Objects, structure of, 36
Opcode tables, 251
Operands field (asm), 250
Page 392 · Propeller Manual v1.1