@jhlagado/azm 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -70
- package/dist/{src → legacy-root-azm/src}/formats/index.d.ts +1 -1
- package/dist/{src → legacy-root-azm/src}/formats/index.js +1 -1
- package/dist/{src → legacy-root-azm/src}/formats/types.d.ts +67 -7
- package/dist/{src → legacy-root-azm/src}/formats/writeHex.d.ts +0 -1
- package/dist/{src → legacy-root-azm/src}/formats/writeHex.js +0 -1
- package/dist/{src → legacy-root-azm/src}/pipeline.d.ts +3 -5
- package/dist/legacy-root-azm/src/z80/effects.d.ts +3 -0
- package/dist/legacy-root-azm/src/z80/effects.js +516 -0
- package/dist/legacy-root-azm/src/z80/encode.d.ts +10 -0
- package/dist/legacy-root-azm/src/z80/encode.js +412 -0
- package/dist/src/api-compile.d.ts +49 -8
- package/dist/src/api-compile.js +313 -3
- package/dist/src/api-tooling.d.ts +7 -25
- package/dist/src/api-tooling.js +3 -21
- package/dist/src/assembly/address-planning.d.ts +19 -0
- package/dist/src/assembly/address-planning.js +268 -0
- package/dist/src/assembly/assemble-program.d.ts +13 -0
- package/dist/src/assembly/assemble-program.js +34 -0
- package/dist/src/assembly/fixup-emission.d.ts +10 -0
- package/dist/src/assembly/fixup-emission.js +247 -0
- package/dist/src/assembly/placement.d.ts +26 -0
- package/dist/src/assembly/placement.js +79 -0
- package/dist/src/assembly/program-emission.d.ts +13 -0
- package/dist/src/assembly/program-emission.js +268 -0
- package/dist/src/cli/parse-args.d.ts +29 -0
- package/dist/src/cli/parse-args.js +372 -0
- package/dist/src/cli/run.d.ts +2 -0
- package/dist/src/cli/run.js +35 -0
- package/dist/src/cli/write-artifacts.d.ts +21 -0
- package/dist/src/cli/write-artifacts.js +175 -0
- package/dist/src/cli.d.ts +1 -30
- package/dist/src/cli.js +20 -524
- package/dist/src/core/compile-artifacts.d.ts +26 -0
- package/dist/src/core/compile-artifacts.js +17 -0
- package/dist/src/core/compile.d.ts +26 -0
- package/dist/src/core/compile.js +164 -0
- package/dist/src/diagnostics/format.d.ts +4 -0
- package/dist/src/diagnostics/format.js +9 -0
- package/dist/src/expansion/op-expansion.d.ts +96 -0
- package/dist/src/expansion/op-expansion.js +913 -0
- package/dist/src/index.d.ts +14 -3
- package/dist/src/index.js +7 -2
- package/dist/src/model/diagnostic.d.ts +50 -0
- package/dist/src/model/diagnostic.js +29 -0
- package/dist/src/model/expression.d.ts +51 -0
- package/dist/src/model/expression.js +1 -0
- package/dist/src/model/fixup.d.ts +18 -0
- package/dist/src/model/fixup.js +1 -0
- package/dist/src/model/source-item.d.ts +87 -0
- package/dist/src/model/source-item.js +1 -0
- package/dist/src/model/symbol.d.ts +1 -0
- package/dist/src/model/symbol.js +1 -0
- package/dist/src/node/source-host.d.ts +19 -0
- package/dist/src/node/source-host.js +146 -0
- package/dist/src/outputs/hex.d.ts +1 -0
- package/dist/src/outputs/hex.js +75 -0
- package/dist/src/outputs/index.d.ts +3 -0
- package/dist/src/outputs/index.js +13 -0
- package/dist/src/outputs/range.d.ts +3 -0
- package/dist/src/outputs/range.js +31 -0
- package/dist/src/outputs/types.d.ts +182 -0
- package/dist/src/outputs/types.js +1 -0
- package/dist/src/outputs/write-asm80.d.ts +7 -0
- package/dist/src/outputs/write-asm80.js +666 -0
- package/dist/src/outputs/write-bin.d.ts +2 -0
- package/dist/src/outputs/write-bin.js +27 -0
- package/dist/src/outputs/write-d8.d.ts +2 -0
- package/dist/src/outputs/write-d8.js +257 -0
- package/dist/src/outputs/write-hex.d.ts +2 -0
- package/dist/src/outputs/write-hex.js +53 -0
- package/dist/src/outputs/write-listing.d.ts +2 -0
- package/dist/src/outputs/write-listing.js +79 -0
- package/dist/src/register-care/accept-output.d.ts +2 -0
- package/dist/src/register-care/accept-output.js +35 -0
- package/dist/src/register-care/analyze.d.ts +26 -0
- package/dist/src/register-care/analyze.js +115 -0
- package/dist/src/register-care/annotate.d.ts +11 -0
- package/dist/src/register-care/annotate.js +76 -0
- package/dist/src/register-care/annotations.d.ts +8 -0
- package/dist/src/register-care/annotations.js +41 -0
- package/dist/src/register-care/boundaryHints.d.ts +2 -0
- package/dist/src/register-care/boundaryHints.js +11 -0
- package/dist/src/register-care/carriers.d.ts +2 -0
- package/dist/src/register-care/carriers.js +78 -0
- package/dist/src/register-care/controlFlow.d.ts +5 -0
- package/dist/src/register-care/controlFlow.js +38 -0
- package/dist/src/register-care/fix.d.ts +11 -0
- package/dist/src/register-care/fix.js +130 -0
- package/dist/src/register-care/instruction-shape.d.ts +11 -0
- package/dist/src/register-care/instruction-shape.js +129 -0
- package/dist/src/register-care/liveness.d.ts +3 -0
- package/dist/src/register-care/liveness.js +197 -0
- package/dist/src/register-care/profiles.d.ts +9 -0
- package/dist/src/register-care/profiles.js +47 -0
- package/dist/src/register-care/programModel.d.ts +3 -0
- package/dist/src/register-care/programModel.js +188 -0
- package/dist/src/register-care/report.d.ts +5 -0
- package/dist/src/register-care/report.js +139 -0
- package/dist/src/register-care/routine-summaries.d.ts +6 -0
- package/dist/src/register-care/routine-summaries.js +89 -0
- package/dist/src/register-care/smartComments.d.ts +5 -0
- package/dist/src/register-care/smartComments.js +243 -0
- package/dist/src/register-care/sourceText.d.ts +8 -0
- package/dist/src/register-care/sourceText.js +15 -0
- package/dist/src/register-care/summaries.d.ts +12 -0
- package/dist/src/register-care/summaries.js +121 -0
- package/dist/src/register-care/summary.d.ts +3 -0
- package/dist/src/register-care/summary.js +474 -0
- package/dist/src/{registerCare → register-care}/tooling.d.ts +7 -6
- package/dist/src/{registerCare → register-care}/tooling.js +17 -6
- package/dist/src/register-care/types.d.ts +170 -0
- package/dist/src/register-care/types.js +1 -0
- package/dist/src/semantics/expression-evaluation.d.ts +29 -0
- package/dist/src/semantics/expression-evaluation.js +409 -0
- package/dist/src/source/logical-lines.d.ts +7 -0
- package/dist/src/source/logical-lines.js +11 -0
- package/dist/src/source/source-file.d.ts +5 -0
- package/dist/src/source/source-file.js +3 -0
- package/dist/src/source/source-span.d.ts +5 -0
- package/dist/src/source/source-span.js +1 -0
- package/dist/src/source/strip-line-comment.d.ts +6 -0
- package/dist/src/source/strip-line-comment.js +53 -0
- package/dist/src/syntax/directive-aliases.d.ts +10 -0
- package/dist/src/syntax/directive-aliases.js +199 -0
- package/dist/src/syntax/parse-diagnostics.d.ts +12 -0
- package/dist/src/syntax/parse-diagnostics.js +18 -0
- package/dist/src/syntax/parse-expression.d.ts +3 -0
- package/dist/src/syntax/parse-expression.js +551 -0
- package/dist/src/syntax/parse-line.d.ts +12 -0
- package/dist/src/syntax/parse-line.js +382 -0
- package/dist/src/tooling/api.d.ts +42 -0
- package/dist/src/tooling/api.js +42 -0
- package/dist/src/tooling/case-style.d.ts +8 -0
- package/dist/src/tooling/case-style.js +163 -0
- package/dist/src/z80/effects.d.ts +3 -3
- package/dist/src/z80/effects.js +349 -302
- package/dist/src/z80/encode.d.ts +2 -10
- package/dist/src/z80/encode.js +951 -374
- package/dist/src/z80/instruction.d.ts +226 -0
- package/dist/src/z80/instruction.js +1 -0
- package/dist/src/z80/parse-instruction.d.ts +7 -0
- package/dist/src/z80/parse-instruction.js +1068 -0
- package/docs/reference/tooling-api.md +68 -9
- package/package.json +22 -3
- /package/dist/{src → legacy-root-azm/src}/analysis.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/analysis.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/compile.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/compile.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/compileShared.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/compileShared.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/diagnosticTypes.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/diagnosticTypes.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/range.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/range.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/types.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeAsm80.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeAsm80.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeBin.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeBin.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeD8m.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeD8m.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeListing.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeListing.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/asmLine.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/asmLine.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/parseAsmRawValues.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/parseAsmRawValues.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/quoteScan.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/quoteScan.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/ast.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/ast.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/directiveAliases.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/directiveAliases.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/grammarData.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/grammarData.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/immExprUtils.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/immExprUtils.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmFlatDirectiveLine.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmFlatDirectiveLine.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmInstruction.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmInstruction.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmStatements.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmStatements.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmStream.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmStream.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmTopLevel.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmTopLevel.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseDiagnostics.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseDiagnostics.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseEnum.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseEnum.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseImm.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseImm.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseLogicalLines.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseLogicalLines.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOp.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOp.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOpHeader.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOpHeader.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOperands.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOperands.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParams.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParams.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParserRecovery.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParserRecovery.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParserShared.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParserShared.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRawDataDirectiveStart.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRawDataDirectiveStart.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRawDataDirectives.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRawDataDirectives.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRecordFieldDecl.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRecordFieldDecl.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseSourceItemDispatch.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseSourceItemDispatch.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseSourceItemTable.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseSourceItemTable.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseTopLevelCommon.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseTopLevelCommon.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseTypes.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseTypes.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parser.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parser.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/source.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/source.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/sourceExtensions.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/sourceExtensions.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lintCaseStyle.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lintCaseStyle.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmDirectiveLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmDirectiveLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmDirectiveTraversal.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmDirectiveTraversal.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmEquResolution.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmEquResolution.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionLdHelpers.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionLdHelpers.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionStream.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionStream.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringBranchCall.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringBranchCall.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringHost.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringHost.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringLd.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringLd.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmRangeLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmRangeLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmRawDataLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmRawDataLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmSourceEmitter.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmSourceEmitter.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmSourceInstructionLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmSourceInstructionLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmUtils.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmUtils.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerFlowSetup.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerFlowSetup.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringContext.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringContext.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringContextSplit.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringContextSplit.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringPhases.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringPhases.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/bytePlacement.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/bytePlacement.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/capabilities.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/capabilities.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/eaResolution.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/eaResolution.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emissionCore.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emissionCore.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emit.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emit.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitContextBuilder.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitContextBuilder.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitFinalization.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitFinalization.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitFinalizationSetup.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitFinalizationSetup.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1BuildProgramLoweringContext.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1BuildProgramLoweringContext.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Helpers.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Helpers.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Types.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Types.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1WirePipeline.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1WirePipeline.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Workspace.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Workspace.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPipeline.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPipeline.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitProgramContext.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitProgramContext.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitState.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitState.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/fixupBaseResolution.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/fixupBaseResolution.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/fixupEmission.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/fixupEmission.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/immMath.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/immMath.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/inputAssets.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/inputAssets.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldEncoding.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldEncoding.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldEncodingRegMemHelpers.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldEncodingRegMemHelpers.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldFormSelection.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldFormSelection.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmByteEmission.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmByteEmission.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmPlacement.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmPlacement.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmStreamRecording.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmStreamRecording.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmTypes.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmTypes.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredFormat.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredFormat.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredItemSize.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredItemSize.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweringDiagnostics.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweringDiagnostics.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweringTypes.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweringTypes.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opCandidateRegistry.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opCandidateRegistry.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionExecution.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionExecution.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionOrchestration.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionOrchestration.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionStream.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionStream.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opMatching.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opMatching.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opSubstitution.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opSubstitution.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/prescanTypes.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/prescanTypes.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringDeclarations.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringDeclarations.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringFinalize.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringFinalize.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringTraversal.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringTraversal.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programPrescan.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programPrescan.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/traceFormat.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/traceFormat.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/packageInfo.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/packageInfo.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/pathCompare.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/pathCompare.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/pipeline.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/analyze.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/analyze.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/annotate.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/annotate.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/boundaryHints.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/boundaryHints.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/carriers.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/carriers.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/controlFlow.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/controlFlow.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/fix.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/fix.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/liveness.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/liveness.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/profiles.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/profiles.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/programModel.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/programModel.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/report.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/report.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/smartComments.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/smartComments.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/sourceText.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/sourceText.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/summary.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/summary.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/types.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/types.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/declVisitor.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/declVisitor.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/env.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/env.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/layout.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/layout.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/layoutCastFold.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/layoutCastFold.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/semanticsDiagnostics.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/semanticsDiagnostics.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/typeQueries.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/typeQueries.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceIncludeExpansion.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceIncludeExpansion.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceIncludePaths.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceIncludePaths.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceLoader.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceLoader.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeAlu.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeAlu.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeBitOps.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeBitOps.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeContext.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeContext.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeControl.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeControl.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeCoreOps.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeCoreOps.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeIo.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeIo.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeLd.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeLd.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encoderRegistry.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encoderRegistry.js +0 -0
package/README.md
CHANGED
|
@@ -1,47 +1,54 @@
|
|
|
1
1
|
# AZM
|
|
2
2
|
|
|
3
|
-
AZM is
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
AZM is the Z80 assembler used by the Debug80 toolchain. It assembles plain
|
|
4
|
+
`.asm` and `.z80` source into machine-code artifacts for hardware, emulators,
|
|
5
|
+
and Debug80: Intel HEX, flat binary, listings, Debug80 maps, and optional
|
|
6
|
+
ASM80-compatible lowered source.
|
|
6
7
|
|
|
7
|
-
The
|
|
8
|
-
labels, directives, instructions, branches, data bytes, register effects, and
|
|
9
|
-
generated metadata visible in source and artifacts.
|
|
8
|
+
The user manual is the AZM book in the Debug80 documentation site:
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
[AZM Assembler Manual](https://jhlagado.github.io/debug80-docs/azm-book/book4/)
|
|
12
11
|
|
|
13
|
-
AZM
|
|
12
|
+
## What AZM Is
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
AZM is an assembler, not a high-level language or macro preprocessor. Source is
|
|
15
|
+
intended to stay close to the machine: labels, directives, instructions, data,
|
|
16
|
+
register contracts, and generated artifacts remain visible.
|
|
17
|
+
|
|
18
|
+
AZM keeps the parts of the original assembler that matter for real Z80 work:
|
|
19
|
+
|
|
20
|
+
- Z80 instructions with case-insensitive mnemonics and registers
|
|
21
|
+
- case-sensitive labels and symbols
|
|
22
|
+
- global labels, with `@NAME:` labels marking routine entries for register-care
|
|
23
|
+
analysis
|
|
24
|
+
- canonical dotted directives such as `.org`, `.equ`, `.db`, `.dw`, and `.ds`
|
|
25
|
+
- compatibility spelling for common undotted directive heads such as `ORG`,
|
|
26
|
+
`EQU`, `DB`, `DW`, and `DS`
|
|
17
27
|
- textual `.include`
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
- AST-level `op` extensions
|
|
22
|
-
- enums as constant namespaces
|
|
28
|
+
- register-care contracts, AZMDoc comments, and `.asmi` external interfaces
|
|
29
|
+
- `op` definitions for structured inline instruction idioms
|
|
30
|
+
- enums and qualified enum constants
|
|
23
31
|
- `.type` / `.union` layout metadata
|
|
24
32
|
- compile-time layout constants such as `sizeof(...)`, `offset(...)`, scalar
|
|
25
33
|
layout sizes, and constant-only layout casts
|
|
26
|
-
-
|
|
27
|
-
and `.istr`
|
|
34
|
+
- data directives including `.db`, `.dw`, `.ds`, `.cstr`, `.pstr`, and `.istr`
|
|
28
35
|
|
|
29
|
-
AZM
|
|
30
|
-
|
|
31
|
-
lowering,
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
AZM does not implement text macros, local labels, modules/imports, `func`,
|
|
37
|
+
formal arguments, generated stack frames, structured control flow, typed
|
|
38
|
+
assignment lowering, hidden typed load/store lowering, or named section blocks.
|
|
39
|
+
Those features belong to older high-level ZAX-era code paths, not current AZM
|
|
40
|
+
source.
|
|
34
41
|
|
|
35
42
|
## Install
|
|
36
43
|
|
|
37
|
-
|
|
44
|
+
AZM requires Node.js 20 or newer.
|
|
38
45
|
|
|
39
46
|
```sh
|
|
40
47
|
npm install -g @jhlagado/azm
|
|
41
|
-
azm path/to/program.
|
|
48
|
+
azm path/to/program.asm
|
|
42
49
|
```
|
|
43
50
|
|
|
44
|
-
From a checkout, use the local CLI
|
|
51
|
+
From a checkout, build first and then use the local CLI:
|
|
45
52
|
|
|
46
53
|
```sh
|
|
47
54
|
npm ci
|
|
@@ -49,55 +56,70 @@ npm run build
|
|
|
49
56
|
npm run azm -- examples/hello.asm
|
|
50
57
|
```
|
|
51
58
|
|
|
52
|
-
|
|
59
|
+
## Command Line
|
|
53
60
|
|
|
54
|
-
|
|
55
|
-
| ---------- | ------------------------- |
|
|
56
|
-
| `.hex` | Intel HEX |
|
|
57
|
-
| `.bin` | Flat binary |
|
|
58
|
-
| `.lst` | Byte dump plus symbols |
|
|
59
|
-
| `.z80` | Plain Z80 source emission |
|
|
60
|
-
| `.d8.json` | Debug80 map |
|
|
61
|
+
Basic use writes the default artifact set next to the source file:
|
|
61
62
|
|
|
62
|
-
|
|
63
|
+
```sh
|
|
64
|
+
azm program.asm
|
|
65
|
+
```
|
|
63
66
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
Write a specific primary output:
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
azm --type bin --output build/program.bin program.asm
|
|
71
|
+
azm --type hex --output build/program.hex program.asm
|
|
69
72
|
```
|
|
70
73
|
|
|
71
|
-
|
|
74
|
+
Add include search paths:
|
|
72
75
|
|
|
73
76
|
```sh
|
|
74
|
-
azm
|
|
77
|
+
azm -I include -I vendor program.asm
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Run register-care analysis:
|
|
81
|
+
|
|
82
|
+
```sh
|
|
83
|
+
azm --rc audit --reg-report program.asm
|
|
84
|
+
azm --rc error --interface monitor.asmi program.asm
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
See [docs/reference/cli.md](docs/reference/cli.md) for the complete option
|
|
88
|
+
reference.
|
|
89
|
+
|
|
90
|
+
## Output Artifacts
|
|
91
|
+
|
|
92
|
+
By default, AZM writes the requested primary output plus useful side artifacts
|
|
93
|
+
using the same base path.
|
|
94
|
+
|
|
95
|
+
| Extension | Contents |
|
|
96
|
+
| -------------- | --------------------------------------------- |
|
|
97
|
+
| `.hex` | Intel HEX |
|
|
98
|
+
| `.bin` | flat binary |
|
|
99
|
+
| `.lst` | listing with bytes and symbols |
|
|
100
|
+
| `.d8.json` | Debug80 map |
|
|
101
|
+
| `.z80` | ASM80-compatible lowered source when enabled |
|
|
102
|
+
| `.regcare.txt` | register-care report when enabled |
|
|
103
|
+
| `.asmi` | inferred register-care interface when enabled |
|
|
104
|
+
|
|
105
|
+
The `.z80` output is a generated compatibility artifact for ASM80-style
|
|
106
|
+
workflows and comparison tooling. BIN, HEX, listings, Debug80 maps, and
|
|
107
|
+
register-care reports are the normal production outputs.
|
|
108
|
+
|
|
109
|
+
## Small Example
|
|
110
|
+
|
|
111
|
+
```asm
|
|
112
|
+
.org 0100H
|
|
113
|
+
|
|
114
|
+
@START:
|
|
115
|
+
ld a,42
|
|
116
|
+
ret
|
|
75
117
|
```
|
|
76
118
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
-o, --output <file> Primary output path (must match --type extension)
|
|
82
|
-
-t, --type <type> Primary output type: hex|bin (default: hex)
|
|
83
|
-
-n, --nolist Suppress .lst
|
|
84
|
-
--nobin Suppress .bin
|
|
85
|
-
--nohex Suppress .hex
|
|
86
|
-
--nod8m Suppress .d8.json
|
|
87
|
-
--asm80 Emit assembler-valid lowered source (.z80)
|
|
88
|
-
--case-style <m> Case-style lint mode: off|upper|lower|consistent
|
|
89
|
-
--rc <m> Register-care mode: off|audit|warn|error|strict
|
|
90
|
-
--reg-report Emit .regcare.txt report
|
|
91
|
-
--reg-interface Emit inferred register-care interface (.asmi)
|
|
92
|
-
--fix Apply conservative register-care source fixes
|
|
93
|
-
--contracts Update source AZM contract blocks in place
|
|
94
|
-
--accept-out <r:c> Promote inferred output candidate while annotating
|
|
95
|
-
--interface <file> Load register-care interface contracts
|
|
96
|
-
--reg-profile <p> Register-care profile: mon3
|
|
97
|
-
--aliases <file> Load project directive alias JSON (repeatable)
|
|
98
|
-
-I, --include <dir> Add include search path (repeatable)
|
|
99
|
-
-V, --version Print version
|
|
100
|
-
-h, --help Show help
|
|
119
|
+
Compile it:
|
|
120
|
+
|
|
121
|
+
```sh
|
|
122
|
+
azm --type bin --output build/start.bin start.asm
|
|
101
123
|
```
|
|
102
124
|
|
|
103
125
|
## Programmatic API
|
|
@@ -115,28 +137,39 @@ import { compile, defaultFormatWriters } from '@jhlagado/azm/compile';
|
|
|
115
137
|
|
|
116
138
|
const result = await compile(
|
|
117
139
|
'/abs/path/to/main.asm',
|
|
118
|
-
{
|
|
140
|
+
{
|
|
141
|
+
outputType: 'hex',
|
|
142
|
+
sourceRoot: '/abs/path/to/project',
|
|
143
|
+
d8mInputs: {
|
|
144
|
+
hex: '/abs/path/to/project/build/main.hex',
|
|
145
|
+
listing: '/abs/path/to/project/build/main.lst',
|
|
146
|
+
},
|
|
147
|
+
},
|
|
119
148
|
{ formats: defaultFormatWriters },
|
|
120
149
|
);
|
|
121
150
|
|
|
122
151
|
console.log(result.diagnostics);
|
|
123
152
|
```
|
|
124
153
|
|
|
125
|
-
See [docs/reference/
|
|
126
|
-
|
|
127
|
-
current API notes.
|
|
154
|
+
See [docs/reference/tooling-api.md](docs/reference/tooling-api.md) for current
|
|
155
|
+
API notes.
|
|
128
156
|
|
|
129
|
-
##
|
|
157
|
+
## Development
|
|
130
158
|
|
|
131
159
|
Useful local verification lanes:
|
|
132
160
|
|
|
133
161
|
```sh
|
|
134
162
|
npm run build
|
|
163
|
+
npm run typecheck
|
|
164
|
+
npm run lint
|
|
135
165
|
npm run test:azm:alpha
|
|
136
166
|
npm run test:azm:corpus
|
|
137
167
|
npm test
|
|
138
168
|
```
|
|
139
169
|
|
|
170
|
+
The live source map is maintained in
|
|
171
|
+
[docs/reference/source-overview.md](docs/reference/source-overview.md).
|
|
172
|
+
|
|
140
173
|
## License
|
|
141
174
|
|
|
142
175
|
GPL-3.0-only. See [LICENSE](LICENSE).
|
|
@@ -4,7 +4,7 @@ import { writeHex } from './writeHex.js';
|
|
|
4
4
|
import { writeListing } from './writeListing.js';
|
|
5
5
|
import { writeAsm80 } from './writeAsm80.js';
|
|
6
6
|
/**
|
|
7
|
-
* Default in-memory artifact writers
|
|
7
|
+
* Default in-memory artifact writers.
|
|
8
8
|
*
|
|
9
9
|
* These writers implement the `FormatWriters` contract and return artifacts without writing to disk.
|
|
10
10
|
*/
|
|
@@ -68,14 +68,10 @@ export interface WriteHexOptions {
|
|
|
68
68
|
*/
|
|
69
69
|
lineEnding?: '\n' | '\r\n';
|
|
70
70
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Options for BIN writing (reserved for future options).
|
|
73
|
-
*/
|
|
71
|
+
/** Options for BIN writing. */
|
|
74
72
|
export interface WriteBinOptions {
|
|
75
73
|
}
|
|
76
|
-
/**
|
|
77
|
-
* Options for D8M writing (reserved for future options).
|
|
78
|
-
*/
|
|
74
|
+
/** Options for D8M writing. */
|
|
79
75
|
export interface WriteD8mOptions {
|
|
80
76
|
/**
|
|
81
77
|
* Base directory used to normalize file paths in D8M symbol entries.
|
|
@@ -170,6 +166,64 @@ export interface D8mArtifact {
|
|
|
170
166
|
path?: string;
|
|
171
167
|
json: D8mJson;
|
|
172
168
|
}
|
|
169
|
+
export type D8mSegmentKind = 'code' | 'data' | 'directive' | 'label' | 'macro' | 'unknown';
|
|
170
|
+
export type D8mSegmentConfidence = 'high' | 'medium' | 'low';
|
|
171
|
+
export interface D8mSegment {
|
|
172
|
+
start: number;
|
|
173
|
+
end: number;
|
|
174
|
+
lstLine: number;
|
|
175
|
+
/** 1-based original source line when known. */
|
|
176
|
+
line?: number;
|
|
177
|
+
kind: D8mSegmentKind;
|
|
178
|
+
confidence: D8mSegmentConfidence;
|
|
179
|
+
}
|
|
180
|
+
export type D8mSymbol = {
|
|
181
|
+
name: string;
|
|
182
|
+
kind: 'constant';
|
|
183
|
+
value: number;
|
|
184
|
+
file?: string;
|
|
185
|
+
line?: number;
|
|
186
|
+
scope?: 'global' | 'local';
|
|
187
|
+
} | {
|
|
188
|
+
name: string;
|
|
189
|
+
kind: 'label' | 'data' | 'unknown';
|
|
190
|
+
address: number;
|
|
191
|
+
file?: string;
|
|
192
|
+
line?: number;
|
|
193
|
+
scope?: 'global' | 'local';
|
|
194
|
+
size?: number;
|
|
195
|
+
};
|
|
196
|
+
export type D8mFileSymbol = {
|
|
197
|
+
name: string;
|
|
198
|
+
kind: 'constant';
|
|
199
|
+
value: number;
|
|
200
|
+
line?: number;
|
|
201
|
+
scope?: 'global' | 'local';
|
|
202
|
+
} | {
|
|
203
|
+
name: string;
|
|
204
|
+
kind: 'label' | 'data' | 'unknown';
|
|
205
|
+
address: number;
|
|
206
|
+
line?: number;
|
|
207
|
+
scope?: 'global' | 'local';
|
|
208
|
+
size?: number;
|
|
209
|
+
};
|
|
210
|
+
export interface D8mFileEntry {
|
|
211
|
+
segments?: D8mSegment[];
|
|
212
|
+
symbols?: D8mFileSymbol[];
|
|
213
|
+
}
|
|
214
|
+
export interface D8mGenerator {
|
|
215
|
+
name: 'azm';
|
|
216
|
+
tool: 'azm';
|
|
217
|
+
version?: string;
|
|
218
|
+
inputs?: {
|
|
219
|
+
entry?: string;
|
|
220
|
+
listing?: string;
|
|
221
|
+
hex?: string;
|
|
222
|
+
bin?: string;
|
|
223
|
+
};
|
|
224
|
+
entrySymbol?: string;
|
|
225
|
+
entryAddress?: number;
|
|
226
|
+
}
|
|
173
227
|
/**
|
|
174
228
|
* In-memory register-care audit report artifact.
|
|
175
229
|
*/
|
|
@@ -209,7 +263,13 @@ export type D8mJson = {
|
|
|
209
263
|
format: 'd8-debug-map';
|
|
210
264
|
version: 1;
|
|
211
265
|
arch: 'z80';
|
|
212
|
-
|
|
266
|
+
addressWidth: 16;
|
|
267
|
+
endianness: 'little';
|
|
268
|
+
files: Record<string, D8mFileEntry>;
|
|
269
|
+
segments: AddressRange[];
|
|
270
|
+
fileList?: string[];
|
|
271
|
+
symbols: D8mSymbol[];
|
|
272
|
+
generator: D8mGenerator;
|
|
213
273
|
};
|
|
214
274
|
/**
|
|
215
275
|
* Format writers used by the pipeline to turn emitted bytes/symbols into artifacts.
|
|
@@ -2,7 +2,6 @@ import type { EmittedByteMap, HexArtifact, SymbolEntry, WriteHexOptions } from '
|
|
|
2
2
|
/**
|
|
3
3
|
* Create an Intel HEX artifact from an emitted address->byte map.
|
|
4
4
|
*
|
|
5
|
-
* PR1 implementation note:
|
|
6
5
|
* - Emits only type-00 data records and a type-01 EOF record.
|
|
7
6
|
* - Does not emit extended address records (assumes 16-bit address space).
|
|
8
7
|
*/
|
|
@@ -9,7 +9,6 @@ function checksum(bytes) {
|
|
|
9
9
|
/**
|
|
10
10
|
* Create an Intel HEX artifact from an emitted address->byte map.
|
|
11
11
|
*
|
|
12
|
-
* PR1 implementation note:
|
|
13
12
|
* - Emits only type-00 data records and a type-01 EOF record.
|
|
14
13
|
* - Does not emit extended address records (assumes 16-bit address space).
|
|
15
14
|
*/
|
|
@@ -4,8 +4,6 @@ import type { RegisterCareMode } from './registerCare/types.js';
|
|
|
4
4
|
export type CaseStyleMode = 'off' | 'upper' | 'lower' | 'consistent';
|
|
5
5
|
/**
|
|
6
6
|
* Options that influence compilation behavior and which artifacts are produced.
|
|
7
|
-
*
|
|
8
|
-
* PR1 implementation note: most options are accepted but only a subset is currently honored.
|
|
9
7
|
*/
|
|
10
8
|
export interface CompilerOptions {
|
|
11
9
|
/**
|
|
@@ -15,9 +13,9 @@ export interface CompilerOptions {
|
|
|
15
13
|
* importing source file.
|
|
16
14
|
*/
|
|
17
15
|
includeDirs?: string[];
|
|
18
|
-
/** Primary output path
|
|
16
|
+
/** Primary output path supplied by wrappers that derive sibling artifacts. */
|
|
19
17
|
outputPath?: string;
|
|
20
|
-
/** Primary output type
|
|
18
|
+
/** Primary output type selected by wrappers such as the CLI. */
|
|
21
19
|
outputType?: 'hex' | 'bin';
|
|
22
20
|
/**
|
|
23
21
|
* Root used for source paths in debug maps.
|
|
@@ -42,7 +40,7 @@ export interface CompilerOptions {
|
|
|
42
40
|
emitD8m?: boolean;
|
|
43
41
|
/** Emit listing (`.lst`). */
|
|
44
42
|
emitListing?: boolean;
|
|
45
|
-
/** Emit ASM80-compatible lowered source (`.
|
|
43
|
+
/** Emit ASM80-compatible lowered source (`.z80`). */
|
|
46
44
|
emitAsm80?: boolean;
|
|
47
45
|
/** Optional case-style lint mode for asm keywords/register tokens. */
|
|
48
46
|
caseStyle?: CaseStyleMode;
|