SpectNetIDE has several tool windows that provide a prompt to enter commands. Such windows are ZX Spectrum Memory, Z80 Disassembly, and Watch Memory. Though each of them has different command sets that slightly overlap, they share a common syntax. Here, you can find an overview of that syntax.
Each command has a name, and zero, one or more arguments. Command names are one or two characters, you can use both lowercase and uppercase letters. Commands may use literals, which can be hexadecimal numbers, decimal numbers or identifiers.
Hexadecimal numbers must use the 0 to 9 digits, or letters from
f. If a hexadecimal number would start with a letter, you should add a
0 prefix so that the parser consider it as a number and not as an identifier.
Decimal numbers should start with a colon (
:) and followed by digits.
Identifiers should start with one a letter or an underscore (
_) and may continue with digits, letters, or underscore characters.
Here are a few examples of literals:
1234 (hexadecimal number!) 0FA12 (hexadecimal number) FA12 (identifier: it starts with a letter!) :123 (decimal number) MySymbol (identifier)
In the sections providing detailed command reference, you will meet these elements:
- number: hexadecimal or decimal number.
- identifier: an identifier, as specified earlier.
- literal: a hexadecimal number, a decimal number, or an identifier.
- text: a text that contains arbitrary characters, including spaces, punctuations, and so on.
- [optional]: the argument is optional.
When executing a command, identifiers are translated into addresses. During the resolution process, the command parsing engine resolves identifiers in these steps:
- Checks the output of the last compilation. If the identifier is found, its value is taken from the Assembler’s symbol table.
- Checks the labels and symbols in the user annotations (by default stored in the Annotations.disann file). If the identifier is found, its value is taken from the symbol table of the annotation.
- Checks the labels and symbols in the current ROM’s annotations. If the identifier is found, its value is taken from the symbol table of the ROM annotation.
- The identifier cannot be resolved, the command parsing engine signs an error.