From 1cc254fa18852381ad18acab2b96675908d1bf82 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sat, 29 Aug 2020 21:33:09 +0200 Subject: [PATCH] work towards quote mode in MEGA65 screen editor --- .../screen_m65/mega65_chrout_screen_control.s | 8 +++---- .../mega65_chrout_screen_control_2.s | 17 ++++---------- src/kernal/screen_m65/mega65_screen_quote.s | 23 +++++++++++++++++++ 3 files changed, 32 insertions(+), 16 deletions(-) create mode 100644 src/kernal/screen_m65/mega65_screen_quote.s diff --git a/src/kernal/screen_m65/mega65_chrout_screen_control.s b/src/kernal/screen_m65/mega65_chrout_screen_control.s index 55cf1b07..57719d76 100644 --- a/src/kernal/screen_m65/mega65_chrout_screen_control.s +++ b/src/kernal/screen_m65/mega65_chrout_screen_control.s @@ -75,8 +75,6 @@ m65_chrout_try_color_loop: // XXX: implement screen routines below: -m65_chrout_screen_quote: - nop m65_chrout_screen_CLR: nop m65_chrout_screen_HOME: @@ -101,9 +99,11 @@ m65_chrout_screen_ESC: nop m65_chrout_screen_BELL: nop -m65_chrout_screen_STOP: - nop m65_chrout_screen_DEL: nop +m65_chrout_screen_GFX: + nop +m65_chrout_screen_TXT: + nop jmp m65_chrout_screen_done diff --git a/src/kernal/screen_m65/mega65_chrout_screen_control_2.s b/src/kernal/screen_m65/mega65_chrout_screen_control_2.s index 8ebfcfa2..61f8e8c8 100644 --- a/src/kernal/screen_m65/mega65_chrout_screen_control_2.s +++ b/src/kernal/screen_m65/mega65_chrout_screen_control_2.s @@ -41,18 +41,11 @@ m65_chrout_screen_SHIFT_OFF: jmp_8 m65_chrout_screen_ctrl2_end -// GFX/TXT switching support +// STOP key support -m65_chrout_screen_GFX: +m65_chrout_screen_STOP: - lda VIC_YMCSB - and #$02 // to upper case -!: - sta VIC_YMCSB + lda #$00 + sta QTSW + sta INSRT jmp_8 m65_chrout_screen_ctrl2_end - -m65_chrout_screen_TXT: - - lda VIC_YMCSB - ora #$02 // to lower case - bne !- // branch always diff --git a/src/kernal/screen_m65/mega65_screen_quote.s b/src/kernal/screen_m65/mega65_screen_quote.s new file mode 100644 index 00000000..7e89455c --- /dev/null +++ b/src/kernal/screen_m65/mega65_screen_quote.s @@ -0,0 +1,23 @@ + +// #LAYOUT# M65 KERNAL_1 #TAKE +// #LAYOUT# * * #IGNORE + +// +// CHROUT routine - screen support, control codes in quote mode, MEGA65 native mode version +// + + +m65_chrout_screen_quote: + + // Low control codes are just +$80 + clc + adc #$80 + + // If it overflowed, then it is a high control code, + // so we need to make it be $80 + $40 + char + // as we will have flipped back to just $00 + char, we should + // now add $c0 if C is set from overflow + bcc !+ + adc #$BF // C=1, so adding $BF + C = add $C0 +!: + jmp m65_chrout_screen_literal