>>109570367
Also 31B-BF16, 12k tokens, own harness
mov ah, al ; 1) copy the character
sub ah, 'a' ; 2) AH = AL - 'a' lowercase maps to 0..25
cmp ah, 26 ; 3) CF = 1 iff AL is in ['a','z']
sbb ah, ah ; 4) AH = 0xFF if lowercase, 0x00 otherwise
aad 0x20 ; 5) AL += AH * 0x20 (mod 256); AH = 0
64
mov ah, 0xFA ; 1) preload a magic constant into AH
sub al, 'a' ; 2) AL = AL - 'a' (lowercase now maps to 0..25)
cmp al, 0x1A ; 3) CF = 1 iff the input was lowercase
rcr ah, 3 ; 4) AH = 0x9F + 0x20*CF (0x9F or 0xBF)
sub al, ah ; 5) AL = AL - AH original char, minus 0x20 iff lowercase