Listing of file='CHRPRO.MAC;02' on disk='vmedia/asm_utility_4-sideA-sector.ccvf'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; UTILITY ROUTINES FOR PROCESSING CHARACTERS ; ; NOTE: IN ALL CASES, THE FOLLOWING APPLY: ; ; VALUES ON ENTRY: ; HL => CHARACTER (IN INPUT BUFFER) ; ; RETURNS: ; A = PROCESSED CHARACTER ; <C> = TEST TRUE (I.E. <NC> = FALSE) ; ; DESTROYS: ; A REG. ONLY ; ; ; ; CHECK FOR A LETTER ; ENTRY LETTER LETTER: MOV A,M ;GET CHR CPI 'Z'+1 ;IS IT A LETTER? RNC ;NO CPI 'A' ;CHECK OTHER END CMC ;SET <C> IF LETTER RET ; ; CHECK FOR A LETTER OR A DIGIT ; ENTRY LETDIG LETDIG: CALL LETTER ;IS IT A LETTER? RC ;YES ; ; CHECK FOR A DIGIT ; ENTRY DIGIT DIGIT: MOV A,M ;GET CHR CPI '9'+1 ;IS IT A DIGIT? RNC ;NO SUI '0' ;ATTEMPT TO CONVERT TO DIGIT CMC ;SET <C> IF DIGIT RET ; ; CONVERT TO UPPER CASE ; ENTRY UPPER UPPER: MOV A,M ;GET CHR CALL LETTER ;ALREADY UPPER CASE? RC ;YES CPI 'z'+1 ;SEE IF LOWER CASE RNC ;NOT LC, BUT RETURN IT ANYWAY CPI 'a' JC UPP10 ;NOT LC, RETURN IT SUI 'a'-'A' ;CONVERT IT STC ;SET <C> FOR VALID LETTER RET UPP10: CMC ;<NC> = INVALID RET ; ; TEST FOR WHITE SPACE (SPACE OR TAB) ; EQU TAB 9 EQU SPACE 32 ENTRY WHTSPC WHTSPC: MOV A,M ;GET CHR CPI TAB ;TEST IT JZ WHT10 CPI SPACE JZ WHT10 ORA A ;RETURN WITH <NC> RET WHT10: STC ;SET <C> IF FOUND RET END