※ {PARAM1} = #{NUM},i{PORT},(o){PORT},w{WORK},r(b){RAM},rw{RAM},rd{RAM},x{XRAM},
d(b){DATA},dw{DATA},dd{DATA}, ( #?,i?,(o)?,w?,r(b)?,rw?,rd?,x?,d(b)?,dw?,dd? )
※ {PARAM2} = (i){PORT},o{PORT},w{WORK},r(b){RAM},rw{RAM},rd{RAM},x{XRAM},
d(b){DATA},dw{DATA},dd{DATA}, ( (i)?,o?,w?,r(b)?,rw?,rd?,x?,d(b)?,dw?,dd? )
※ {PARAM3} = (#){NUM},i{PORT},o{PORT},w{WORK},r(b){RAM},rw{RAM},rd{RAM},x{XRAM},
d(b){DATA},dw{DATA},dd{DATA}, ( (#)?,i?,o?,w?,r(b)?,rw?,rd?,x?,d(b)?,dw?,dd? )
Parameters as a direct value.
- #{NUM} - Immediate value (# is required on {PARAM1}, optional on {PARAM3}. This is not a valid parameter for {PARAM2})
- i{PORT} - Inport value (0-3) (i is required on {PARAM1} and {PARAM3}, optional on {PARAM2})
- (o){PORT} - Outport value (0-3) (o is optional on {PARAM1}, required on {PARAM3})
- w{WORK} - Temporary work value - (0-7)
- x{XRAM} - SPC700 extra ram, 64 bytes.
- r(b){RAM} - SPC700 main ram, 64Kbytes, addressed as byte. (b is optional, implied as byte)
- rw{RAM} - SPC700 main ram, addressed as word (2 bytes)
- rd{RAM} - SPC700 main ram, addressed as Double word (4 bytes)
- d(b){DATA} - Data area of script700 script, addressed as byte (b is optional, implied as byte)
- dw{DATA} - Data area of script700 script, addressed as word (2 bytes)
- dd{DATA} - Data area of script700 script, addressed as double word (4 bytes)
Parameters as an indirect value. Use the c command to load the working direct/indirect values.
- #? - Immediate value.
- i? - Inport value (0-3)
- o? - Outport value (0-3)
- w? - Temporary work value (0-7)
- r(b)? - SPC700 ram byte (0-65535)
- rw? - SPC700 ram word
- rd? - SPC700 double word.
- d(b)? - Script700 data area byte (unknown limit)
- dw? - Script700 data area word
- dd? - Script700 data area double word.
Commands:
- :{LABEL} - Define a label ( such as :001 or :002 ). These are used exclusively for the branch commands.
- w {PARAM3} - Wait for {PARAM3} cycles.
- m {PARAM1} {PARAM2} - Move {PARAM1} to {PARAM2}
- c {PARAM1} {PARAM1} - Load the two {PARAM1} type parameters into a space. This serves as compare for branch operations, and as values for the xx? parameters.
- a {PARAM1} {PARAM2} - Add {PARAM1} to {PARAM2}
- s {PARAM1} {PARAM2} - Subtract {PARAM1} from {PARAM2}
- u {PARAM1} {PARAM2} - Multiply {PARAM1} by {PARAM2}
- d {PARAM1} {PARAM2} - Divide {PARAM1} by {PARAM2}
- n {PARAM1} +,-,*,/,\,%,$,&,|,^,<,>,_,! {PARAM2} - Logical operation between {PARAM1} and {PARAM2}
--- These all branch to {LABEL} if the compare condition is true.
- bra {LABEL} - Uncoditional Branch
- beq {LABEL} - Branch if equal
- bne {LABEL} - Branch if not equal
- bge {LABEL} - Branch if Greater than or equal
- ble {LABEL} - Branch if Less than or equal
- bgt {LABEL} - Branch if Greater than
- blt {LABEL} - Branch if Less than
- bcc {LABEL} - Branch if Carry Clear
- blo {LABEL} - Branch if Low
- bhi {LABEL} - Branch if High
- bcs {LABEL} - Branch if Carry Set
--- Remaining commands.
- nop - No operation - Same as w 1, only takes 1 compiled byte instead of 5.
- e - End script700 execution. (Every script must have this, even if it is an infinite loop)
Append |
Home