home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
pascal
/
tplib21.zip
/
INSTALL.EXE
/
SUMISC.ASM
< prev
next >
Wrap
Assembly Source File
|
1993-06-24
|
2KB
|
64 lines
; TURBO PASCAL LIBRARY 2.1
; Miscellaneous routines module
TITLE UNIT STRINGS: Miscellaneous routines module
PAGE 66,132
%BIN 12
CODE SEGMENT WORD
ASSUME CS:CODE
LOCALS
PUBLIC DUPLCHAR, STRIPBIT7
; FUNCTION DuplChar (ch: CHAR; count: BYTE): STRING
; Duplicate character
DUPLCHAR PROC FAR
PUSH BP
MOV BP,SP ; Set up stack frame pointer
LES DI,[BP+10] ; Point ES:DI to output string
MOV AX,[BP+6] ; Get count in AL
CLD
STOSB ; Store as output length byte
MOV CL,AL ; Transfer count to CX
XOR CH,CH
JCXZ @@L1
MOV AX,[BP+8] ; Get character in AL
REP STOSB ; Store character
@@L1: POP BP
RET 4
DUPLCHAR ENDP
PAGE
; FUNCTION StripBit7 (s: STRING): STRING
; Clear high-order bit of each character in string
STRIPBIT7 PROC FAR
PUSH BP
MOV BP,SP ; Set up stack frame pointer
PUSH DS
LDS SI,[BP+6] ; Point DS:SI to input string
LES DI,[BP+10] ; Point ES:DI to output string
MOV CL,[SI] ; Get string length in CX
XOR CH,CH
CLD
MOVSB ; Transfer length byte
JCXZ @@L2
@@L1: LODSB ; Get next character
AND AL,7FH ; Clear high-order bit
STOSB ; Write to output string
LOOP @@L1 ; Go get next character
@@L2: POP DS
POP BP
RET 4
STRIPBIT7 ENDP
CODE ENDS
END