.title type ;+ ; integer function type(c) ;- c=4 letter=1 digit=2 .psect st_pure_code rel,con,lcl,exe,nowrt,rd,pic,shr,usr,novec,long .entry type ^m<> movb @c(ap),r0 ; character being typed cmpb r0,#^a"0" ; digit? blss 20$ ; NO cmpb r0,#^a"9" ; digit? bgtr 10$ ; NO movl #digit,r0 ; return(DIGIT) brb 30$ 10$: bicb #^x20,r0 ; make upper case cmpb #^a"A",r0 ; letter? bgtr 20$ ; NO cmpb #^a"Z",r0 ; letter? blss 20$ ; NO movl #letter,r0 ; return(LETTER) brb 30$ 20$: movzbl @c(ap),r0 ; return(c) 30$: ret .end