From 907d8b26c584b8a46af0adc5b46d98562d10d347 Mon Sep 17 00:00:00 2001 From: mrdudz Date: Fri, 11 Jul 2025 18:33:38 +0200 Subject: [PATCH 1/2] simple regression test for .charmap --- test/asm/val/charmap.s | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 test/asm/val/charmap.s diff --git a/test/asm/val/charmap.s b/test/asm/val/charmap.s new file mode 100644 index 000000000..0a908ef13 --- /dev/null +++ b/test/asm/val/charmap.s @@ -0,0 +1,43 @@ + .setcpu "6502" + + .import _exit + .export _main + + .charmap $41, 0 + .charmap $42, 1 + .charmap $43, 2 +mapped: + .byte "ABC" + + .include "ascii_charmap.inc" +ascii: + .byte "ABC" + +_main: + ldx #$01 + + lda mapped+0 + cmp #0 + bne error + lda mapped+1 + cmp #1 + bne error + lda mapped+2 + cmp #2 + bne error + + lda ascii+0 + cmp #$41 + bne error + lda ascii+1 + cmp #$42 + bne error + lda ascii+2 + cmp #$43 + bne error + + ldx #$00 + +error: + txa + jmp _exit From c13f7dbdadb4cb52e7c29a939f6af567486f2bc2 Mon Sep 17 00:00:00 2001 From: mrdudz Date: Fri, 11 Jul 2025 18:44:58 +0200 Subject: [PATCH 2/2] fix range check --- src/ca65/pseudo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ca65/pseudo.c b/src/ca65/pseudo.c index 5ce4e8c6e..88f609e25 100644 --- a/src/ca65/pseudo.c +++ b/src/ca65/pseudo.c @@ -642,7 +642,7 @@ static void DoCharMap (void) /* Read the index as numerical value */ Index = ConstExpression (); - if (IsByteRange (Index)) { + if (!IsByteRange (Index)) { /* Value out of range */ ErrorSkip ("Index must be in byte range"); return;