TYPE
    Block = Array[0..511] of char;
    Ranfile = Record case integer of
        1: (F: File of Block);
        2: (Point, Mode, Block, Buffer: integer) END;

Procedure Seek(Var F:Ranfile; Var X:Block; Blockno: Integer);
Begin
    F.Block := Blockno;
    F.Mode := F.Mode AND 177377B;	/* Read mode */
    F.Point := F.Buffer+512;
    GET(F.F);
    X := F.F^ END;
