Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>ibcmNew to Visual Studio Code? Get it now.
ibcm

ibcm

Hanzhi Zhou

|
234 installs
| (1) | Free
Basic support for the IBCM machine language
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

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.

Code Format Requirements

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

  • Syntax highlight

  • Generate code and comments based on ibcm-flavored assembly

  • Code snippets (working in progress)

  • Label mismatch checking

  • Code formatting

Requirements

None

Extension Settings

Working in progress

Known Issues

None

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft