Both sides previous revisionPrevious revision | |
operational_statements [2020/11/16 22:05] – [Display] adminz | operational_statements [2025/01/02 23:22] (current) – jtwine |
---|
The ''Read'' statement is used to read from a memory location and optionally copy the read value into another register. The first form of the ''Read'' statement is the basic read memory operation that stores the result into Register E (''REGE''). This is equivalent to the standard ''READ'' statement in 9LC. | The ''Read'' statement is used to read from a memory location and optionally copy the read value into another register. The first form of the ''Read'' statement is the basic read memory operation that stores the result into Register E (''REGE''). This is equivalent to the standard ''READ'' statement in 9LC. |
| |
The second form is the ''Read Into'' form and is used to perform a read from memory and then copy the read value from ''REGE'' to whatever other register you like. | The second form is the ''Read Into'' form and is used to perform a read from memory and then immediately copy the read value from ''REGE'' to whatever other register you like. |
| |
The syntax of the ''READ'' statement is: ''Read From <address>;'' or ''Read From <address> Into <register>;'' | The syntax of the ''READ'' statement is: ''Read From <address>;'' or ''Read From <address> Into <register>;'' |
The ''ReadStatus'' statement is used to read status values from the UUT's CPU status lines and place that information into Register C (''REGC'') value into another register. The first form of the ''Read'' statement is the basic read memory operation that stores the result into Register E (''REGE''). This is equivalent to the standard ''READ STS'' statement in 9LC. | The ''ReadStatus'' statement is used to read status values from the UUT's CPU status lines and place that information into Register C (''REGC'') value into another register. The first form of the ''Read'' statement is the basic read memory operation that stores the result into Register E (''REGE''). This is equivalent to the standard ''READ STS'' statement in 9LC. |
| |
Like the ''Read'' statement, a second form is supported using the ''Into'' modifier and is perform a read operation and then copy the read value from ''REGC'' to whatever other register you like. | Like the ''Read'' statement, a second form is supported using the ''Into'' modifier and will perform a status read operation and then immediately copy the read value from ''REGC'' to whatever other register you like. |
| |
The syntax of the ''ReadStatus'' statement is: ''ReadStatus;'' or ''ReadStatus Into <register>;'' | The syntax of the ''ReadStatus'' statement is: ''ReadStatus;'' or ''ReadStatus Into <register>;'' |
</code> | </code> |
| |
A warning will be emitted because the value 0x220 exceeds the maximum value of an 8-bit word. | A warning will be emitted because the value 0x220 exceeds the maximum value of an 8-bit word (0xFF or 255). |
| |
| |
| |
<code c> | <code c> |
| Alias ThisIsAnAlias = Reg8; |
| |
WriteEx @ 0x1000 = 1 2 4 0x10 0x20 0x40 ThisIsAnAlias Reg4; | WriteEx @ 0x1000 = 1 2 4 0x10 0x20 0x40 ThisIsAnAlias Reg4; |
</code> | </code> |
Write @ 1004 = 0x20; | Write @ 1004 = 0x20; |
Write @ 1005 = 0x40; | Write @ 1005 = 0x40; |
Write @ 1006 = xx; // xx Would Be Replaced With The Value Of ThisIsAnAlias | Write @ 1006 = Reg8 // The Value Of ThisIsAnAlias |
Write @ 1007 = Reg4; | Write @ 1007 = Reg4; |
</code> | </code> |
| |
| |
| |
This is equivalent to the ''RAM LONG'' statement in 9LC. | This is equivalent to the ''RAM LONG'' statement in 9LC. |
| |
The syntax of the ''LongRAMTest'' statement is: ''LongRAMTest From <start> To <end>;'' The address range can be omitted if RAM areas are present in the address map. | The syntax of the ''LongRAMTest'' statement is: ''LongRAMTest From <start> To <end>;'' The address range can be omitted if RAM areas have been configured in the address map. |
| |
<code c> | <code c> |
This is equivalent to the ''RAM SHORT'' statement in 9LC. | This is equivalent to the ''RAM SHORT'' statement in 9LC. |
| |
The syntax of the ''ShortRAMTest'' statement is: ''ShortRAMTestFrom <start> To <end>;'' The address range can be omitted if RAM areas are present in the address map. | The syntax of the ''ShortRAMTest'' statement is: ''ShortRAMTestFrom <start> To <end>;'' The address range can be omitted if RAM areas have been configured in the address map. |
| |
<code c> | <code c> |
This is equivalent to the ''ROM TEST'' statement in 9LC. | This is equivalent to the ''ROM TEST'' statement in 9LC. |
| |
The syntax of the ''ROMTest'' statement is: ''ROMTest From <start> To <end> CSum <checksum>;'' The address and range can be omitted if ROM areas are present in the address map. The checksum can also be omitted to inhibit the checksum compare. | The syntax of the ''ROMTest'' statement is: ''ROMTest From <start> To <end> CSum <checksum>;'' The address and range can be omitted if ROM areas have been configured in the address map. The checksum can also be omitted to inhibit the checksum verification. |
| |
<code c> | <code c> |
This is equivalent to the ''IO TEST'' statement in 9LC. | This is equivalent to the ''IO TEST'' statement in 9LC. |
| |
The syntax of the ''IOTest'' statement is: ''IOTestFrom <start> To <end> Bits <bitmask>;'' The address and range can be omitted if I/O areas are present in the address map. | The syntax of the ''IOTest'' statement is: ''IOTestFrom <start> To <end> Bits <bitmask>;'' The address and range can be omitted if I/O areas have been configured in the address map. |
| |
<code c> | <code c> |
| |
==== Walk ==== | ==== Walk ==== |
The ''Walk'' statement performs a sequence of write operations at the specific location, but instead of incrementing a value, it rotates the bits of the value. first write is the specified value and then the bits in the value are rotated once and the write is repeated. This repeats until all bits have been rotated through all possible positions. | The ''Walk'' statement performs a sequence of write operations at the specific location, but instead of incrementing a value, it rotates the bits of the value. The first write is the specified value and then the bits in the value are rotated once and the write is repeated. This repeats until all bits have been rotated through all possible positions. |
| |
This is equivalent to the ''WALK'' statement in 9LC. | This is equivalent to the ''WALK'' statement in 9LC. |