From a67b8fec1ece6b1716107f2fdeb64a48434f714f Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Mon, 25 Jan 2021 21:21:01 +0100 Subject: [PATCH] disabled function keys for non-direct mode and for MONITOR --- src/kernal/screen/chrin_programmable_keys.s | 20 +++++++++++++------- src/mon_m65/,aliases_mon.s | 6 +++++- src/mon_m65/bsmon.s | 3 ++- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/kernal/screen/chrin_programmable_keys.s b/src/kernal/screen/chrin_programmable_keys.s index 8f79d65a..05b55ba1 100644 --- a/src/kernal/screen/chrin_programmable_keys.s +++ b/src/kernal/screen/chrin_programmable_keys.s @@ -13,33 +13,39 @@ chrin_programmable_keys: + ; Check if in direct mode + + ldx CURLIN+1 + inx + bne @2 + ; Check if the key is programmable ldx #(__programmable_keys_codes_end - programmable_keys_codes - 1) @1: cmp programmable_keys_codes, x - beq @2 + beq @3 dex bpl @1 ; This is not a programmable key - +@2: sec rts -@2: +@3: ; .X contains index of the key code, we need offset to key string instead lda programmable_keys_offsets, x tax ; Print all the characters assigned to key -@3: +@4: lda programmable_keys_strings, x - beq @4 + beq @5 jsr CHROUT ; our implementation preserves .X too inx - bne @3 ; jumps always -@4: + bne @4 ; jumps always +@5: clc rts diff --git a/src/mon_m65/,aliases_mon.s b/src/mon_m65/,aliases_mon.s index 280cd665..1fce51ab 100644 --- a/src/mon_m65/,aliases_mon.s +++ b/src/mon_m65/,aliases_mon.s @@ -59,7 +59,11 @@ !addr Op_Ix = $2E ; type of constant !addr Op_Len = $2F ; length of operand - ; $30-$62 - free space, unused for now + ; $30-$39 - free space, unused for now + +!addr Key_Direct = $3A ; same as CURLIN+1 + + ; $3B-$62 - free space, unused for now !addr Byte_TMP = $63 ; temporary byte !addr Long_TMP = $64 ; temporary pointer, for fetching/storing memory content; has to be the same as Long__TMP in Kernal diff --git a/src/mon_m65/bsmon.s b/src/mon_m65/bsmon.s index d024056c..354efd70 100644 --- a/src/mon_m65/bsmon.s +++ b/src/mon_m65/bsmon.s @@ -43,7 +43,8 @@ Mon_Start: TSX STX SPL STX SP_Storage - LDA #$c0 + LDA #$C0 + STA Key_Direct ; to disable function keys JSR SETMSG CLI +NOP