The article states the goal to be under 2000 characters, to state it in terms of lines of code (as the submitter has) is kinda misleading when the following is considered to be one line:
if(*c-10){K=c[0]-16*c[1]+C;L=c[2]-16*c[3]+C;}else /* parse entered move */
edit: can't see a way to escape asterisk characters, so this outputs slightly wrong (edit2: fixed)