home *** CD-ROM | disk | FTP | other *** search
- ;
- ; -- 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
-