DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦7fd399983⟧ TextFile

    Length: 896 (0x380)
    Types: TextFile
    Names: »CPMGET.SRC«

Derivation

└─⟦d6ef3842c⟧ Bits:30002678 Pascal MT+ Version 3.3 Rel 1.2
    └─ ⟦this⟧ »CPMGET.SRC« 

TextFile

(*$S+*) (* rmx/udi version *)
MODULE GETREC;

(*$I FIBDEF.LIB*)

VAR
  @LFB:		EXTERNAL ^FIB;

EXTERNAL PROCEDURE @RNB;

PROCEDURE GET(VAR F:FIB; SZ:INTEGER);
VAR
  IS_EOLN : BOOLEAN;
BEGIN
  F.FEOLN := FALSE;	(* DEFAULT IS THAT WE RESET IT *)

  @LFB := ADDR(F);
  IF F.FEOF THEN
    BEGIN
      F.FEOLN := TRUE;
      EXIT
    END;

  @RNB;			(* GO READ FROM THE FILE/CONSOLE *)

  IF F.FTEXT THEN	(* TEXT FILE, EOLN/EOF MUST BE SET *)
    BEGIN
      F.FEOF := (F.FBUFFERÆ0Å = CHR($1A)) OR (F.FEOF);
      IS_EOLN := (F.FBUFFERÆ0Å = CHR($0D)); (* $0D for rmx/udi *)
      IF (IS_EOLN) OR (F.FEOF) THEN
        F.FEOLN := TRUE;

      IF (IS_EOLN) AND (F.OPTION = FRDWR) THEN (* GOBBLE LF *)
	@RNB;

      IF F.FEOF OR F.FEOLN THEN
	F.FBUFFERÆ0Å := ' ';
    END
END;

MODEND.

«eof»