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

    {
    From: GREG ESTABROOKS

    I was wondering if anybody knew how to capture a character in Turbo
    Pascal 6.0 at any x,y location like QuickBasic's SCREEN(x,y).
    }

    FUNCTION GetChar( X,Y :WORD; VAR Attrib:BYTE ) :CHAR;
    VAR
       Ofs :WORD;
    BEGIN
                            { NOTE: Change the Segment from $B800 }
                            {       to $B000 for MonoChrome.      }
      Ofs := ((Y-1) * 160) + ((X SHL 1) - 1);
      Attrib := MEM[$B800:Ofs];
      GetChar := CHR( MEM[$B800:Ofs-1] );
    END;

    {
    From: LOU DUCHEZ
    ------------------------------------------------------------------------------}

    function getvideodata(x, y: byte): char;

    { "Reads" a character off the video screen. }

    type  videolocation = record                  { video memory locations }
            videodata: char;                      { character displayed }
            videoattribute: byte;                 { attributes }
            end;

    var vidptr: ^videolocation;
        monosystem: boolean;
        videosegment: word;
        scrncols:  byte absolute $0040:$004a;
        videomode: byte absolute $0040:$0049;

    begin
      monosystem := (videomode = 7);
      if monosystem then videosegment := $b000 else videosegment := $b800;
      vidptr := ptr(videosegment, 2*(scrncols*(y - 1) + (x - 1)));
      getvideodata := vidptr^.videodata;
      end;

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