From 3ca3725cba5a9977d0f33be27967520aaeb9846f Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 12 Jan 2020 13:12:16 +0100 Subject: [PATCH] small cleanup in BASIC, improved cartridge compatibility --- Makefile | 45 +++++++++++----------- c64/basic/{ => ,stubs}/a408.interop | 0 c64/basic/{ => ,stubs}/a408.reason.s | 0 c64/basic/{ => ,stubs}/a453.interop | 0 c64/basic/{ => ,stubs}/a453.unknown.s | 0 c64/basic/{ => ,stubs}/a483.main.s | 0 c64/basic/{ => ,stubs}/a57c.chrnch.s | 0 c64/basic/{ => ,stubs}/a57c.interop | 0 c64/basic/{ => ,stubs}/a644.interop | 0 c64/basic/{ => ,stubs}/a644.new.s | 0 c64/basic/{ => ,stubs}/a659.interop | 0 c64/basic/{ => ,stubs}/a659.setcharptr.s | 0 c64/basic/{ => ,stubs}/a71a.interop | 0 c64/basic/{ => ,stubs}/a71a.qplop.s | 0 c64/basic/{ => ,stubs}/a7e4.gone.s | 0 c64/basic/{ => ,stubs}/a7e4.interop | 0 c64/basic/{ => ,stubs}/ad9e.frmevl.s | 0 c64/basic/{ => ,stubs}/ad9e.interop | 0 c64/basic/{ => ,stubs}/ae86.eval.s | 0 c64/basic/{ => ,stubs}/ae86.interop | 0 c64/basic/{ => ,stubs}/e38b.error.s | 0 c64/basic/{ => ,stubs}/e38b.interop | 0 c64/basic/{ => ,stubs}/e3bf.init.s | 0 c64/basic/{ => ,stubs}/e3bf.interop | 0 c64/basic/{ => ,stubs}/e453.interop | 0 c64/basic/{ => ,stubs}/e453.rvect.s | 0 c64/basic/init/basic_cold_start_internal.s | 5 +++ c64/basic/init/initmsg_real.s | 4 ++ 28 files changed, 32 insertions(+), 22 deletions(-) rename c64/basic/{ => ,stubs}/a408.interop (100%) rename c64/basic/{ => ,stubs}/a408.reason.s (100%) rename c64/basic/{ => ,stubs}/a453.interop (100%) rename c64/basic/{ => ,stubs}/a453.unknown.s (100%) rename c64/basic/{ => ,stubs}/a483.main.s (100%) rename c64/basic/{ => ,stubs}/a57c.chrnch.s (100%) rename c64/basic/{ => ,stubs}/a57c.interop (100%) rename c64/basic/{ => ,stubs}/a644.interop (100%) rename c64/basic/{ => ,stubs}/a644.new.s (100%) rename c64/basic/{ => ,stubs}/a659.interop (100%) rename c64/basic/{ => ,stubs}/a659.setcharptr.s (100%) rename c64/basic/{ => ,stubs}/a71a.interop (100%) rename c64/basic/{ => ,stubs}/a71a.qplop.s (100%) rename c64/basic/{ => ,stubs}/a7e4.gone.s (100%) rename c64/basic/{ => ,stubs}/a7e4.interop (100%) rename c64/basic/{ => ,stubs}/ad9e.frmevl.s (100%) rename c64/basic/{ => ,stubs}/ad9e.interop (100%) rename c64/basic/{ => ,stubs}/ae86.eval.s (100%) rename c64/basic/{ => ,stubs}/ae86.interop (100%) rename c64/basic/{ => ,stubs}/e38b.error.s (100%) rename c64/basic/{ => ,stubs}/e38b.interop (100%) rename c64/basic/{ => ,stubs}/e3bf.init.s (100%) rename c64/basic/{ => ,stubs}/e3bf.interop (100%) rename c64/basic/{ => ,stubs}/e453.interop (100%) rename c64/basic/{ => ,stubs}/e453.rvect.s (100%) diff --git a/Makefile b/Makefile index a33aa1b2..fe065856 100644 --- a/Makefile +++ b/Makefile @@ -9,30 +9,31 @@ TESTTAPE = testsuite/testtape-c64-pal-turbo.tap SRCDIR_COMMON = c64/aliases SRCDIR_BASIC = $(SRCDIR_COMMON) \ - c64/basic \ - c64/basic/commands \ - c64/basic/init \ - c64/basic/rom_revision + c64/basic \ + c64/basic/,stubs \ + c64/basic/commands \ + c64/basic/init \ + c64/basic/rom_revision SRCDIR_KERNAL = $(SRCDIR_COMMON) \ - c64/kernal \ - c64/kernal/,stubs \ - c64/kernal/assets \ - c64/kernal/banking \ - c64/kernal/iec \ - c64/kernal/iec_fast \ - c64/kernal/init \ - c64/kernal/interrupts \ - c64/kernal/iostack \ - c64/kernal/jumptable \ - c64/kernal/keyboard \ - c64/kernal/memory \ - c64/kernal/print \ - c64/kernal/rom_revision \ - c64/kernal/rs232 \ - c64/kernal/screen \ - c64/kernal/tape \ - c64/kernal/time + c64/kernal \ + c64/kernal/,stubs \ + c64/kernal/assets \ + c64/kernal/banking \ + c64/kernal/iec \ + c64/kernal/iec_fast \ + c64/kernal/init \ + c64/kernal/interrupts \ + c64/kernal/iostack \ + c64/kernal/jumptable \ + c64/kernal/keyboard \ + c64/kernal/memory \ + c64/kernal/print \ + c64/kernal/rom_revision \ + c64/kernal/rs232 \ + c64/kernal/screen \ + c64/kernal/tape \ + c64/kernal/time SRC_TOOLS = $(wildcard src/tools/*.c,src/tools/*.cc) diff --git a/c64/basic/a408.interop b/c64/basic/,stubs/a408.interop similarity index 100% rename from c64/basic/a408.interop rename to c64/basic/,stubs/a408.interop diff --git a/c64/basic/a408.reason.s b/c64/basic/,stubs/a408.reason.s similarity index 100% rename from c64/basic/a408.reason.s rename to c64/basic/,stubs/a408.reason.s diff --git a/c64/basic/a453.interop b/c64/basic/,stubs/a453.interop similarity index 100% rename from c64/basic/a453.interop rename to c64/basic/,stubs/a453.interop diff --git a/c64/basic/a453.unknown.s b/c64/basic/,stubs/a453.unknown.s similarity index 100% rename from c64/basic/a453.unknown.s rename to c64/basic/,stubs/a453.unknown.s diff --git a/c64/basic/a483.main.s b/c64/basic/,stubs/a483.main.s similarity index 100% rename from c64/basic/a483.main.s rename to c64/basic/,stubs/a483.main.s diff --git a/c64/basic/a57c.chrnch.s b/c64/basic/,stubs/a57c.chrnch.s similarity index 100% rename from c64/basic/a57c.chrnch.s rename to c64/basic/,stubs/a57c.chrnch.s diff --git a/c64/basic/a57c.interop b/c64/basic/,stubs/a57c.interop similarity index 100% rename from c64/basic/a57c.interop rename to c64/basic/,stubs/a57c.interop diff --git a/c64/basic/a644.interop b/c64/basic/,stubs/a644.interop similarity index 100% rename from c64/basic/a644.interop rename to c64/basic/,stubs/a644.interop diff --git a/c64/basic/a644.new.s b/c64/basic/,stubs/a644.new.s similarity index 100% rename from c64/basic/a644.new.s rename to c64/basic/,stubs/a644.new.s diff --git a/c64/basic/a659.interop b/c64/basic/,stubs/a659.interop similarity index 100% rename from c64/basic/a659.interop rename to c64/basic/,stubs/a659.interop diff --git a/c64/basic/a659.setcharptr.s b/c64/basic/,stubs/a659.setcharptr.s similarity index 100% rename from c64/basic/a659.setcharptr.s rename to c64/basic/,stubs/a659.setcharptr.s diff --git a/c64/basic/a71a.interop b/c64/basic/,stubs/a71a.interop similarity index 100% rename from c64/basic/a71a.interop rename to c64/basic/,stubs/a71a.interop diff --git a/c64/basic/a71a.qplop.s b/c64/basic/,stubs/a71a.qplop.s similarity index 100% rename from c64/basic/a71a.qplop.s rename to c64/basic/,stubs/a71a.qplop.s diff --git a/c64/basic/a7e4.gone.s b/c64/basic/,stubs/a7e4.gone.s similarity index 100% rename from c64/basic/a7e4.gone.s rename to c64/basic/,stubs/a7e4.gone.s diff --git a/c64/basic/a7e4.interop b/c64/basic/,stubs/a7e4.interop similarity index 100% rename from c64/basic/a7e4.interop rename to c64/basic/,stubs/a7e4.interop diff --git a/c64/basic/ad9e.frmevl.s b/c64/basic/,stubs/ad9e.frmevl.s similarity index 100% rename from c64/basic/ad9e.frmevl.s rename to c64/basic/,stubs/ad9e.frmevl.s diff --git a/c64/basic/ad9e.interop b/c64/basic/,stubs/ad9e.interop similarity index 100% rename from c64/basic/ad9e.interop rename to c64/basic/,stubs/ad9e.interop diff --git a/c64/basic/ae86.eval.s b/c64/basic/,stubs/ae86.eval.s similarity index 100% rename from c64/basic/ae86.eval.s rename to c64/basic/,stubs/ae86.eval.s diff --git a/c64/basic/ae86.interop b/c64/basic/,stubs/ae86.interop similarity index 100% rename from c64/basic/ae86.interop rename to c64/basic/,stubs/ae86.interop diff --git a/c64/basic/e38b.error.s b/c64/basic/,stubs/e38b.error.s similarity index 100% rename from c64/basic/e38b.error.s rename to c64/basic/,stubs/e38b.error.s diff --git a/c64/basic/e38b.interop b/c64/basic/,stubs/e38b.interop similarity index 100% rename from c64/basic/e38b.interop rename to c64/basic/,stubs/e38b.interop diff --git a/c64/basic/e3bf.init.s b/c64/basic/,stubs/e3bf.init.s similarity index 100% rename from c64/basic/e3bf.init.s rename to c64/basic/,stubs/e3bf.init.s diff --git a/c64/basic/e3bf.interop b/c64/basic/,stubs/e3bf.interop similarity index 100% rename from c64/basic/e3bf.interop rename to c64/basic/,stubs/e3bf.interop diff --git a/c64/basic/e453.interop b/c64/basic/,stubs/e453.interop similarity index 100% rename from c64/basic/e453.interop rename to c64/basic/,stubs/e453.interop diff --git a/c64/basic/e453.rvect.s b/c64/basic/,stubs/e453.rvect.s similarity index 100% rename from c64/basic/e453.rvect.s rename to c64/basic/,stubs/e453.rvect.s diff --git a/c64/basic/init/basic_cold_start_internal.s b/c64/basic/init/basic_cold_start_internal.s index 139e12a6..01e4ea6a 100644 --- a/c64/basic/init/basic_cold_start_internal.s +++ b/c64/basic/init/basic_cold_start_internal.s @@ -31,6 +31,11 @@ basic_cold_start_internal: lda #>do_ILLEGAL_QUANTITY_error sta USRADD+1 + // Clear the BRK location address + lda #$00 + sta CMP0+0 + sta CMP0+1 + // Print startup messages jsr INITMSG diff --git a/c64/basic/init/initmsg_real.s b/c64/basic/init/initmsg_real.s index 7158d7d6..107ce04e 100644 --- a/c64/basic/init/initmsg_real.s +++ b/c64/basic/init/initmsg_real.s @@ -5,6 +5,10 @@ initmsg_real: + // Clear the screen first, some cartridges (like IEEE-488) leeave a mess on the screen + lda #147 + jsr JCHROUT + #if CONFIG_BANNER_SIMPLE lda #