; ; -- Typical Assembly language subroutines -- ; ; FILL - Fill 'CX' locations with 'AL' starting at (BX). ; Return: BX = BX + CX; DX saved. ; FILL: PUSH DX ;Save DX MOV DL,AL ;Save char in DL JCXZ #1 ;Just return if CX == 0 ; MOV [BX],DL ;Fill first location MOV DX,BX ;Move BX to DX INC DX ;DX is Move destination DEC CX ;Account for one filled pos CALL MOVEBC ;Fill is overlapped block-move MOV BX,DX ;BX-> past last fill #1: POP DX RET ; ; CONVUC - Convert lower case letter in 'AL' to upper case. ; CONVUC: CMP AL,'a' ;Is char at least a 'a'? RC ;No, not lower case CMP AL,'z'+1 ;Is char greater than 'z'? RNC ;Yes, not lower case AND AL,5FH ;Else convert lower to upper case RET ; ; REVCAS - Reverse upper/lower case for letters. ; REVCAS: CALL LETCHK ;Is the char a letter? JNZ #1 ;No, don't change it XOR AL,020H ;Reverse upper and lower case #1: MOV CL,AL ;Also return char in C RET