VS Code - IBCM
This extension provides basic syntax highlight and snippet for the Itty-Bitty Computing Machine (IBCM)
How to use
Type ibcm
to generate a heading for your ibcm file
Type dw
to define variables. Your labels can be used to generate future instructions.
You can use the menu to format your code. Your code will be aligned to the heading or the first line of non-empty code
If your line labels are incorrect, you can use Ctrl + Shift + P
to open the command palette and type fixLocn
to fix you line labels.
For the extension to work properly, each line of your IBCM code must have 6 columns, corresponding to IBCM opcode, 3-digit hex line number, label, opcode, address label, and comments. If one column is empty, please use -
as the placeholder. Note that the first two columns must be present! The following regex is used to match each IBCM line.
^([0-9a-fA-F]{4})[ ]+([0-9a-fA-F]{1,3})[ ]+(-|[a-zA-Z0-9_]+)[ ]+(-|[a-zA-Z]{1,7})[ ]+(-|[a-zA-Z0-9_]+)[ ]+(.*)$
The label and address are essential for autocompletion and diagnostics. When you type load.a
, the extension will find a label called a, if it exists, and get its line number to fill in the address for you. The linter checks whether the line number of the label referred by your address column match the address specified by your opcode.
For example, in the following code snippet, the first jump command is C005
, which refers to memory location 005
. However, the line at 005
does not have a label. The linter will detect this kind of mistake ahd throw a warning.
Features
Requirements
None
Extension Settings
Working in progress
Known Issues
None