In all cases, Cte must be a decimal value or an expression that can be evaluated immediately. A_mode can be:
Form | Description |
[Rn | Value of rn + or - constant |
[Rn | Value of rn + or – value of rm |
[Rn | Value of rn + or – value of rm shifted left |
[Rn |
|
[Rn | Value of rn + or – value of rm shifted right |
[Rn |
|
[Rn | Value of rn + or – value of rm shifted arithmetically right |
[Rn |
|
[Rn | Value of rn + or – value of rm rotated right |
[Rn |
|
[Rn | Value of rn + or – constant |
| Rn is updated with that value |
[Rn | Value of rn + or – value of rm |
| Rn is updated with that value |
[Rn | Value of rn + or – value of rm shifted left |
[Rn | Rn is updated with that value |
[Rn | Value of rn + or – value of rm shifted right |
[Rn | Rn is updated with that value |
[Rn | Value of rn + or – value of rm shifted arithmetically right |
[Rn | Rn is updated with that value |
[Rn | Value of rn + or – value of rm rotated right |
[Rn | Rn is updated with that value |
[Rn] | The value used is the value of rn, but rn is then updated with Value of rn + or – |
| constant |
[Rn] | The value used is the value of rn, but rn is then updated with Value of rn + or – |
| value of rm |
[Rn] | The value used is the value of rn, but rn is then updated with Value of rn + or – |
[Rn] | value of rm shifted left |
[Rn] | The value used is the value of rn, but rn is then updated with Value of rn + or – |
[Rn] | value of rm shifted right |
[Rn] | The value used is the value of rn, but rn is then updated with Value of rn + or – |
[Rn] | value of rm shifted arithmetically right |
[Rn] | Value of rn + or – value of rm rotated right |
[Rn] | Rn is updated with that value |
ARMSAT instruction
When using the ARMSAT instruction, the Saturn pc is in register r0 and the address chipset structure that contains the state of the Saturn CPU is in r1.
That structure has the following elements at the following offsets:
Offset Element
0P_U32 read_map[256+1]; read_map[x] points on the 2Kb of Saturn address space at Saturn address x<<12
1028 | P_U32 write_map[256+1]; read_map[x] points on the 2Kb of Saturn address space |
| at Saturn address x<<12 for write purpose (write_map[x]=0 if x points on some non |
| readable memory) |
2056 | enum ModulePriority top_map[256+1]; // Type of block on top, to know if new |
| configured block takes over |
2316 | REG A; |
2324 | REG B; |
The Development Library