|
|
@ -62,30 +62,39 @@ Arithmetic and other operations set status flags that can be used for conditiona |
|
|
|
- Negative … Value is negative |
|
|
|
- Negative … Value is negative |
|
|
|
- Overflow … Arithmetic overflow or underflow, buffer underflow, etc. |
|
|
|
- Overflow … Arithmetic overflow or underflow, buffer underflow, etc. |
|
|
|
- Invalid … Invalid arguments for an instruction |
|
|
|
- Invalid … Invalid arguments for an instruction |
|
|
|
- Carry … Arithmetic carry *this is currently unused* |
|
|
|
- Carry … Arithmetic carry; used by extensions (currently unused, planned for the byte/halfword/word versions of the arith module) |
|
|
|
|
|
|
|
- Full … full condition; used by extensions |
|
|
|
|
|
|
|
- Empty … empty condition; used by extensions |
|
|
|
|
|
|
|
- EOF … end of a stream, file, etc; used by extensions |
|
|
|
|
|
|
|
|
|
|
|
### Status tests (conditions) |
|
|
|
### Status tests (conditions) |
|
|
|
|
|
|
|
|
|
|
|
These keywords (among others) are used in conditional branches to specify flag tests: |
|
|
|
These keywords (among others) are used in conditional branches to specify flag tests: |
|
|
|
|
|
|
|
|
|
|
|
- `eq` … Equal, |
|
|
|
- `eq` … Equal |
|
|
|
- `ne` … NotEqual, |
|
|
|
- `ne` … NotEqual |
|
|
|
- `z` … Zero, |
|
|
|
- `z` … Zero |
|
|
|
- `nz` … NotZero, |
|
|
|
- `nz` … NotZero |
|
|
|
- `lt` … Lower, |
|
|
|
- `lt` … Lower |
|
|
|
- `le` … LowerOrEqual, |
|
|
|
- `le` … LowerOrEqual |
|
|
|
- `gt` … Greater, |
|
|
|
- `gt` … Greater |
|
|
|
- `ge` … GreaterOrEqual, |
|
|
|
- `ge` … GreaterOrEqual |
|
|
|
- `pos` … Positive, |
|
|
|
- `pos` … Positive |
|
|
|
- `neg` … Negative, |
|
|
|
- `neg` … Negative |
|
|
|
- `npos` … NonPositive, |
|
|
|
- `npos` … NonPositive |
|
|
|
- `nneg` … NonNegative, |
|
|
|
- `nneg` … NonNegative |
|
|
|
- `c` … Carry, |
|
|
|
- `c` … Carry |
|
|
|
- `nc` … NotCarry, |
|
|
|
- `nc` … NotCarry |
|
|
|
- `val`, `valid`, `ok` … Valid, |
|
|
|
- `val`, `valid`, `ok` … Valid |
|
|
|
- `inval`, `nok` … Invalid, |
|
|
|
- `inval`, `nok` … Invalid |
|
|
|
- `ov` … Overflow, |
|
|
|
- `ov` … Overflow |
|
|
|
- `nov` … NotOverflow, |
|
|
|
- `nov` … NotOverflow |
|
|
|
|
|
|
|
- `f`, `full` … Full |
|
|
|
|
|
|
|
- `nf`, `nfull` … Not full |
|
|
|
|
|
|
|
- `em`, `empty` … Empty |
|
|
|
|
|
|
|
- `nem`, `nempty` … Not empty |
|
|
|
|
|
|
|
- `eof` … EOF |
|
|
|
|
|
|
|
- `neof` … Not EOF |
|
|
|
|
|
|
|
|
|
|
|
# Syntax |
|
|
|
# Syntax |
|
|
|
|
|
|
|
|
|
|
@ -561,6 +570,8 @@ such as animations. |
|
|
|
- They operate over unicode code points, which are a superset of ASCII. |
|
|
|
- They operate over unicode code points, which are a superset of ASCII. |
|
|
|
- The "_r" variants work with raw bytes. Do not combine them, or you may get problems with multi-byte characters. |
|
|
|
- The "_r" variants work with raw bytes. Do not combine them, or you may get problems with multi-byte characters. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
End of stream is reported by the 'eof' status flag when a stream is read or written. |
|
|
|
|
|
|
|
|
|
|
|
You can use these special handles in almost all instructions: |
|
|
|
You can use these special handles in almost all instructions: |
|
|
|
|
|
|
|
|
|
|
|
```lisp |
|
|
|
```lisp |
|
|
|