Category : Pascal Source Code
Archive   : TSRSRC33.ZIP
Filename : EATMEM.ASM
;for memory size testing of various programs
;call as EATMEM kBytesToEat
;
;written 8/7/85 Kim Kokkonen, TurboPower Software
;modified 5/2/87 to use MASM version 4.0
Cseg segment public para
assume cs:Cseg, ds:Cseg, es:Cseg
org 100H
eat proc near
;parse command line to get amount of memory to eat
comentry:
mov si,0081H ;point to command line string
mov di,offset amount$ ;and to string storage area
xor cx,cx ;count chars in cx
cld
getst: lodsb ;get first non-blank
cmp al,' '
je getst
cmp al,13 ;check for end of input
jne more
mov dx,offset noinp$ ;no parameter specified ==>error
jmp short error
more: inc cx
stosb ;store the non-blank character
lodsb ;get next char into al
cmp al,' ' ;terminate with
je done
cmp al,13
je done
jmp short more
;convert amount$ to an integer in amount
;cx holds count of chars
done: mov al,36
stosb ;put string terminator on amount$
mov si,offset amount$
mov di,10
inc cx
nextc: dec cx
jcxz eatit ;exit if all digits used
mov ax,amount ;partial result into ax
mul di ;multiply by 10 (should all fit in ax)
mov amount,ax ;store ax
lodsb ;next char into al
cmp al,30H ;make sure it's a digit
jb baddig
cmp al,39H
ja baddig
and al,0FH ;convert to digit
xor ah,ah
add amount,ax ;add to amount
jmp short nextc
;calculate the paragraphs to eat up
eatit: mov dx,amount
cmp dx,512
ja baddig ;don't eat more than 512k
push dx
;show a success message
mov dx,offset succ1$
mov ah,9
int 21H
mov dx,offset succ2$
mov ah,9
int 21H
;eat up the memory (free with mark and release)
pop dx
mov cl,6
shl dx,cl ;convert kB to paras
mov ax,3100H ;return code 0
int 21H ;exit and remain resident
baddig: mov dx,offset baddig$
error: mov ah,9
int 21H
mov ax,4C01H
int 21H
eat endp
succ1$ db 'Eating up '
amount$ db 32,32,32,32 ;string holding amount of kB
succ2$ db ' kBytes of RAM space',13,10,36
amount dw 0 ;integer holding amount of kb, then paras
noinp$ db 'No parameter specified. Usage: EATMEM kBtoEat',13,10,36
baddig$ db 'Bad number of kB specified',13,10,36
Cseg ends
end ComEntry
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/