This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
features [2020/02/24 17:40] jtwine [Debugging Steps] |
features [2020/02/24 18:30] jtwine [Sequence Writing Shortcut] |
||
---|---|---|---|
Line 137: | Line 137: | ||
Read From 0x3200 Into Control1Bits; | Read From 0x3200 Into Control1Bits; | ||
Read From 0x3201 Into Control2Bits; | Read From 0x3201 Into Control2Bits; | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== Sequence Reading Shortcut ==== | ||
+ | If you need to read a small block of contiguous memory into a set of registers, you normally have to create a block of ''Read'' and register copy statements. 10LC has a ''ReadEx'' statement that provides a shortcut way of doing this. This statement allows you to set a starting place in memory followed by a list of registers. 10LC will automatically //unroll// this ''ReadEx'' statement into multiple ''Read'' and register copy statements (essentially ''Read Into'' statements), automatically incrementing the address as it goes. Aliases and Registers can all be used for the target registers. For example: | ||
+ | |||
+ | <code c> | ||
+ | ReadEx From 0x2000 Into RegA RegB Control2Bits Reg1; | ||
+ | </code> | ||
+ | |||
+ | The above code will compile into the equivalent of the following discrete ''Read Into'' statements: | ||
+ | |||
+ | <code c> | ||
+ | Read From 0x2000 Into RegA; | ||
+ | Read From 0x2001 Into RegB; | ||
+ | Read From 0x2002 Into Reg2; | ||
+ | Read From 0x2003 Into Reg1; | ||
</code> | </code> | ||