[Back to STRINGS SWAG index]  [Back to Main SWAG index]  [Original]

{
> I have seen several posts in the past few months on how to read input
> not to exceed a specified input length. Here is something that I have
> wrote a couple of years back to help me, and I still use it to date.

Hmmm, i think starting from today, you will use the following routine:
}

Program MaxInputDemo;
{ Released for SWAG; Public Domain, written by Andrew Eigus
  Internet: aeigus@fgate.castle.riga.lv, aeigus@kristin.cclu.lv
  Fidonet: 2:5100/33 }

Procedure lReadLn(var Str : string; MaxLength : byte); assembler;
{ Buffered string input from a standard console device }
Asm
  push ds
  lds si,Str
  mov dx,si
  mov ah,0Ah
  mov bl,MaxLength
  inc bl
  mov [si],bl
  int 21h
  les di,Str
  cld
  inc si
  lodsb
  mov cl,al
  stosb
  xor ch,ch
  jcxz @@1
  rep movsb
@@1:
  pop ds
End; { lReadLn }

var S : string;

Begin
  Write('Enter a string (max 10 characters) : ');
  lReadln(S, 10);
  WriteLn;
  WriteLn('Entered string is "', S, '"')
End.

[Back to STRINGS SWAG index]  [Back to Main SWAG index]  [Original]