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

    function More: string;
    var
      Prompt: char;
    begin
      More:='';
      if Pause and (Lines=mem[$40:$84]) then
        begin
          write('Continue - [Y]es, [N]o? ');
          Prompt:=ReadKey;
          writeln(upcase(Prompt));
          if Prompt in ['N','n'] then
            halt(0)
          Lines:=0
        end;
      inc(Lines)
    end;      {More}

    Pause and Lines are both global variables.  Since I call the function
    from many other functions/procedures I decided it would be less work
    then passing them through.  Pause is simple a flag deciding whether or
    not you want pausing or not.  You may not want to take the same action I
    did when the user doesn't want to continue.  The mem command looks at
    memory location 0040:0084 which contains the number of lines on the
    screen.  This prevents the need to check what mode the screen is in.

    Anyways, the way I used it is as follows:

    writeln(More,'What ever you may want to display');

    Since functions are executed first, it determines wheter or not to
    display the line or prompt to continue.

    Hope that helps... (assuming you can figure out my explanations)

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