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; 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