From bcdf3f2b83c5670f1824340fc7f6826d22a79047 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Sat, 9 Feb 2019 17:55:18 +0100 Subject: [PATCH] improved zero page address addresses for floating point support mode --- compiler/src/prog8/compiler/target/c64/AsmGen.kt | 9 +++++++++ compiler/src/prog8/compiler/target/c64/Commodore64.kt | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/compiler/src/prog8/compiler/target/c64/AsmGen.kt b/compiler/src/prog8/compiler/target/c64/AsmGen.kt index 3af75b330..080e7d7c0 100644 --- a/compiler/src/prog8/compiler/target/c64/AsmGen.kt +++ b/compiler/src/prog8/compiler/target/c64/AsmGen.kt @@ -186,6 +186,15 @@ class AsmGen(val options: CompilationOptions, val program: IntermediateProgram, } } + if(zeropage.exitProgramStrategy!=Zeropage.ExitProgramStrategy.CLEAN_EXIT) { + // disable shift-commodore charset switching and run/stop key + out(" lda #$80") + out(" lda #$80") + out(" sta 657\t; disable charset switching") + out(" lda #239") + out(" sta 808\t; disable run/stop key") + } + out(" ldx #\$ff\t; init estack pointer") out(" ; initialize the variables in each block") for(block in program.blocks) { diff --git a/compiler/src/prog8/compiler/target/c64/Commodore64.kt b/compiler/src/prog8/compiler/target/c64/Commodore64.kt index a71dfe4f0..e00721374 100644 --- a/compiler/src/prog8/compiler/target/c64/Commodore64.kt +++ b/compiler/src/prog8/compiler/target/c64/Commodore64.kt @@ -34,8 +34,8 @@ class C64Zeropage(options: CompilationOptions) : Zeropage(options) { } override val exitProgramStrategy: ExitProgramStrategy = when(options.zeropage) { - ZeropageType.BASICSAFE, ZeropageType.FLOATSAFE -> ExitProgramStrategy.CLEAN_EXIT - ZeropageType.KERNALSAFE, ZeropageType.FULL -> ExitProgramStrategy.SYSTEM_RESET + ZeropageType.BASICSAFE -> ExitProgramStrategy.CLEAN_EXIT + ZeropageType.FLOATSAFE, ZeropageType.KERNALSAFE, ZeropageType.FULL -> ExitProgramStrategy.SYSTEM_RESET }