Appendix B — Project Configuration Reference
Debug80 stores project configuration in the project folder. Book 1 uses the generated file, but reading the main fields helps when you add targets or inspect a copied project.
File Locations
Debug80 can read project configuration from:
debug80.json
.vscode/debug80.json
.debug80.json
package.json under a debug80 key
A VS Code launch configuration can also name a specific project file with projectConfig.
Top-Level Shape
A generated TEC-1G project uses this general shape:
{
"projectVersion": 2,
"projectPlatform": "tec1g",
"defaultProfile": "mon3",
"defaultTarget": "main",
"profiles": {},
"targets": {}
}
projectPlatform names the default platform family. defaultProfile names the profile used unless a target says otherwise. defaultTarget is the target Debug80 can choose when no remembered selection exists.
Launch Overrides
Most users can launch through the Debug80 panel without a hand-written VS Code launch configuration. When a project needs one, launch options can override the project defaults for that session.
Use projectConfig when the configuration file is not in one of the standard locations. Use target when a launch configuration should always start a specific target, even if the Project section currently selects another one.
Debug80 can also control where it opens files:
{
"sourceColumn": 1,
"panelColumn": 2,
"openMainSourceOnLaunch": true,
"openRomSourcesOnLaunch": true
}
sourceColumn controls source files opened by Debug80. panelColumn controls the platform panel. The two automatic-open settings are useful when you want a repeatable screen layout for teaching, screenshots or demonstrations.
Profiles
A profile records platform setup shared by targets. The TEC-1G / MON-3 profile identifies the platform and bundled ROM assets:
"profiles": {
"mon3": {
"platform": "tec1g",
"description": "TEC-1G monitor-first profile with user code at 0x4000.",
"bundledAssets": {
"romHex": {
"bundleId": "tec1g/mon3/v1",
"path": "mon3.bin",
"destination": "roms/tec1g/mon3/mon3.bin"
},
"listing": {
"bundleId": "tec1g/mon3/v1",
"path": "mon3.lst",
"destination": "roms/tec1g/mon3/mon3.lst"
}
}
}
}
If the destination file exists in the workspace, Debug80 uses it. If it is absent, Debug80 can use the bundled copy from the extension.
Targets
A target is a named runnable program:
"targets": {
"main": {
"sourceFile": "src/main.asm",
"outputDir": "build",
"artifactBase": "main",
"platform": "tec1g",
"profile": "mon3"
}
}
sourceFile is the file AZM assembles. outputDir receives generated artifacts. artifactBase becomes the file name base for files such as .hex, .lst and source-map output.
TEC-1G Platform Block
Generated TEC-1G targets include a tec1g block with memory regions, application start, entry point and ROM listing paths. Book 1 relies on the generated values.
The important user-level facts are:
- TEC-1G / MON-3 user code starts at
0x4000. - The ROM image and listing come from the bundled MON-3 profile unless you provide workspace copies.
sourceRootshelps Debug80 resolve source paths from generated maps and ROM listings.
AZM Options
Debug80 uses AZM for the current assembly workflow. Targets may carry an azm object for register-care options and related launch behaviour. Leave generated options alone until you are deliberately configuring register-care.