Apple II Pack
This is a set of extensions that are useful for those interested in cross developing for retro computers, especially the Apple II. They can also be helpful for archivists, or anyone just interested in old software. The extensions in the pack are not interdependent, i.e., you can install them separately if you prefer.
Integer BASIC, and
Merlin 6502 provide complete language server support for the respective Apple II languages.
Pascal Language Basics will highlight a UCSD Pascal file. You may also like to check out
Pascal, which provides additional services, but may require some configuring.
Disk Image Notebook provides a convenient interface for browsing a disk image. If disk images are produced as part of a build process, this can be used to inspect the results without ever leaving the editor. It can also be used as a convenient way to load files from a disk image into the editor.
Disk Image Notebook requires an installation of a2kit. If you install
cargo everything should work out of the box. If you download an executable take care to put it where the shell can find it.
Some of the language extensions also use
a2kit, but can perform most of their services without it.
Insert Unicode is useful for inserting control characters directly into your BASIC code.
AppleScript is useful if you would like to script the Virtual II emulator.
PowerShell is useful for deploying files to a disk image within two clicks, assuming you develop a script for this. Typically the script runs some command line tool (e.g.,
a2kit, see above) in a subprocess.
File Extension Collisions
If you use
.bas for all BASIC dialects, you will likely have problems when more than one BASIC dialect is enabled at the same time. The following strategies can be used to mitigate this issue:
.abas for Applesoft and
.ibas for Integer. The drawback is other software will not recognize the files as BASIC (e.g., Github will display wrong statistics about your project).
- Use VS Code file associations to strongly associate
.bas with the dialect of your choice. This is effective if you are predominantly using one dialect.
- Disable the extension that handles the dialect you are not using during a given campaign.
As of this writing, the language mode button is not effective for switching dialects. The problem is switching language modes does not cause existing diagnostics to be removed.