User Tools

Site Tools


documentation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
documentation [2020/02/15 10:50]
adminz [SetupPod]
documentation [2020/09/21 21:44] (current)
adminz [10LC Statements]
Line 1: Line 1:
 ====== Documentation ====== ====== Documentation ======
-This page covers the statements/​operations ​implemented in 10LC as well as the syntax for their usage.  ​+This page covers the statements implemented in 10LC as well as the syntax for their usage.  ​
  
 ===== 10LC Statements ===== ===== 10LC Statements =====
Line 20: Line 20:
 Are all the same and will compile identically. Are all the same and will compile identically.
  
-The only exception is a Label, which does not end with a semicolon and no space is allowed between the colon and the label name:+The only exception is a Label, ​**which does not end with a semicolon and no space is allowed between the colon and the label name**:
  
 <code c> <code c>
Line 31: Line 31:
 Additionally,​ delimiters in statements may not be omitted. ​ For example, the 9LC WRITE statement is ''​WRITE @ 1234 = AB''​ and could be shortened to ''​WRITE 1234 = AB''​. ​ 10LC's statement syntax is more rigid. ​ The WRITE statement in 10LC is ''​WRITE @ 0x100 = 0x22;''​ and cannot be shortened, nor can any parts of it be omitted. Additionally,​ delimiters in statements may not be omitted. ​ For example, the 9LC WRITE statement is ''​WRITE @ 1234 = AB''​ and could be shortened to ''​WRITE 1234 = AB''​. ​ 10LC's statement syntax is more rigid. ​ The WRITE statement in 10LC is ''​WRITE @ 0x100 = 0x22;''​ and cannot be shortened, nor can any parts of it be omitted.
  
-----+From here, you can view the [[Setup Statements]],​ [[Operational Statements]],​ [[If Expressions]] or the currently supported [[Intrinsic Statements]].
  
-===== Setup Statements ===== +===== Other Documentation ​and Help ===== 
-First we start with the statements that are used for configuring the unit and the compile environment. +A listing ​of compiler [[Errors]] and [[Warnings]] is available, as well as a [[FAQ]].
- +
-==== SetupPod ​==== +
-The ''​SetupPod''​ statement configures both the 9010A and the compile environment,​ and sets the default values for some of the other ''​Setup*''​ statements like ''​SetupBusTestAddress'',​ ''​SetupRunUUTAddress''​ and the names of Forcing Lines. ​ This is equivalent to the ''​POD''​ setup parameter in 9LC. +
- +
-Unlike with 9LC, information on the standard Pods is stored within the compiler ​and no additional external files are needed. ​ If you use the SetupPod statement, it must be the first statement in a source file.   +
- +
-The following Pods are supported directly by 10LC: +
-| ''​6502''​ | ''​6800''​ | ''​6802''​ | ''​6809''​ | ''​6809E''​ |  +
-| ''​8041''​ | ''​8048''​ | ''​8080''​ | ''​8085''​ | ''​8086''​ |  +
-| ''​8086M''​ | ''​8088''​ |''​8088M''​ | ''​9900''​ | ''​68000''​ |  +
-| ''​Z80''​ | ''​Z8000''​ |  +
- +
-The syntax of the statement is as follows: ''​SetupPod <​PodName>;''​ +
- +
-<code c> +
-SetupPod Z80 +
-</​code>​ +
- +
-If you need to create your own Pod configuration/​environment,​ you can use the ''​Setup*''​ statements directly. +
- +
- +
-==== SetupTraps ==== +
-This statement enables or disables traps associated with UUT errors. ​ This statement can be specified multiple times, and you can specify multiple traps within a single statement. ​ This is equivalent to the ''​TRAP''​ setup parameter in 9LC. +
- +
-The following Trap names are available:​ +
-  * ''​BadPowerSupply''​ +
-  * ''​IllegalAddress''​ +
-  * ''​ActiveInterrupt''​ +
-  * ''​ActiveForceLine''​ +
-  * ''​ControlError''​ +
-  * ''​AddressError''​ +
-  * ''​DataError''​ +
- +
-The syntax of the statement is as follows: ''​SetupTraps <​TrapName> ​[<​TrapName>​...Yes|No;''​ +
- +
-<code c> +
-SetupTraps DataError No; +
-SetupTraps ActiveInterrupt DataError No; +
-SetupTraps BadPowerSupply ActiveInterrupt ActiveForceLine Yes; +
-</​code>​ +
- +
- +
-==== SetupEnableFL ==== +
-This statement enables or disables Pod-specific forcing lines associated with a CPU.  You can specify forcing lines but their bit value, or by their string identifiers. ​ Like with the ''​SetupTraps''​ statement, this statement can be specified multiple times, ​and you can specify multiple forcing lines within a single statement. ​ Forcing Lines are numbered 0-7 for a total of 8 possible lines. ​ This is equivalent to the ''​ENABLE''​ statement in 9LC. +
- +
-The following Forcing Line names are supported directly by 10LC (**but may not apply to the currently configured Pod!**) +
-  * ''​brack''​ +
-  * ''​busreq''​ +
-  * ''​dbe''​ +
-  * ''​dma''​ +
-  * ''​halt''​ +
-  * ''​hold''​ +
-  * ''​intr''​ +
-  * ''​mr''​ +
-  * ''​ready''​ +
-  * ''​rqgt0''​ +
-  * ''​rqgt1''​ +
-  * ''​tsc''​ +
-  * ''​wait''​ +
- +
-The syntax of the statement is as follows: ''​SetupEnableFL <​FLName|FLNumber> ​[<​FLName|FLNumber>​...Yes|No;''​ +
- +
-<code c> +
-SetupEnableFL 1 Yes; +
-SetupEnableFL 2 No; +
-SetupEnableFL ​ BrAck  Ready Yes; +
-</​code>​ +
- +
-If you have a Pod configured, the Forcing Line name or number will be checked against the configured Pod, and if that Pod does not have a Forcing Line for a given name/​number,​ an compile error will be thrown. ​  +
- +
-If you do not have a Pod configured, you can use just the Forcing Line number, and with no Pod configured, the  number will not be checked. ​ The names/​numbers of forcing lines are shown on the front of the Pod.  Note that the names may differ slightly, (e.g. ''​br/​ack''​ on the Pod is ''​brack''​ in 10LC) so you will have to find the corresponding name in the list above. +
-  +
-==== SetupBeep ==== +
-This statement sets whether the 9010A unit emits a beep on an error transition. ​ This is equivalent to the ''​BEEP''​ setup parameter in 9LC. +
- +
-<code c> +
-SetupBeep Yes; +
-</​code>​ +
- +
-==== SetupInteractiveErrors ==== +
-This statement sets whether the 9010A pauses executiondisplays an error message, and asks the user if they want to loop the last operation whenever an error is encountered. ​ This is equivalent to the ''​EXERCISE ERRORS''​ setup parameter in 9LC. +
- +
-<code c> +
-SetupInteractiveErrors Yes; +
-</​code>​ +
- +
-==== SetupBusTestAddress ==== +
-This statement configures the default address used when a Bus Test is performed. ​ This value defaults to ''​0x0000''​ but may be changed when a Pod is specified via the ''​SetupPod''​ statement. ​ This is equivalent to the ''​BUS TEST''​ setup parameter in 9LC. +
- +
-<code c> +
-SetupBusTestAddress 0xFFF0; +
-</​code>​ +
- +
-==== SetupRunUUTAddress ==== +
-This statement configures the default address used when the Run UUT operation is performed. ​ This value defaults to ''​0x0000''​ but may be changed when a Pod is specified via the ''​SetupPod''​ statement. ​ This is equivalent to the ''​RUN UUT''​ setup parameter in 9LC. +
- +
-<code c> +
-SetupRunUUTAddress 0xFFFE; +
-</​code>​ +
- +
-==== SetupXOn ==== +
-This statement configures the serial **XOn** character used to pause transmission of serial data.  This is equivalent to the ''​STALL''​ setup parameter in 9LC and it defaults to **<​CONTROL+S>​** (0x13). +
- +
-<code c> +
-SetupXon 0x70; +
-</​code>​ +
- +
-==== SetupXOff ==== +
-This statement configures the serial **XOff** character used to resume transmission of paused serial data.  This is equivalent to the ''​UNSTALL''​ setup parameter in 9LC and it defaults to **<​CONTROL+Q>​** (0x11). +
- +
-<code c> +
-SetupXOff 0x72; +
-</​code>​ +
- +
-==== SetupLineSize ==== +
-This configures the serial line length used when transmitting serial data.  This is an important setting when sending/​receiving hex data from the 9010A unit as longer lines lessen the effectiveness of the per-line checksum. +
- +
-The 10LC compiler also uses this setting to determine the length of hex lines when it generates its output hex file.  It has a range of 10-255. ​ If not specified, the default value is 79.  This is equivalent to the ''​LINESIZE''​ setup parameter in 9LC. +
- +
-<code c> +
-SetupLinesize 70; +
-</​code>​ +
- +
- +
-==== SetupPodTimeout ==== +
-This configures the amount of time the 9010A should wait for a connected Pod to respond to a requested operation.  +
- As of right now, there is no description for how long a single count is.serial line length used when transmitting serial data.  This is an important setting when sending/​receiving hex data from the 9010A unit as longer lines lessen the effectiveness of the per-line checksum. +
- +
-It has a range of 6-60000. ​ If not specified, the default value is 200.  This is equivalent to the ''​TIMEOUT''​ setup parameter in 9LC. +
- +
-<code c> +
-SetupPodtimeout 100; +
-</​code>​ +
- +
-==== SetupNewline ==== +
-This configures both the character combination used to represent newlines on the serial interface ​as well as a configurable delay time between successive lines being transmitted The value used with this statement is a 32-bit hexadecimal value. +
- +
-The first single-character parameter represents a delay count between transmitting successive lines. ​ Each count is ~6ms per count on firmware version 2C or later, or ~2.4ms per count on versions earlier than 2C.  The second six-character parameter is the hexadecimal character combination that should be sent to indicate a newline. ​ A zero value indicates no character is to be sent.  If not specified, the default value is 0x00, 0x000D0A (0x00000D0A). ​ This is equivalent to the ''​NEWLINE''​ setup parameter in 9LC. +
- +
-<code c> +
-SetupNewline Delay 0x20 Chars 0x000D0A; +
-</​code>​ +
- +
-==== SetupMaskFLMayBeEnabled ==== +
-This setting is not directly exposed by 9LC and configures the bitmask of Forcing Lines that may be referred to by the ''​SetupEnableFL''​ statement. ​ Normally, the values for these lines come from loaded Pod information (see ''​SetupPod''​) but can be specified manually for situations where a support Pod entry does not yet exist. ​  +
- +
-The are up to 8 supported Forcing Lines but most pods generally only use a few of the available bits.  The specified mask indicates which Forcing Lines are supported by the connected Pod and thus are valid to be enabled or disabled by the ''​SetupEnableFL''​ statement.  +
- +
-<code c> +
-SetupMaskFLMayBeEnabled 0x07    // Enable Forcing Lines 1, 2 and 3. +
-</​code>​ +
- +
-==== SetupForcingLineNames ==== +
-This is another setting that is not directly exposed by 9LC and configures the names of Forcing Lines that may be referred to by the ''​SetupEnableFL''​ statement. ​ Normally, the names for these lines come from loaded Pod information (see ''​SetupPod''​) but can be specified manually for situations where a support Pod entry does not yet exist. ​  +
- +
-The are up to 8 supported Forcing Lines but most pods generally only use a few of the available bits.  The 8 names correspond, in order, to the 8 supported Forcing Lines. ​ Each Forcing Line name has a limit of 6 characters. +
- +
-<code c> +
-SetupForcingLineNames ""​ ""​ ""​ ""​ "​BusReq"​ "​Wait"​ ""​ "" ​   // Set Names For Enable Forcing Lines 4 and 5. +
-</​code>​ +
- +
-==== SetupMemMap ==== +
-This statement allows you do configure the expected memory map of the UUT that is going to be used with your code. There are three kinds of entries that can be specified for the memory map: ''​RAM'',​ ''​ROM''​ and ''​IO''​. ​ The ROM and IO versions of the statement require an additional parameter that specifies the expected ROM signature or the bits used in the I/O.  +
- +
-This is equivalent to the ''​ADDRESS SPACE''​ setup area and its descriptors in 9LC. +
- +
-<code c> +
-SetupMemMap RAM From 0x0000 To 0x0FFF;  +
-SetupMemMap ROM From 0x1000 To 0x18FF SIG  0xAA55;  +
-SetupMemMap ROM From 0x1900 To 0x1FFF SIG  0x1234;  +
-SetupMemMap IO  From 0x2000 To 0x2001 MASK 0x000000FF;  +
-SetupMemMap IO  From 0x2002 To 0x2003 MASK 0x7F;  +
-</​code>​ +
- +
----- +
- +
-===== Operational Statements ===== +
-Now 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. +
- +
-==== Display ==== +
-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>​%%"​%%;''​ +
- +
-<code c> +
-Display "# - Hello World - "; +
-Display "Place you name, $$ I got";​ +
-Display "Are you OK?​A";​ +
-</​code>​+
  
  
  
documentation.1581785452.txt.gz · Last modified: 2020/02/15 10:50 by adminz