This is an old revision of the document!
Here we cover the statements that are used for performing operations within unit and the UUT. Basically these are the 10LC equivalents to the keypresses you would use when manually operating the 9010A interactively.
The Display
statement is the most basic operational statement on the 9010A. It is used to provide audio and visual feedback on the 9010A's display and is also used to receive user input.
The following characters are supported for the Display
statement:
<space> | A-Z | 0-9 |
_ | ; | @ |
= | < | > |
, | . | ? |
# | + | - |
' | “ | % |
* | / | \ |
$ |
(Lowercase characters are allowed by 10LC but will be converted to uppercase.)
The following characters have special functions in a Display
statement:
# | Causes the 9010A to beep |
$ | When followed by a register identifier causes the value of the register to be displayed in hexadecimal |
@ | When followed by a register identifier causes the value of the register to be displayed in decimal |
/ | When followed by a register identifier causes the 9010A to pause and await user input of a hexadecimal value and store it in the specified register |
\ | When followed by a register identifier causes the 9010A to pause and await user input of a decimal value and store it in the specified register |
? | When followed by a register identifier causes the 9010A to pause, display a question mark and await the user pressing either the <Enter/Yes> or the <Clear/No> keys and will place 1 or a 0 into the specified register corresponding to which key was pressed |
% | When followed by a register identifier causes the 9010A to enable or disable asynchronous input and if enabled will store received input into the specified register |
+ | When the first character in the string, it causes the remaining string to be appended to any data currently being displayed |
To display a special character normally, double it.
The syntax of the statement is: Display "<string>";
Display "# - Hello World - "; Display "Place you name, $$ I got"; Display "Are you OK?A";
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 syntax of the READ
statement is: Read From <address>;
or Read From <address> Into <register>;
Read From 0x200; Read From 0x200 Into RegB; Read From 0x201 Into MemLocation1; // MemLocation1 Is An Alias For REG4
Note that if you use the Read Into
form and specify Register E as the destination, the copy portion will be optimized away and a warning will be emitted. Also, the Into
functionality is accomplished by having the compiler insert a register to register copy immediately after the read operation completes. For example,
Read From 0x200 Into RegB;
Compiles into the equivalent of:
Read From 0x200; RegB = RegE;
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.
The syntax of the ReadStatus
statement is: ReadStatus;
or ReadStatus Into <register>;
ReadStatus; ReadStatus Into RegB; ReadStatus Into MemLocation1; // MemLocation1 Is An Alias For REG4
Note that if you use the ReadStatus Into
form and specify Register C as the destination, the copy portion will be optimized away and a warning will be emitted.
The Write
statement is used to write data to a memory location. This is equivalent to the standard WRITE
statement in 9LC.
The syntax of the Write
statement is: Write @ <address> = <value>;
.
Write @ 0x100 = 0x220; Write @ 1024 = Value2;
The WriteCtrl
statement is used to set control lines to a specific value. This is equivalent to the standard WRITE CTL
statement in 9LC.
The syntax of the WriteCtrl
statement is: WriteCtrl <value>;
WriteCtrl 11000100; WriteCtrl 0x3F; WriteCtrl Reg5;
The Learn
statement is used to cause the 9010A to start the Learn operation on an address range of the UUT. This is equivalent to the LEARN
statement in 9LC.
The syntax of the Learn
statement is: Learn
or Learn From <address> To <address>;
.
Learn; Learn From Value To Value2; Learn From 4096 To 0x1FFF;
If you use the default version of the Learn
statement, the default learn range will be the address range of the specified Pod (see SetupPod) or the Pod that is connected at runtime.
The AutoTest
statement performs a sequence of tests on the UUT. If your 9010A's firmware version is less than 2C, the test sequence is:
But if the version is 2C or later, the sequence is:
This is equivalent to the AUTO TEST
statement in 9LC.
The syntax of the AutoTest
statement is: AutoTest;
AutoTest;
The BusTest
statement performs the Bus Test on the UUT, using the address indicated by the specified Pod (see SetupPod) or the Pod that is connected at runtime. This address is also specified by the SetupBusTestAddress statement:
This is equivalent to the BUS TEST
statement in 9LC.
The syntax of the BusTest
statement is: BusTest;
BusTest;
The LongRAMTest
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The ShortRAMTest
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The ROMTest
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The IOTest
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The Ramp
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The Walk
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The ToggleAddress
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The ToggleData
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The ToggleCtrl
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The Stop
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The RunUUT
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
Registers can be modified values via standard assignment statements, or via unary operators.
The Template
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;
The Template
statement is…
This is equivalent to the TEMP
statement in 9LC.
The syntax of the Template
statement is: Template;
Template;