@jhlagado/azm 0.2.0 → 0.2.2
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 +110 -78
- package/dist/src/api-compile.d.ts +0 -2
- package/dist/src/api-compile.js +2 -9
- package/dist/src/assembly/address-planning.js +21 -1
- package/dist/src/assembly/program-emission.js +1 -0
- package/dist/src/cli/parse-args.d.ts +0 -1
- package/dist/src/cli/parse-args.js +0 -7
- package/dist/src/cli/write-artifacts.js +0 -11
- package/dist/src/core/compile.js +192 -9
- package/dist/src/expansion/op-expansion.js +2 -0
- package/dist/src/model/expression.d.ts +4 -0
- package/dist/src/model/source-item.d.ts +11 -0
- package/dist/src/outputs/index.js +0 -2
- package/dist/src/outputs/types.d.ts +3 -16
- package/dist/src/outputs/write-asm80.js +206 -5
- package/dist/src/register-care/analyze.js +36 -8
- package/dist/src/register-care/annotations.js +33 -146
- package/dist/src/register-care/fix.d.ts +2 -0
- package/dist/src/register-care/fix.js +52 -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.js +15 -7
- package/dist/src/register-care/profiles.js +4 -0
- package/dist/src/register-care/programModel.js +79 -13
- package/dist/src/register-care/report.d.ts +2 -1
- package/dist/src/register-care/report.js +91 -34
- 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/summaries.d.ts +3 -3
- package/dist/src/register-care/summaries.js +42 -75
- package/dist/{legacy-root-azm/src/registerCare → src/register-care}/summary.js +33 -51
- package/dist/src/register-care/types.d.ts +6 -1
- package/dist/src/semantics/expression-evaluation.d.ts +7 -3
- package/dist/src/semantics/expression-evaluation.js +57 -0
- package/dist/src/source/strip-line-comment.d.ts +2 -0
- package/dist/src/source/strip-line-comment.js +26 -0
- package/dist/src/syntax/directive-aliases.js +9 -10
- 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.js +34 -9
- package/dist/src/syntax/parse-line.js +150 -54
- package/dist/src/tooling/case-style.js +3 -0
- package/docs/reference/cli.md +6 -4
- package/docs/reference/tooling-api.md +13 -9
- package/package.json +4 -6
- package/dist/legacy-root-azm/src/analysis.d.ts +0 -11
- package/dist/legacy-root-azm/src/analysis.js +0 -41
- package/dist/legacy-root-azm/src/compile.d.ts +0 -10
- package/dist/legacy-root-azm/src/compile.js +0 -186
- package/dist/legacy-root-azm/src/compileShared.d.ts +0 -3
- package/dist/legacy-root-azm/src/compileShared.js +0 -7
- package/dist/legacy-root-azm/src/diagnosticTypes.d.ts +0 -77
- package/dist/legacy-root-azm/src/diagnosticTypes.js +0 -53
- package/dist/legacy-root-azm/src/formats/index.d.ts +0 -7
- package/dist/legacy-root-azm/src/formats/index.js +0 -17
- package/dist/legacy-root-azm/src/formats/range.d.ts +0 -17
- package/dist/legacy-root-azm/src/formats/range.js +0 -45
- package/dist/legacy-root-azm/src/formats/types.d.ts +0 -283
- package/dist/legacy-root-azm/src/formats/types.js +0 -1
- package/dist/legacy-root-azm/src/formats/writeAsm80.d.ts +0 -6
- package/dist/legacy-root-azm/src/formats/writeAsm80.js +0 -86
- package/dist/legacy-root-azm/src/formats/writeBin.d.ts +0 -7
- package/dist/legacy-root-azm/src/formats/writeBin.js +0 -23
- package/dist/legacy-root-azm/src/formats/writeD8m.d.ts +0 -9
- package/dist/legacy-root-azm/src/formats/writeD8m.js +0 -245
- package/dist/legacy-root-azm/src/formats/writeHex.d.ts +0 -8
- package/dist/legacy-root-azm/src/formats/writeHex.js +0 -38
- package/dist/legacy-root-azm/src/formats/writeListing.d.ts +0 -8
- package/dist/legacy-root-azm/src/formats/writeListing.js +0 -83
- package/dist/legacy-root-azm/src/frontend/asm80/asmLine.d.ts +0 -39
- package/dist/legacy-root-azm/src/frontend/asm80/asmLine.js +0 -89
- package/dist/legacy-root-azm/src/frontend/asm80/parseAsmRawValues.d.ts +0 -4
- package/dist/legacy-root-azm/src/frontend/asm80/parseAsmRawValues.js +0 -94
- package/dist/legacy-root-azm/src/frontend/asm80/quoteScan.d.ts +0 -10
- package/dist/legacy-root-azm/src/frontend/asm80/quoteScan.js +0 -25
- package/dist/legacy-root-azm/src/frontend/ast.d.ts +0 -376
- package/dist/legacy-root-azm/src/frontend/ast.js +0 -1
- package/dist/legacy-root-azm/src/frontend/directiveAliases.d.ts +0 -14
- package/dist/legacy-root-azm/src/frontend/directiveAliases.js +0 -189
- package/dist/legacy-root-azm/src/frontend/grammarData.d.ts +0 -14
- package/dist/legacy-root-azm/src/frontend/grammarData.js +0 -65
- package/dist/legacy-root-azm/src/frontend/immExprUtils.d.ts +0 -2
- package/dist/legacy-root-azm/src/frontend/immExprUtils.js +0 -12
- package/dist/legacy-root-azm/src/frontend/parseAsmFlatDirectiveLine.d.ts +0 -17
- package/dist/legacy-root-azm/src/frontend/parseAsmFlatDirectiveLine.js +0 -187
- package/dist/legacy-root-azm/src/frontend/parseAsmInstruction.d.ts +0 -3
- package/dist/legacy-root-azm/src/frontend/parseAsmInstruction.js +0 -73
- package/dist/legacy-root-azm/src/frontend/parseAsmStatements.d.ts +0 -6
- package/dist/legacy-root-azm/src/frontend/parseAsmStatements.js +0 -16
- package/dist/legacy-root-azm/src/frontend/parseAsmStream.d.ts +0 -10
- package/dist/legacy-root-azm/src/frontend/parseAsmStream.js +0 -33
- package/dist/legacy-root-azm/src/frontend/parseAsmTopLevel.d.ts +0 -18
- package/dist/legacy-root-azm/src/frontend/parseAsmTopLevel.js +0 -34
- package/dist/legacy-root-azm/src/frontend/parseDiagnostics.d.ts +0 -9
- package/dist/legacy-root-azm/src/frontend/parseDiagnostics.js +0 -16
- package/dist/legacy-root-azm/src/frontend/parseEnum.d.ts +0 -12
- package/dist/legacy-root-azm/src/frontend/parseEnum.js +0 -70
- package/dist/legacy-root-azm/src/frontend/parseImm.d.ts +0 -10
- package/dist/legacy-root-azm/src/frontend/parseImm.js +0 -397
- package/dist/legacy-root-azm/src/frontend/parseLogicalLines.d.ts +0 -11
- package/dist/legacy-root-azm/src/frontend/parseLogicalLines.js +0 -94
- package/dist/legacy-root-azm/src/frontend/parseOp.d.ts +0 -25
- package/dist/legacy-root-azm/src/frontend/parseOp.js +0 -120
- package/dist/legacy-root-azm/src/frontend/parseOpHeader.d.ts +0 -20
- package/dist/legacy-root-azm/src/frontend/parseOpHeader.js +0 -32
- package/dist/legacy-root-azm/src/frontend/parseOperands.d.ts +0 -4
- package/dist/legacy-root-azm/src/frontend/parseOperands.js +0 -290
- package/dist/legacy-root-azm/src/frontend/parseParams.d.ts +0 -6
- package/dist/legacy-root-azm/src/frontend/parseParams.js +0 -62
- package/dist/legacy-root-azm/src/frontend/parseParserRecovery.d.ts +0 -12
- package/dist/legacy-root-azm/src/frontend/parseParserRecovery.js +0 -17
- package/dist/legacy-root-azm/src/frontend/parseParserShared.d.ts +0 -2
- package/dist/legacy-root-azm/src/frontend/parseParserShared.js +0 -8
- package/dist/legacy-root-azm/src/frontend/parseRawDataDirectiveStart.d.ts +0 -1
- package/dist/legacy-root-azm/src/frontend/parseRawDataDirectiveStart.js +0 -3
- package/dist/legacy-root-azm/src/frontend/parseRawDataDirectives.d.ts +0 -7
- package/dist/legacy-root-azm/src/frontend/parseRawDataDirectives.js +0 -142
- package/dist/legacy-root-azm/src/frontend/parseRecordFieldDecl.d.ts +0 -34
- package/dist/legacy-root-azm/src/frontend/parseRecordFieldDecl.js +0 -177
- package/dist/legacy-root-azm/src/frontend/parseSourceItemDispatch.d.ts +0 -46
- package/dist/legacy-root-azm/src/frontend/parseSourceItemDispatch.js +0 -53
- package/dist/legacy-root-azm/src/frontend/parseSourceItemTable.d.ts +0 -16
- package/dist/legacy-root-azm/src/frontend/parseSourceItemTable.js +0 -68
- package/dist/legacy-root-azm/src/frontend/parseTopLevelCommon.d.ts +0 -11
- package/dist/legacy-root-azm/src/frontend/parseTopLevelCommon.js +0 -50
- package/dist/legacy-root-azm/src/frontend/parseTypes.d.ts +0 -24
- package/dist/legacy-root-azm/src/frontend/parseTypes.js +0 -77
- package/dist/legacy-root-azm/src/frontend/parser.d.ts +0 -11
- package/dist/legacy-root-azm/src/frontend/parser.js +0 -88
- package/dist/legacy-root-azm/src/frontend/source.d.ts +0 -28
- package/dist/legacy-root-azm/src/frontend/source.js +0 -58
- package/dist/legacy-root-azm/src/frontend/sourceExtensions.d.ts +0 -2
- package/dist/legacy-root-azm/src/frontend/sourceExtensions.js +0 -6
- package/dist/legacy-root-azm/src/lintCaseStyle.d.ts +0 -4
- package/dist/legacy-root-azm/src/lintCaseStyle.js +0 -129
- package/dist/legacy-root-azm/src/lowering/asmDirectiveLowering.d.ts +0 -4
- package/dist/legacy-root-azm/src/lowering/asmDirectiveLowering.js +0 -229
- package/dist/legacy-root-azm/src/lowering/asmDirectiveTraversal.d.ts +0 -47
- package/dist/legacy-root-azm/src/lowering/asmDirectiveTraversal.js +0 -52
- package/dist/legacy-root-azm/src/lowering/asmEquResolution.d.ts +0 -8
- package/dist/legacy-root-azm/src/lowering/asmEquResolution.js +0 -69
- package/dist/legacy-root-azm/src/lowering/asmInstructionLdHelpers.d.ts +0 -15
- package/dist/legacy-root-azm/src/lowering/asmInstructionLdHelpers.js +0 -102
- package/dist/legacy-root-azm/src/lowering/asmInstructionLowering.d.ts +0 -5
- package/dist/legacy-root-azm/src/lowering/asmInstructionLowering.js +0 -54
- package/dist/legacy-root-azm/src/lowering/asmInstructionStream.d.ts +0 -46
- package/dist/legacy-root-azm/src/lowering/asmInstructionStream.js +0 -51
- package/dist/legacy-root-azm/src/lowering/asmLoweringBranchCall.d.ts +0 -43
- package/dist/legacy-root-azm/src/lowering/asmLoweringBranchCall.js +0 -254
- package/dist/legacy-root-azm/src/lowering/asmLoweringHost.d.ts +0 -23
- package/dist/legacy-root-azm/src/lowering/asmLoweringHost.js +0 -1
- package/dist/legacy-root-azm/src/lowering/asmLoweringLd.d.ts +0 -28
- package/dist/legacy-root-azm/src/lowering/asmLoweringLd.js +0 -144
- package/dist/legacy-root-azm/src/lowering/asmRangeLowering.d.ts +0 -17
- package/dist/legacy-root-azm/src/lowering/asmRangeLowering.js +0 -39
- package/dist/legacy-root-azm/src/lowering/asmRawDataLowering.d.ts +0 -16
- package/dist/legacy-root-azm/src/lowering/asmRawDataLowering.js +0 -209
- package/dist/legacy-root-azm/src/lowering/asmSourceEmitter.d.ts +0 -4
- package/dist/legacy-root-azm/src/lowering/asmSourceEmitter.js +0 -9
- package/dist/legacy-root-azm/src/lowering/asmSourceInstructionLowering.d.ts +0 -4
- package/dist/legacy-root-azm/src/lowering/asmSourceInstructionLowering.js +0 -14
- package/dist/legacy-root-azm/src/lowering/asmUtils.d.ts +0 -13
- package/dist/legacy-root-azm/src/lowering/asmUtils.js +0 -105
- package/dist/legacy-root-azm/src/lowering/assemblerFlowSetup.d.ts +0 -54
- package/dist/legacy-root-azm/src/lowering/assemblerFlowSetup.js +0 -128
- package/dist/legacy-root-azm/src/lowering/assemblerLoweringContext.d.ts +0 -151
- package/dist/legacy-root-azm/src/lowering/assemblerLoweringContext.js +0 -16
- package/dist/legacy-root-azm/src/lowering/assemblerLoweringContextSplit.d.ts +0 -7
- package/dist/legacy-root-azm/src/lowering/assemblerLoweringContextSplit.js +0 -75
- package/dist/legacy-root-azm/src/lowering/assemblerLoweringPhases.d.ts +0 -66
- package/dist/legacy-root-azm/src/lowering/assemblerLoweringPhases.js +0 -166
- package/dist/legacy-root-azm/src/lowering/bytePlacement.d.ts +0 -7
- package/dist/legacy-root-azm/src/lowering/bytePlacement.js +0 -37
- package/dist/legacy-root-azm/src/lowering/capabilities.d.ts +0 -67
- package/dist/legacy-root-azm/src/lowering/capabilities.js +0 -1
- package/dist/legacy-root-azm/src/lowering/eaResolution.d.ts +0 -58
- package/dist/legacy-root-azm/src/lowering/eaResolution.js +0 -159
- package/dist/legacy-root-azm/src/lowering/emissionCore.d.ts +0 -17
- package/dist/legacy-root-azm/src/lowering/emissionCore.js +0 -21
- package/dist/legacy-root-azm/src/lowering/emit.d.ts +0 -17
- package/dist/legacy-root-azm/src/lowering/emit.js +0 -46
- package/dist/legacy-root-azm/src/lowering/emitContextBuilder.d.ts +0 -63
- package/dist/legacy-root-azm/src/lowering/emitContextBuilder.js +0 -41
- package/dist/legacy-root-azm/src/lowering/emitFinalization.d.ts +0 -61
- package/dist/legacy-root-azm/src/lowering/emitFinalization.js +0 -66
- package/dist/legacy-root-azm/src/lowering/emitFinalizationSetup.d.ts +0 -19
- package/dist/legacy-root-azm/src/lowering/emitFinalizationSetup.js +0 -26
- package/dist/legacy-root-azm/src/lowering/emitPhase1BuildProgramLoweringContext.d.ts +0 -7
- package/dist/legacy-root-azm/src/lowering/emitPhase1BuildProgramLoweringContext.js +0 -119
- package/dist/legacy-root-azm/src/lowering/emitPhase1Helpers.d.ts +0 -4
- package/dist/legacy-root-azm/src/lowering/emitPhase1Helpers.js +0 -12
- package/dist/legacy-root-azm/src/lowering/emitPhase1Types.d.ts +0 -21
- package/dist/legacy-root-azm/src/lowering/emitPhase1Types.js +0 -1
- package/dist/legacy-root-azm/src/lowering/emitPhase1WirePipeline.d.ts +0 -70
- package/dist/legacy-root-azm/src/lowering/emitPhase1WirePipeline.js +0 -203
- package/dist/legacy-root-azm/src/lowering/emitPhase1Workspace.d.ts +0 -82
- package/dist/legacy-root-azm/src/lowering/emitPhase1Workspace.js +0 -55
- package/dist/legacy-root-azm/src/lowering/emitPipeline.d.ts +0 -121
- package/dist/legacy-root-azm/src/lowering/emitPipeline.js +0 -57
- package/dist/legacy-root-azm/src/lowering/emitProgramContext.d.ts +0 -39
- package/dist/legacy-root-azm/src/lowering/emitProgramContext.js +0 -29
- package/dist/legacy-root-azm/src/lowering/emitState.d.ts +0 -90
- package/dist/legacy-root-azm/src/lowering/emitState.js +0 -124
- package/dist/legacy-root-azm/src/lowering/fixupBaseResolution.d.ts +0 -7
- package/dist/legacy-root-azm/src/lowering/fixupBaseResolution.js +0 -23
- package/dist/legacy-root-azm/src/lowering/fixupEmission.d.ts +0 -64
- package/dist/legacy-root-azm/src/lowering/fixupEmission.js +0 -199
- package/dist/legacy-root-azm/src/lowering/immMath.d.ts +0 -2
- package/dist/legacy-root-azm/src/lowering/immMath.js +0 -34
- package/dist/legacy-root-azm/src/lowering/inputAssets.d.ts +0 -7
- package/dist/legacy-root-azm/src/lowering/inputAssets.js +0 -106
- package/dist/legacy-root-azm/src/lowering/ldEncoding.d.ts +0 -15
- package/dist/legacy-root-azm/src/lowering/ldEncoding.js +0 -12
- package/dist/legacy-root-azm/src/lowering/ldEncodingRegMemHelpers.d.ts +0 -5
- package/dist/legacy-root-azm/src/lowering/ldEncodingRegMemHelpers.js +0 -124
- package/dist/legacy-root-azm/src/lowering/ldFormSelection.d.ts +0 -26
- package/dist/legacy-root-azm/src/lowering/ldFormSelection.js +0 -92
- package/dist/legacy-root-azm/src/lowering/ldLowering.d.ts +0 -7
- package/dist/legacy-root-azm/src/lowering/ldLowering.js +0 -13
- package/dist/legacy-root-azm/src/lowering/loweredAsmByteEmission.d.ts +0 -23
- package/dist/legacy-root-azm/src/lowering/loweredAsmByteEmission.js +0 -185
- package/dist/legacy-root-azm/src/lowering/loweredAsmPlacement.d.ts +0 -13
- package/dist/legacy-root-azm/src/lowering/loweredAsmPlacement.js +0 -86
- package/dist/legacy-root-azm/src/lowering/loweredAsmStreamRecording.d.ts +0 -27
- package/dist/legacy-root-azm/src/lowering/loweredAsmStreamRecording.js +0 -215
- package/dist/legacy-root-azm/src/lowering/loweredAsmTypes.d.ts +0 -202
- package/dist/legacy-root-azm/src/lowering/loweredAsmTypes.js +0 -1
- package/dist/legacy-root-azm/src/lowering/loweredFormat.d.ts +0 -3
- package/dist/legacy-root-azm/src/lowering/loweredFormat.js +0 -26
- package/dist/legacy-root-azm/src/lowering/loweredItemSize.d.ts +0 -4
- package/dist/legacy-root-azm/src/lowering/loweredItemSize.js +0 -17
- package/dist/legacy-root-azm/src/lowering/loweringDiagnostics.d.ts +0 -9
- package/dist/legacy-root-azm/src/lowering/loweringDiagnostics.js +0 -55
- package/dist/legacy-root-azm/src/lowering/loweringTypes.d.ts +0 -27
- package/dist/legacy-root-azm/src/lowering/loweringTypes.js +0 -1
- package/dist/legacy-root-azm/src/lowering/opCandidateRegistry.d.ts +0 -9
- package/dist/legacy-root-azm/src/lowering/opCandidateRegistry.js +0 -9
- package/dist/legacy-root-azm/src/lowering/opExpansionExecution.d.ts +0 -15
- package/dist/legacy-root-azm/src/lowering/opExpansionExecution.js +0 -45
- package/dist/legacy-root-azm/src/lowering/opExpansionOrchestration.d.ts +0 -15
- package/dist/legacy-root-azm/src/lowering/opExpansionOrchestration.js +0 -88
- package/dist/legacy-root-azm/src/lowering/opExpansionStream.d.ts +0 -12
- package/dist/legacy-root-azm/src/lowering/opExpansionStream.js +0 -176
- package/dist/legacy-root-azm/src/lowering/opMatching.d.ts +0 -52
- package/dist/legacy-root-azm/src/lowering/opMatching.js +0 -355
- package/dist/legacy-root-azm/src/lowering/opSubstitution.d.ts +0 -13
- package/dist/legacy-root-azm/src/lowering/opSubstitution.js +0 -175
- package/dist/legacy-root-azm/src/lowering/prescanTypes.d.ts +0 -7
- package/dist/legacy-root-azm/src/lowering/prescanTypes.js +0 -1
- package/dist/legacy-root-azm/src/lowering/programLowering.d.ts +0 -144
- package/dist/legacy-root-azm/src/lowering/programLowering.js +0 -2
- package/dist/legacy-root-azm/src/lowering/programLoweringDeclarations.d.ts +0 -5
- package/dist/legacy-root-azm/src/lowering/programLoweringDeclarations.js +0 -5
- package/dist/legacy-root-azm/src/lowering/programLoweringFinalize.d.ts +0 -18
- package/dist/legacy-root-azm/src/lowering/programLoweringFinalize.js +0 -115
- package/dist/legacy-root-azm/src/lowering/programLoweringTraversal.d.ts +0 -2
- package/dist/legacy-root-azm/src/lowering/programLoweringTraversal.js +0 -93
- package/dist/legacy-root-azm/src/lowering/programPrescan.d.ts +0 -3
- package/dist/legacy-root-azm/src/lowering/programPrescan.js +0 -37
- package/dist/legacy-root-azm/src/lowering/traceFormat.d.ts +0 -13
- package/dist/legacy-root-azm/src/lowering/traceFormat.js +0 -211
- package/dist/legacy-root-azm/src/packageInfo.d.ts +0 -1
- package/dist/legacy-root-azm/src/packageInfo.js +0 -15
- package/dist/legacy-root-azm/src/pathCompare.d.ts +0 -3
- package/dist/legacy-root-azm/src/pathCompare.js +0 -26
- package/dist/legacy-root-azm/src/pipeline.d.ts +0 -91
- package/dist/legacy-root-azm/src/pipeline.js +0 -1
- package/dist/legacy-root-azm/src/registerCare/analyze.d.ts +0 -24
- package/dist/legacy-root-azm/src/registerCare/analyze.js +0 -327
- package/dist/legacy-root-azm/src/registerCare/boundaryHints.d.ts +0 -2
- package/dist/legacy-root-azm/src/registerCare/boundaryHints.js +0 -10
- package/dist/legacy-root-azm/src/registerCare/carriers.d.ts +0 -4
- package/dist/legacy-root-azm/src/registerCare/carriers.js +0 -78
- package/dist/legacy-root-azm/src/registerCare/controlFlow.d.ts +0 -5
- package/dist/legacy-root-azm/src/registerCare/controlFlow.js +0 -35
- package/dist/legacy-root-azm/src/registerCare/fix.d.ts +0 -11
- package/dist/legacy-root-azm/src/registerCare/fix.js +0 -119
- package/dist/legacy-root-azm/src/registerCare/liveness.d.ts +0 -7
- package/dist/legacy-root-azm/src/registerCare/liveness.js +0 -227
- package/dist/legacy-root-azm/src/registerCare/profiles.d.ts +0 -11
- package/dist/legacy-root-azm/src/registerCare/profiles.js +0 -45
- package/dist/legacy-root-azm/src/registerCare/programModel.d.ts +0 -3
- package/dist/legacy-root-azm/src/registerCare/programModel.js +0 -181
- package/dist/legacy-root-azm/src/registerCare/report.d.ts +0 -5
- package/dist/legacy-root-azm/src/registerCare/report.js +0 -139
- package/dist/legacy-root-azm/src/registerCare/smartComments.d.ts +0 -5
- package/dist/legacy-root-azm/src/registerCare/smartComments.js +0 -247
- package/dist/legacy-root-azm/src/registerCare/types.d.ts +0 -154
- package/dist/legacy-root-azm/src/registerCare/types.js +0 -1
- package/dist/legacy-root-azm/src/semantics/declVisitor.d.ts +0 -5
- package/dist/legacy-root-azm/src/semantics/declVisitor.js +0 -11
- package/dist/legacy-root-azm/src/semantics/env.d.ts +0 -28
- package/dist/legacy-root-azm/src/semantics/env.js +0 -432
- package/dist/legacy-root-azm/src/semantics/layout.d.ts +0 -21
- package/dist/legacy-root-azm/src/semantics/layout.js +0 -226
- package/dist/legacy-root-azm/src/semantics/layoutCastFold.d.ts +0 -22
- package/dist/legacy-root-azm/src/semantics/layoutCastFold.js +0 -118
- package/dist/legacy-root-azm/src/semantics/semanticsDiagnostics.d.ts +0 -2
- package/dist/legacy-root-azm/src/semantics/semanticsDiagnostics.js +0 -4
- package/dist/legacy-root-azm/src/semantics/typeQueries.d.ts +0 -31
- package/dist/legacy-root-azm/src/semantics/typeQueries.js +0 -124
- package/dist/legacy-root-azm/src/sourceIncludeExpansion.d.ts +0 -17
- package/dist/legacy-root-azm/src/sourceIncludeExpansion.js +0 -124
- package/dist/legacy-root-azm/src/sourceIncludePaths.d.ts +0 -1
- package/dist/legacy-root-azm/src/sourceIncludePaths.js +0 -12
- package/dist/legacy-root-azm/src/sourceLoader.d.ts +0 -15
- package/dist/legacy-root-azm/src/sourceLoader.js +0 -118
- package/dist/legacy-root-azm/src/z80/effects.d.ts +0 -3
- package/dist/legacy-root-azm/src/z80/effects.js +0 -516
- package/dist/legacy-root-azm/src/z80/encode.d.ts +0 -10
- package/dist/legacy-root-azm/src/z80/encode.js +0 -412
- package/dist/legacy-root-azm/src/z80/encodeAlu.d.ts +0 -7
- package/dist/legacy-root-azm/src/z80/encodeAlu.js +0 -219
- package/dist/legacy-root-azm/src/z80/encodeBitOps.d.ts +0 -7
- package/dist/legacy-root-azm/src/z80/encodeBitOps.js +0 -123
- package/dist/legacy-root-azm/src/z80/encodeContext.d.ts +0 -29
- package/dist/legacy-root-azm/src/z80/encodeContext.js +0 -1
- package/dist/legacy-root-azm/src/z80/encodeControl.d.ts +0 -26
- package/dist/legacy-root-azm/src/z80/encodeControl.js +0 -180
- package/dist/legacy-root-azm/src/z80/encodeCoreOps.d.ts +0 -7
- package/dist/legacy-root-azm/src/z80/encodeCoreOps.js +0 -131
- package/dist/legacy-root-azm/src/z80/encodeIo.d.ts +0 -9
- package/dist/legacy-root-azm/src/z80/encodeIo.js +0 -128
- package/dist/legacy-root-azm/src/z80/encodeLd.d.ts +0 -13
- package/dist/legacy-root-azm/src/z80/encodeLd.js +0 -273
- package/dist/legacy-root-azm/src/z80/encoderRegistry.d.ts +0 -13
- package/dist/legacy-root-azm/src/z80/encoderRegistry.js +0 -169
- package/dist/src/outputs/write-listing.d.ts +0 -2
- package/dist/src/outputs/write-listing.js +0 -79
- /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/annotate.d.ts +0 -0
- /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/annotate.js +0 -0
- /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/sourceText.d.ts +0 -0
- /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/sourceText.js +0 -0
- /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/summary.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,47 +1,63 @@
|
|
|
1
1
|
# AZM
|
|
2
2
|
|
|
3
|
-
AZM is
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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, Debug80 maps, and optional
|
|
6
|
+
ASM80-compatible lowered source.
|
|
7
|
+
|
|
8
|
+
The user manual is the AZM book in the Debug80 documentation site:
|
|
9
|
+
|
|
10
|
+
[AZM Assembler Manual](https://jhlagado.github.io/debug80-docs/azm-book/book4/)
|
|
11
|
+
|
|
12
|
+
## What AZM Is
|
|
13
|
+
|
|
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
|
+
- exact compatibility spelling for common undotted directive heads such as
|
|
26
|
+
`ORG`, `EQU`, `DB`, `DW`, and `DS`
|
|
27
|
+
- lowercase, case-sensitive canonical dotted directives; compatibility spellings
|
|
28
|
+
are handled as directive aliases, not as canonical AZM style
|
|
29
|
+
- colon labels are address labels only; declarations use name-left forms such as
|
|
30
|
+
`Name .equ`, `Name .enum`, `Name .type`, `Name .union`, and
|
|
31
|
+
`Name .typealias`
|
|
17
32
|
- textual `.include`
|
|
18
|
-
-
|
|
19
|
-
- register-care
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
- `.type` / `.union` layout metadata
|
|
33
|
+
- conditional source inclusion with lowercase `.if`, `.else`, and `.endif`
|
|
34
|
+
- register-care contracts, AZMDoc comments, and `.asmi` external interfaces
|
|
35
|
+
- `op` definitions for structured inline instruction idioms
|
|
36
|
+
- enums and qualified enum constants
|
|
37
|
+
- `.type` / `.union` layout metadata and `Name .typealias TypeExpr` layout aliases
|
|
24
38
|
- compile-time layout constants such as `sizeof(...)`, `offset(...)`, scalar
|
|
25
|
-
layout sizes,
|
|
26
|
-
-
|
|
27
|
-
and
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
layout sizes, constant-only layout casts, `LSB(...)`, and `MSB(...)`
|
|
40
|
+
- case-sensitive AZM function names with documented spelling, such as
|
|
41
|
+
`sizeof(...)`, `offset(...)`, `LSB(...)`, and `MSB(...)`
|
|
42
|
+
- data directives including `.db`, `.dw`, `.ds`, `.cstr`, `.pstr`, and `.istr`
|
|
43
|
+
- single quotes are character literals; double quotes are strings
|
|
44
|
+
|
|
45
|
+
AZM does not implement text macros, local labels, modules/imports, `func`,
|
|
46
|
+
formal arguments, generated stack frames, runtime structured control flow, typed
|
|
47
|
+
assignment lowering, hidden typed load/store lowering, or named section blocks.
|
|
48
|
+
Those features belong to older high-level ZAX-era code paths, not current AZM
|
|
49
|
+
source.
|
|
34
50
|
|
|
35
51
|
## Install
|
|
36
52
|
|
|
37
|
-
|
|
53
|
+
AZM requires Node.js 20 or newer.
|
|
38
54
|
|
|
39
55
|
```sh
|
|
40
56
|
npm install -g @jhlagado/azm
|
|
41
|
-
azm path/to/program.
|
|
57
|
+
azm path/to/program.asm
|
|
42
58
|
```
|
|
43
59
|
|
|
44
|
-
From a checkout, use the local CLI
|
|
60
|
+
From a checkout, build first and then use the local CLI:
|
|
45
61
|
|
|
46
62
|
```sh
|
|
47
63
|
npm ci
|
|
@@ -49,56 +65,69 @@ npm run build
|
|
|
49
65
|
npm run azm -- examples/hello.asm
|
|
50
66
|
```
|
|
51
67
|
|
|
52
|
-
|
|
68
|
+
## Command Line
|
|
53
69
|
|
|
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 |
|
|
70
|
+
Basic use writes the default artifact set next to the source file:
|
|
61
71
|
|
|
62
|
-
|
|
72
|
+
```sh
|
|
73
|
+
azm program.asm
|
|
74
|
+
```
|
|
63
75
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
76
|
+
Write a specific primary output:
|
|
77
|
+
|
|
78
|
+
```sh
|
|
79
|
+
azm --type bin --output build/program.bin program.asm
|
|
80
|
+
azm --type hex --output build/program.hex program.asm
|
|
69
81
|
```
|
|
70
82
|
|
|
71
|
-
|
|
83
|
+
Add include search paths:
|
|
72
84
|
|
|
73
85
|
```sh
|
|
74
|
-
azm
|
|
86
|
+
azm -I include -I vendor program.asm
|
|
75
87
|
```
|
|
76
88
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
89
|
+
Run register-care analysis:
|
|
90
|
+
|
|
91
|
+
```sh
|
|
92
|
+
azm --rc audit --reg-report program.asm
|
|
93
|
+
azm --rc error --interface monitor.asmi program.asm
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
See [docs/reference/cli.md](docs/reference/cli.md) for the complete option
|
|
97
|
+
reference.
|
|
98
|
+
|
|
99
|
+
## Output Artifacts
|
|
100
|
+
|
|
101
|
+
By default, AZM writes the requested primary output plus useful side artifacts
|
|
102
|
+
using the same base path.
|
|
103
|
+
|
|
104
|
+
| Extension | Contents |
|
|
105
|
+
| -------------- | --------------------------------------------- |
|
|
106
|
+
| `.hex` | Intel HEX |
|
|
107
|
+
| `.bin` | flat binary |
|
|
108
|
+
| `.d8.json` | Debug80 map |
|
|
109
|
+
| `.z80` | ASM80-compatible lowered source when enabled |
|
|
110
|
+
| `.regcare.txt` | register-care report when enabled |
|
|
111
|
+
| `.asmi` | inferred register-care interface when enabled |
|
|
112
|
+
|
|
113
|
+
The `.z80` output is a generated compatibility artifact for ASM80-style
|
|
114
|
+
workflows and comparison tooling. BIN, HEX, Debug80 maps, and
|
|
115
|
+
register-care reports are the normal production outputs.
|
|
116
|
+
|
|
117
|
+
## Small Example
|
|
118
|
+
|
|
119
|
+
```asm
|
|
120
|
+
.org 0100H
|
|
121
|
+
|
|
122
|
+
@START:
|
|
123
|
+
ld a,42
|
|
124
|
+
ret
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Compile it:
|
|
128
|
+
|
|
129
|
+
```sh
|
|
130
|
+
azm --type bin --output build/start.bin start.asm
|
|
102
131
|
```
|
|
103
132
|
|
|
104
133
|
## Programmatic API
|
|
@@ -121,7 +150,6 @@ const result = await compile(
|
|
|
121
150
|
sourceRoot: '/abs/path/to/project',
|
|
122
151
|
d8mInputs: {
|
|
123
152
|
hex: '/abs/path/to/project/build/main.hex',
|
|
124
|
-
listing: '/abs/path/to/project/build/main.lst',
|
|
125
153
|
},
|
|
126
154
|
},
|
|
127
155
|
{ formats: defaultFormatWriters },
|
|
@@ -130,21 +158,25 @@ const result = await compile(
|
|
|
130
158
|
console.log(result.diagnostics);
|
|
131
159
|
```
|
|
132
160
|
|
|
133
|
-
See [docs/reference/
|
|
134
|
-
|
|
135
|
-
current API notes.
|
|
161
|
+
See [docs/reference/tooling-api.md](docs/reference/tooling-api.md) for current
|
|
162
|
+
API notes.
|
|
136
163
|
|
|
137
|
-
##
|
|
164
|
+
## Development
|
|
138
165
|
|
|
139
166
|
Useful local verification lanes:
|
|
140
167
|
|
|
141
168
|
```sh
|
|
142
169
|
npm run build
|
|
170
|
+
npm run typecheck
|
|
171
|
+
npm run lint
|
|
143
172
|
npm run test:azm:alpha
|
|
144
173
|
npm run test:azm:corpus
|
|
145
174
|
npm test
|
|
146
175
|
```
|
|
147
176
|
|
|
177
|
+
The live source map is maintained in
|
|
178
|
+
[docs/reference/source-overview.md](docs/reference/source-overview.md).
|
|
179
|
+
|
|
148
180
|
## License
|
|
149
181
|
|
|
150
182
|
GPL-3.0-only. See [LICENSE](LICENSE).
|
|
@@ -20,14 +20,12 @@ export interface CompileNextFunctionOptions {
|
|
|
20
20
|
readonly outputType?: 'bin' | 'hex';
|
|
21
21
|
readonly sourceRoot?: string;
|
|
22
22
|
readonly d8mInputs?: {
|
|
23
|
-
readonly listing?: string;
|
|
24
23
|
readonly hex?: string;
|
|
25
24
|
readonly bin?: string;
|
|
26
25
|
};
|
|
27
26
|
readonly emitBin?: boolean;
|
|
28
27
|
readonly emitHex?: boolean;
|
|
29
28
|
readonly emitD8m?: boolean;
|
|
30
|
-
readonly emitListing?: boolean;
|
|
31
29
|
readonly emitAsm80?: boolean;
|
|
32
30
|
readonly registerCare?: RegisterCareMode;
|
|
33
31
|
readonly emitRegisterReport?: boolean;
|
package/dist/src/api-compile.js
CHANGED
|
@@ -152,7 +152,6 @@ export async function compile(entryFile, options = {}, deps = { formats: default
|
|
|
152
152
|
packageVersion: await readPackageVersion(),
|
|
153
153
|
inputs: {
|
|
154
154
|
entry: normalizedEntry,
|
|
155
|
-
...(options.d8mInputs?.listing !== undefined ? { listing: options.d8mInputs.listing } : {}),
|
|
156
155
|
...(options.d8mInputs?.hex !== undefined ? { hex: options.d8mInputs.hex } : {}),
|
|
157
156
|
...(options.d8mInputs?.bin !== undefined ? { bin: options.d8mInputs.bin } : {}),
|
|
158
157
|
},
|
|
@@ -163,11 +162,6 @@ export async function compile(entryFile, options = {}, deps = { formats: default
|
|
|
163
162
|
};
|
|
164
163
|
artifacts.push(deps.formats.writeD8m(sidecarMap, symbols, d8mOpts));
|
|
165
164
|
}
|
|
166
|
-
if (emit.emitListing) {
|
|
167
|
-
if (deps.formats.writeListing !== undefined) {
|
|
168
|
-
artifacts.push(deps.formats.writeListing(sidecarMap, symbols));
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
165
|
if (emit.emitAsm80) {
|
|
172
166
|
if (deps.formats.writeAsm80 !== undefined) {
|
|
173
167
|
try {
|
|
@@ -183,7 +177,7 @@ export async function compile(entryFile, options = {}, deps = { formats: default
|
|
|
183
177
|
line: error.item.span.line,
|
|
184
178
|
column: error.item.span.column,
|
|
185
179
|
});
|
|
186
|
-
return { diagnostics, artifacts
|
|
180
|
+
return { diagnostics, artifacts };
|
|
187
181
|
}
|
|
188
182
|
throw error;
|
|
189
183
|
}
|
|
@@ -196,9 +190,8 @@ function compileArtifactDefaults(options) {
|
|
|
196
190
|
const emitBin = anyPrimary ? (options.emitBin ?? false) : true;
|
|
197
191
|
const emitHex = anyPrimary ? (options.emitHex ?? false) : true;
|
|
198
192
|
const emitD8m = anyPrimary ? (options.emitD8m ?? false) : true;
|
|
199
|
-
const emitListing = options.emitListing ?? true;
|
|
200
193
|
const emitAsm80 = options.emitAsm80 ?? false;
|
|
201
|
-
return { emitBin, emitHex, emitD8m,
|
|
194
|
+
return { emitBin, emitHex, emitD8m, emitAsm80 };
|
|
202
195
|
}
|
|
203
196
|
function assembledImageToMap(bytes, origin, sourceSegments = []) {
|
|
204
197
|
const map = new Map();
|
|
@@ -52,12 +52,17 @@ function buildAddressStateOnce(items, diagnostics, previous, reportUnknown) {
|
|
|
52
52
|
case 'type':
|
|
53
53
|
defineLayout(layouts, labels, equates, enumNamesLower, item.name, item.layoutKind, item.fields, item.span, diagnostics);
|
|
54
54
|
break;
|
|
55
|
+
case 'type-alias':
|
|
56
|
+
defineTypeAlias(layouts, labels, equates, enumNamesLower, item.name, item.typeExpr, item.span, diagnostics);
|
|
57
|
+
break;
|
|
55
58
|
case 'equ':
|
|
56
59
|
defineEquate(equates, labels, layouts, enumNames, enumNamesLower, item.name, item.expression, item.span, placementAddress(placement), diagnostics, item.stringValue);
|
|
57
60
|
break;
|
|
58
61
|
case 'enum':
|
|
59
62
|
defineEnumMembers(equates, labels, layouts, enumNames, enumNamesLower, item.name, item.members, item.span, diagnostics);
|
|
60
63
|
break;
|
|
64
|
+
case 'comment':
|
|
65
|
+
break;
|
|
61
66
|
case 'label':
|
|
62
67
|
defineLabel(labels, equates, layouts, enumNamesLower, item.name, placementAddress(placement), item.span, diagnostics);
|
|
63
68
|
break;
|
|
@@ -154,7 +159,11 @@ function addressStateSignature(state) {
|
|
|
154
159
|
return JSON.stringify({
|
|
155
160
|
labels: state.labels,
|
|
156
161
|
equates: [...state.equates].map(([name, record]) => [name, record.currentLocation]),
|
|
157
|
-
layouts: [...state.layouts].map(([name, record]) => [
|
|
162
|
+
layouts: [...state.layouts].map(([name, record]) => [
|
|
163
|
+
name,
|
|
164
|
+
record.kind,
|
|
165
|
+
record.kind === 'alias' ? record.typeExpr : record.fields,
|
|
166
|
+
]),
|
|
158
167
|
origin: state.origin,
|
|
159
168
|
});
|
|
160
169
|
}
|
|
@@ -178,6 +187,17 @@ function defineLayout(layouts, labels, equates, enumNamesLower, name, layoutKind
|
|
|
178
187
|
}
|
|
179
188
|
layouts.set(name, { kind: layoutKind, fields, span });
|
|
180
189
|
}
|
|
190
|
+
function defineTypeAlias(layouts, labels, equates, enumNamesLower, name, typeExpr, span, diagnostics) {
|
|
191
|
+
const lowerName = name.toLowerCase();
|
|
192
|
+
if (hasCaseInsensitiveMapKey(layouts, lowerName) ||
|
|
193
|
+
hasCaseInsensitiveKey(labels, lowerName) ||
|
|
194
|
+
hasCaseInsensitiveMapKey(equates, lowerName) ||
|
|
195
|
+
enumNamesLower.has(lowerName)) {
|
|
196
|
+
diagnostics.push(diagnostic(span, `duplicate type name: ${name}`));
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
layouts.set(name, { kind: 'alias', typeExpr, span });
|
|
200
|
+
}
|
|
181
201
|
function defineLabel(labels, equates, layouts, enumNamesLower, name, address, span, diagnostics) {
|
|
182
202
|
if (labels[name] !== undefined ||
|
|
183
203
|
equates.has(name) ||
|
|
@@ -7,7 +7,6 @@ export function cliUsage() {
|
|
|
7
7
|
'Options:',
|
|
8
8
|
' -o, --output <file> Primary output path (must match --type extension)',
|
|
9
9
|
' -t, --type <type> Primary output type: hex|bin (default: hex)',
|
|
10
|
-
' -n, --nolist Suppress .lst',
|
|
11
10
|
' --nobin Suppress .bin',
|
|
12
11
|
' --nohex Suppress .hex',
|
|
13
12
|
' --nod8m Suppress .d8.json',
|
|
@@ -44,7 +43,6 @@ function createDefaultCliState() {
|
|
|
44
43
|
emitBin: true,
|
|
45
44
|
emitHex: true,
|
|
46
45
|
emitD8m: true,
|
|
47
|
-
emitListing: true,
|
|
48
46
|
emitAsm80: false,
|
|
49
47
|
caseStyle: 'off',
|
|
50
48
|
registerCare: 'off',
|
|
@@ -249,7 +247,6 @@ function finalizeCliOptions(state) {
|
|
|
249
247
|
emitBin: state.emitBin,
|
|
250
248
|
emitHex: state.emitHex,
|
|
251
249
|
emitD8m: state.emitD8m,
|
|
252
|
-
emitListing: state.emitListing,
|
|
253
250
|
emitAsm80: state.emitAsm80,
|
|
254
251
|
caseStyle: state.caseStyle,
|
|
255
252
|
registerCare: state.registerCare,
|
|
@@ -278,10 +275,6 @@ export function parseCliArgs(argv) {
|
|
|
278
275
|
continue;
|
|
279
276
|
if (parseOutputTypeArg(arg, argv, indexRef, state))
|
|
280
277
|
continue;
|
|
281
|
-
if (arg === '-n' || arg === '--nolist') {
|
|
282
|
-
state.emitListing = false;
|
|
283
|
-
continue;
|
|
284
|
-
}
|
|
285
278
|
if (arg === '--nobin') {
|
|
286
279
|
state.emitBin = false;
|
|
287
280
|
continue;
|
|
@@ -52,7 +52,6 @@ export async function writeArtifacts(base, artifacts, outputType) {
|
|
|
52
52
|
const hexPath = `${base}.hex`;
|
|
53
53
|
const binPath = `${base}.bin`;
|
|
54
54
|
const d8mPath = `${base}.d8.json`;
|
|
55
|
-
const lstPath = `${base}.lst`;
|
|
56
55
|
const asm80Path = `${base}.z80`;
|
|
57
56
|
const registerCareReportPath = `${base}.regcare.txt`;
|
|
58
57
|
const registerCareInterfacePath = `${base}.asmi`;
|
|
@@ -90,13 +89,6 @@ export async function writeArtifacts(base, artifacts, outputType) {
|
|
|
90
89
|
await writeFile(d8mPath, `${text}\n`, 'utf8');
|
|
91
90
|
})());
|
|
92
91
|
}
|
|
93
|
-
const lst = byKind.get('lst');
|
|
94
|
-
if (lst && lst.kind === 'lst') {
|
|
95
|
-
writes.push((async () => {
|
|
96
|
-
await ensureDir(lstPath);
|
|
97
|
-
await writeFile(lstPath, lst.text, 'utf8');
|
|
98
|
-
})());
|
|
99
|
-
}
|
|
100
92
|
const asm80 = byKind.get('asm80');
|
|
101
93
|
if (asm80 && asm80.kind === 'asm80') {
|
|
102
94
|
writes.push((async () => {
|
|
@@ -141,14 +133,12 @@ export async function writeArtifacts(base, artifacts, outputType) {
|
|
|
141
133
|
export function buildCompileOptions(parsed, base) {
|
|
142
134
|
const hexPath = `${base}.hex`;
|
|
143
135
|
const binPath = `${base}.bin`;
|
|
144
|
-
const lstPath = `${base}.lst`;
|
|
145
136
|
return {
|
|
146
137
|
includeDirs: parsed.includeDirs,
|
|
147
138
|
directiveAliasFiles: parsed.directiveAliasFiles,
|
|
148
139
|
emitBin: parsed.emitBin,
|
|
149
140
|
emitHex: parsed.emitHex,
|
|
150
141
|
emitD8m: parsed.emitD8m,
|
|
151
|
-
emitListing: parsed.emitListing,
|
|
152
142
|
emitAsm80: parsed.emitAsm80,
|
|
153
143
|
caseStyle: parsed.caseStyle,
|
|
154
144
|
registerCare: parsed.registerCare,
|
|
@@ -165,7 +155,6 @@ export function buildCompileOptions(parsed, base) {
|
|
|
165
155
|
...(parsed.sourceRoot !== undefined
|
|
166
156
|
? {
|
|
167
157
|
d8mInputs: {
|
|
168
|
-
...(parsed.emitListing ? { listing: lstPath } : {}),
|
|
169
158
|
...(parsed.emitHex ? { hex: hexPath } : {}),
|
|
170
159
|
...(parsed.emitBin ? { bin: binPath } : {}),
|
|
171
160
|
},
|