6-28 The Development Library
‚KGƒ!',0Op)!
The value used is the value of rn, but rn is then updated with Value of rn + or –
constant
‚KGƒ!',0Ko!
The value used is the value of rn, but rn is then updated with Value of rn + or –
value of rm
‚KGƒ!',0Ko!EDE!Op)!
‚KGƒ!',0Ko!z!Op)!
The value used is the value of rn, but rn is then updated with Value of rn + or –
value of rm shifted left
‚KGƒ!',0Ko!EDK!Op)!
‚KGƒ!',0Ko!9!Op)!
The value used is the value of rn, but rn is then updated with Value of rn + or –
value of rm shifted right
‚KGƒ!',0Ko!BDK!Op)!
‚KGƒ!',0Ko!99!Op)!
The value used is the value of rn, but rn is then updated with Value of rn + or –
value of rm shifted arithmetically right
‚KGƒ!',0Ko!KLK!Op)!
‚KGƒ!',0Ko!999!Op)!
Value of rn + or – value of rm rotated right
Rn is updated with that value
4.3.4 ARMSAT instruction
When using the BKMDB: 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:
0
P_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;
2332 REG C;
2340 REG D;
2348 REG R0;
2356 REG R1;
2364 REG R2;
2372 REG R3;
2380 REG R4;
2388 U32 D0
2392 U32 D1;
2396 U32 P, P4, P4_32; // P4 = 4*P, P4_32 = 4*P-32, use setP() to modify P.
2408 U32 ST;
2412 U32 HST;
2416 U32 carry; // 0 or !0
3420 BOOL dec; // 0->hex or 1->dec
U32 RSTK[NB_RSTK];
U32 RSTK_i; // Index for next push.
REG FIELD[32]; // Field masks.
U32 FIELD_START[32]; // Lowest nibble of the field.
U32 FIELD_LENGTH[32]; // Length of the field.
Therefore, E4K!KH!‚K3!HV3cƒ allows you to read the lower 32 bits of the Saturn register A.
E4K!KH!‚K3!3ƒ!
E4K!KV!‚KH!3ƒ
allows you to read the first 8 nibbles at Saturn address 01008
The following file can be used to declare your Saturn chipset structure.
I•BDM!
O2[8!
4OO2!g38HR!DK<B4!
4OO2!g38HR!DYK6:<!
4OO2!gHc8!D2K6LK6:P!