Changes resulting from 2nd code review

This commit is contained in:
IrgendwerA8 2020-02-02 18:21:25 +01:00 committed by Oliver Schmidt
parent 002d1801ec
commit 08705a3fdc
32 changed files with 372 additions and 402 deletions

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,46 +3,46 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
; Data covering all possible combinations of character flags for target specific definition
;
.include "ctype.inc"
.export __ctype
.include "ctype.inc"
.export __ctype
; Table definition covering all possible ctype combinations
.rodata
__ctype:
ct_none: .byte CT_NONE
ct_lower: .byte CT_LOWER
ct_upper: .byte CT_UPPER
ct_digit_xdigit: .byte CT_DIGIT | CT_XDIGIT
ct_lower_xdigit: .byte CT_LOWER | CT_XDIGIT
ct_upper_xdigit: .byte CT_UPPER | CT_XDIGIT
ct_ctrl: .byte CT_CTRL
ct_ws: .byte CT_OTHER_WS
ct_ctrl_ws: .byte CT_CTRL | CT_OTHER_WS
ct_space_spacetab: .byte CT_SPACE | CT_SPACE_TAB
ct_ctrl_ws_spacetab: .byte CT_CTRL | CT_OTHER_WS | CT_SPACE_TAB
ct_none: .byte CT_NONE
ct_lower: .byte CT_LOWER
ct_upper: .byte CT_UPPER
ct_digit_xdigit: .byte CT_DIGIT | CT_XDIGIT
ct_lower_xdigit: .byte CT_LOWER | CT_XDIGIT
ct_upper_xdigit: .byte CT_UPPER | CT_XDIGIT
ct_ctrl: .byte CT_CTRL
ct_ws: .byte CT_OTHER_WS
ct_ctrl_ws: .byte CT_CTRL | CT_OTHER_WS
ct_space_spacetab: .byte CT_SPACE | CT_SPACE_TAB
ct_ctrl_ws_spacetab: .byte CT_CTRL | CT_OTHER_WS | CT_SPACE_TAB
; build indices out of the table above:
CT_NONE_IDX = ct_none - __ctype
CT_LOWER_IDX = ct_lower - __ctype
CT_UPPER_IDX = ct_upper - __ctype
CT_DIGIT_XDIGIT_IDX = ct_digit_xdigit - __ctype
CT_LOWER_XDIGIT_IDX = ct_lower_xdigit - __ctype
CT_UPPER_XDIGIT_IDX = ct_upper_xdigit - __ctype
CT_CTRL_IDX = ct_ctrl - __ctype
CT_WS_IDX = ct_ws - __ctype
CT_CTRL_WS_IDX = ct_ctrl_ws - __ctype
CT_SPACE_SPACETAB_IDX = ct_space_spacetab - __ctype
CT_NONE_IDX = ct_none - __ctype
CT_LOWER_IDX = ct_lower - __ctype
CT_UPPER_IDX = ct_upper - __ctype
CT_DIGIT_XDIGIT_IDX = ct_digit_xdigit - __ctype
CT_LOWER_XDIGIT_IDX = ct_lower_xdigit - __ctype
CT_UPPER_XDIGIT_IDX = ct_upper_xdigit - __ctype
CT_CTRL_IDX = ct_ctrl - __ctype
CT_WS_IDX = ct_ws - __ctype
CT_CTRL_WS_IDX = ct_ctrl_ws - __ctype
CT_SPACE_SPACETAB_IDX = ct_space_spacetab - __ctype
CT_CTRL_WS_SPACETAB_IDX = ct_ctrl_ws_spacetab - __ctype
.macro ct_mix lower, upper
.byte ((lower) & $0F) | ((upper) << 4)
.byte ((lower) & $0F) | ((upper) << 4)
.endmacro

View File

@ -1,5 +0,0 @@
; Character specification table.
;
; uses the "console" definition
.include "ctype_console.inc"

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -1,9 +1,9 @@
; ctype_console.inc
; ctype.s
;
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -13,10 +13,10 @@
.export _isascii
_isascii:
asl a ; high-bit to carry
txa ; check range of input param
bne @L1 ; out-of bounds?
adc #$FF ; calculate return value based on carry
asl a ; high-bit to carry
txa ; check range of input param
bne @L1 ; out-of bounds?
adc #$FF ; calculate return value based on carry
rts
@L1: lda #$00 ; return false

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -14,7 +14,7 @@
.export _isblank
.include "ctype.inc"
.import ctype_preprocessor
.import ctype_preprocessor
_isblank:
jsr ctype_preprocessor ; (clears always x)

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -12,7 +12,7 @@
.export _iscntrl
.include "ctype.inc"
.import ctype_preprocessor
.import ctype_preprocessor
_iscntrl:
jsr ctype_preprocessor ; (clears always x)

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -17,9 +17,9 @@
_isgraph:
jsr ctype_preprocessor ; (clears always x)
bcs @L1 ; out of range? (everything already clear -> false)
and #CT_CTRL_SPACE ; mask character bits
cmp #1 ; if false, then set "borrow" flag
and #CT_CTRL_SPACE ; mask character bits
cmp #1 ; if false, then set "borrow" flag
lda #0
sbc #0 ; invert logic (return NOT control and NOT space)
sbc #0 ; invert logic (return NOT control and NOT space)
@L1: rts

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -12,7 +12,7 @@
.export _islower
.include "ctype.inc"
.import ctype_preprocessor
.import ctype_preprocessor
_islower:
jsr ctype_preprocessor ; (clears always x)

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -12,7 +12,7 @@
.export _isprint
.include "ctype.inc"
.import ctype_preprocessor
.import ctype_preprocessor
_isprint:
jsr ctype_preprocessor ; (clears always x)

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -12,7 +12,7 @@
.export _ispunct
.include "ctype.inc"
.import ctype_preprocessor
.import ctype_preprocessor
_ispunct:
jsr ctype_preprocessor ; (clears always x)

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -12,7 +12,7 @@
.export _isspace
.include "ctype.inc"
.import ctype_preprocessor
.import ctype_preprocessor
_isspace:
jsr ctype_preprocessor ; (clears always x)

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -12,7 +12,7 @@
.export _isupper
.include "ctype.inc"
.import ctype_preprocessor
.import ctype_preprocessor
_isupper:
jsr ctype_preprocessor ; (clears always x)

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -12,7 +12,7 @@
.export _isxdigit
.include "ctype.inc"
.import ctype_preprocessor
.import ctype_preprocessor
_isxdigit:
jsr ctype_preprocessor ; (clears always x)

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
@ -27,7 +27,7 @@ _strcasecmp:
loop: lda (ptr2),y ; get char from second string
sta tmp2 ; and save it
; get character classification
jsr ctype_preprocessor_no_check
jsr ctype_preprocessor_no_check
and #CT_LOWER ; lower case char?
beq L1 ; jump if no
lda #<('A'-'a') ; make upper case char
@ -37,13 +37,13 @@ loop: lda (ptr2),y ; get char from second string
L1: lda (ptr1),y ; get character from first string
sta tmp1
; get character classification
jsr ctype_preprocessor_no_check
jsr ctype_preprocessor_no_check
and #CT_LOWER ; lower case char?
beq L2 ; jump if no
lda #<('A'-'a') ; make upper case char
adc tmp1 ; ctype_preprocessor_no_check ensures carry clear!
sta tmp1 ; remember upper case equivalent
sta tmp1 ; remember upper case equivalent
L2: ldx tmp1
cpx tmp2 ; compare characters
bne L3

View File

@ -1,5 +0,0 @@
; Character specification table.
;
; uses the "console" definition
.include "ctype_console.inc"

View File

@ -1,5 +0,0 @@
; Character specification table.
;
; uses the "console" definition
.include "ctype_console.inc"

View File

@ -3,7 +3,7 @@
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://github.com/cc65/cc65
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;

View File

@ -1,5 +0,0 @@
; Character specification table.
;
; uses the "console" definition
.include "ctype_console.inc"

View File

@ -1,5 +0,0 @@
; Character specification table.
;
; uses the "console" definition
.include "ctype_console.inc"

View File

@ -1,5 +0,0 @@
; Character specification table.
;
; uses the "console" definition
.include "ctype_console.inc"

View File

@ -3,7 +3,7 @@
// This file is part of
// cc65 - a freeware C compiler for 6502 based systems
//
// https://github.com/cc65/cc65
// https://cc65.github.io
//
// See "LICENSE" file for legal information.
//
@ -18,19 +18,19 @@
typedef struct
{
bool isalnum;
bool isalpha;
bool isascii;
bool iscntrl;
bool isdigit;
bool isgraph;
bool islower;
bool isprint;
bool ispunct;
bool isspace;
bool isupper;
bool isxdigit;
bool isblank;
bool isalnum;
bool isalpha;
bool isascii;
bool iscntrl;
bool isdigit;
bool isgraph;
bool islower;
bool isprint;
bool ispunct;
bool isspace;
bool isupper;
bool isxdigit;
bool isblank;
} CTypeClassifications;
@ -39,330 +39,330 @@ CTypeClassifications testSet[NUMTESTS] =
{
//alnum, alpha, ascii, cntrl, digit, graph, lower, print, punct, space, upper, xdigit,blank
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 00
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 01
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 02
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 03
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 04
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 05
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 06
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 07
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 08
{false, false, true, true, false, false, false, false, false, true, false, false, true }, // 09
{false, false, true, true, false, false, false, false, false, true, false, false, false}, // 0A
{false, false, true, true, false, false, false, false, false, true, false, false, false}, // 0B
{false, false, true, true, false, false, false, false, false, true, false, false, false}, // 0C
{false, false, true, true, false, false, false, false, false, true, false, false, false}, // 0D
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 0E
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 0F
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 00
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 01
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 02
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 03
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 04
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 05
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 06
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 07
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 08
{false, false, true, true, false, false, false, false, false, true, false, false, true }, // 09
{false, false, true, true, false, false, false, false, false, true, false, false, false}, // 0A
{false, false, true, true, false, false, false, false, false, true, false, false, false}, // 0B
{false, false, true, true, false, false, false, false, false, true, false, false, false}, // 0C
{false, false, true, true, false, false, false, false, false, true, false, false, false}, // 0D
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 0E
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 0F
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 10
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 11
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 12
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 13
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 14
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 15
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 16
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 17
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 18
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 19
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1A
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1B
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1C
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1D
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1E
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1F
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 10
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 11
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 12
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 13
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 14
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 15
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 16
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 17
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 18
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 19
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1A
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1B
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1C
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1D
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1E
{false, false, true, true, false, false, false, false, false, false, false, false, false}, // 1F
{false, false, true, false, false, false, false, true, false, true, false, false, true }, // 20
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 21
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 22
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 23
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 24
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 25
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 26
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 27
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 28
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 29
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2A
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2B
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2C
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2D
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2E
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2F
{false, false, true, false, false, false, false, true, false, true, false, false, true }, // 20
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 21
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 22
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 23
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 24
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 25
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 26
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 27
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 28
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 29
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2A
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2B
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2C
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2D
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2E
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 2F
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 30
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 31
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 32
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 33
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 34
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 35
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 36
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 37
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 38
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 39
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3A
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3B
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3C
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3D
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3E
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3F
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 30
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 31
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 32
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 33
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 34
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 35
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 36
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 37
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 38
{true, false, true, false, true, true, false, true, false, false, false, true, false}, // 39
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3A
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3B
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3C
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3D
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3E
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 3F
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 40
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 41
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 42
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 43
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 44
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 45
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 46
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 47
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 48
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 49
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4A
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4B
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4C
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4D
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4E
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4F
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 40
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 41
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 42
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 43
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 44
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 45
{true, true, true, false, false, true, false, true, false, false, true, true, false}, // 46
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 47
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 48
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 49
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4A
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4B
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4C
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4D
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4E
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 4F
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 50
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 51
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 52
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 53
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 54
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 55
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 56
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 57
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 58
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 59
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 5A
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 5B
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 5C
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 5D
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 5E
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 5F
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 50
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 51
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 52
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 53
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 54
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 55
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 56
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 57
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 58
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 59
{true, true, true, false, false, true, false, true, false, false, true, false, false}, // 5A
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 5B
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 5C
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 5D
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 5E
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 5F
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 60
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 61
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 62
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 63
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 64
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 65
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 66
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 67
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 68
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 69
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6A
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6B
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6C
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6D
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6E
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6F
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 60
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 61
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 62
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 63
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 64
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 65
{true, true, true, false, false, true, true, true, false, false, false, true, false}, // 66
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 67
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 68
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 69
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6A
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6B
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6C
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6D
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6E
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 6F
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 70
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 71
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 72
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 73
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 74
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 75
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 76
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 77
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 78
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 79
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 7A
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 7B
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 7C
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 7D
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 7E
{false, false, true, false, false, true, false, true, true, true, false, false, false}, // 7F
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 70
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 71
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 72
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 73
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 74
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 75
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 76
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 77
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 78
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 79
{true, true, true, false, false, true, true, true, false, false, false, false, false}, // 7A
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 7B
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 7C
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 7D
{false, false, true, false, false, true, false, true, true, false, false, false, false}, // 7E
{false, false, true, false, false, true, false, true, true, true, false, false, false}, // 7F
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 80
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 81
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 82
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 83
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 84
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 85
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 86
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 87
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 88
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 89
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8A
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8B
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8C
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8D
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8E
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8F
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 80
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 81
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 82
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 83
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 84
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 85
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 86
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 87
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 88
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 89
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8A
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8B
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8C
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8D
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8E
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 8F
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 90
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 91
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 92
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 93
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 94
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 95
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 96
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 97
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 98
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 99
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9A
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9B
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9C
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9D
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9E
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9F
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 90
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 91
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 92
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 93
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 94
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 95
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 96
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 97
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 98
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 99
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9A
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9B
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9C
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9D
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9E
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // 9F
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AD
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // A9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AD
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // AF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BD
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // B9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BD
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // BF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CD
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // C9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CD
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // CF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DD
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // D9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DD
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // DF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // EA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // EB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // EC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // ED
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // EE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // EF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // E9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // EA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // EB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // EC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // ED
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // EE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // EF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FD
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FF
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F0
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F1
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F2
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F3
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F4
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F5
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F6
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F7
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F8
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // F9
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FA
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FB
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FC
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FD
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FE
{false, false, false, false, false, true, false, true, true, false, false, false, false}, // FF
// out of range test
{false, false, false, false, false, false, false, false, false, false, false, false, false} // 100
// out of range test
{false, false, false, false, false, false, false, false, false, false, false, false, false} // 100
};
TEST
{
int i = 0;
int i = 0;
while (i<NUMTESTS)
{
// isalnum()
ASSERT_AreEqual(testSet[i].isalnum, (isalnum(i) ? true : false), "%d", "Invalid 'isalnum(%d)' classification!" COMMA i);
while (i<NUMTESTS)
{
// isalnum()
ASSERT_AreEqual(testSet[i].isalnum, (isalnum(i) ? true : false), "%d", "Invalid 'isalnum(%d)' classification!" COMMA i);
// isalpha()
ASSERT_AreEqual(testSet[i].isalpha, (isalpha(i) ? true : false), "%d", "Invalid 'isalpha(%d)' classification!" COMMA i);
// isalpha()
ASSERT_AreEqual(testSet[i].isalpha, (isalpha(i) ? true : false), "%d", "Invalid 'isalpha(%d)' classification!" COMMA i);
// isascii()
ASSERT_AreEqual(testSet[i].isascii, (isascii(i) ? true : false), "%d", "Invalid 'isascii(%d)' classification!" COMMA i);
// isascii()
ASSERT_AreEqual(testSet[i].isascii, (isascii(i) ? true : false), "%d", "Invalid 'isascii(%d)' classification!" COMMA i);
// iscntrl()
ASSERT_AreEqual(testSet[i].iscntrl, (iscntrl(i) ? true : false), "%d", "Invalid 'iscntrl(%d)' classification!" COMMA i);
// iscntrl()
ASSERT_AreEqual(testSet[i].iscntrl, (iscntrl(i) ? true : false), "%d", "Invalid 'iscntrl(%d)' classification!" COMMA i);
// isdigit()
ASSERT_AreEqual(testSet[i].isdigit, (isdigit(i) ? true : false), "%d", "Invalid 'isdigit(%d)' classification!" COMMA i);
// isdigit()
ASSERT_AreEqual(testSet[i].isdigit, (isdigit(i) ? true : false), "%d", "Invalid 'isdigit(%d)' classification!" COMMA i);
// isgraph()
ASSERT_AreEqual(testSet[i].isgraph, (isgraph(i) ? true : false), "%d", "Invalid 'isgraph(%d)' classification!" COMMA i);
// isgraph()
ASSERT_AreEqual(testSet[i].isgraph, (isgraph(i) ? true : false), "%d", "Invalid 'isgraph(%d)' classification!" COMMA i);
// islower()
ASSERT_AreEqual(testSet[i].islower, (islower(i) ? true : false), "%d", "Invalid 'islower(%d)' classification!" COMMA i);
// islower()
ASSERT_AreEqual(testSet[i].islower, (islower(i) ? true : false), "%d", "Invalid 'islower(%d)' classification!" COMMA i);
// isprint()
ASSERT_AreEqual(testSet[i].isprint, (isprint(i) ? true : false), "%d", "Invalid 'isprint(%d)' classification!" COMMA i);
// isprint()
ASSERT_AreEqual(testSet[i].isprint, (isprint(i) ? true : false), "%d", "Invalid 'isprint(%d)' classification!" COMMA i);
// ispunct()
ASSERT_AreEqual(testSet[i].ispunct, (ispunct(i) ? true : false), "%d", "Invalid 'ispunct(%d)' classification!" COMMA i);
// ispunct()
ASSERT_AreEqual(testSet[i].ispunct, (ispunct(i) ? true : false), "%d", "Invalid 'ispunct(%d)' classification!" COMMA i);
// isspace()
ASSERT_AreEqual(testSet[i].isspace, (isspace(i) ? true : false), "%d", "Invalid 'isspace(%d)' classification!" COMMA i);
// isspace()
ASSERT_AreEqual(testSet[i].isspace, (isspace(i) ? true : false), "%d", "Invalid 'isspace(%d)' classification!" COMMA i);
// isupper()
ASSERT_AreEqual(testSet[i].isupper, (isupper(i) ? true : false), "%d", "Invalid 'isupper(%d)' classification!" COMMA i);
// isupper()
ASSERT_AreEqual(testSet[i].isupper, (isupper(i) ? true : false), "%d", "Invalid 'isupper(%d)' classification!" COMMA i);
// isxdigit()
ASSERT_AreEqual(testSet[i].isxdigit, (isxdigit(i) ? true : false), "%d", "Invalid 'isxdigit(%d)' classification!" COMMA i);
// isxdigit()
ASSERT_AreEqual(testSet[i].isxdigit, (isxdigit(i) ? true : false), "%d", "Invalid 'isxdigit(%d)' classification!" COMMA i);
#if __CC65_STD__ >= __CC65_STD_C99__
// isblank()
ASSERT_AreEqual(testSet[i].isblank, (isblank(i) ? true : false), "%d", "Invalid 'isblank(%d)' classification!" COMMA i);
// isblank()
ASSERT_AreEqual(testSet[i].isblank, (isblank(i) ? true : false), "%d", "Invalid 'isblank(%d)' classification!" COMMA i);
#endif
++i;
}
++i;
}
}
ENDTEST