|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 896 (0x380)
Types: TextFile
Names: »CPMGET.SRC«
└─⟦d6ef3842c⟧ Bits:30002678 Pascal MT+ Version 3.3 Rel 1.2
└─⟦this⟧ »CPMGET.SRC«
(*$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»