From 5adb7fe511d112558e4675d613782c3a6e850b4d Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Tue, 15 Dec 2020 23:01:40 +0100 Subject: [PATCH] modified PRIMM to preserve .Y --- src/kernal/print/primm.s | 4 +++- src/mon_m65/bsmon_glue.s | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/kernal/print/primm.s b/src/kernal/print/primm.s index 00df50ea..466bcbf0 100644 --- a/src/kernal/print/primm.s +++ b/src/kernal/print/primm.s @@ -2,7 +2,7 @@ ;; #LAYOUT# * * #IGNORE -; 'Print immediate', original implementation by Mike Barry, adapted to 65CE02 +; 'Print immediate', original implementation by Mike Barry, adapted to 65CE02, modified to preserve .Y ; see http://www.6502.org/source/io/primm.htm @@ -12,6 +12,7 @@ PRIMM: sta PTR1 pla ; get high part of (string address-1) sta PTR2 + phy +bra @2 @1: jsr JCHROUT ; output a string char @@ -23,6 +24,7 @@ PRIMM: ldy #$00 lda (PTR1), y ; get string char bne @1 ; output and continue if not NUL + ply lda PTR2 pha lda PTR1 diff --git a/src/mon_m65/bsmon_glue.s b/src/mon_m65/bsmon_glue.s index f35929ad..031db660 100644 --- a/src/mon_m65/bsmon_glue.s +++ b/src/mon_m65/bsmon_glue.s @@ -1,4 +1,4 @@ -; 'Print immediate', original implementation by Mike Barry, adapted to 65CE02 +; 'Print immediate', original implementation by Mike Barry, adapted to 65CE02, modified to preserve .Y ; see http://www.6502.org/source/io/primm.htm PRIMM: @@ -7,9 +7,10 @@ PRIMM: sta PTR1 pla ; get high part of (string address-1) sta PTR2 + phy +bra @2 @1: - jsr CHROUT ; output a string char + jsr CHROUT ; output a string char @2: inc PTR1 ; advance the string pointer bne @3 @@ -18,6 +19,7 @@ PRIMM: ldy #$00 lda (PTR1), y ; get string char bne @1 ; output and continue if not NUL + ply lda PTR2 pha lda PTR1