home *** CD-ROM | disk | FTP | other *** search
- include compiler.inc
-
- ttl FGETS, 1.05, 11-21-86, clr
-
- ;corrected version, meets standard conventions now.
-
- lf equ 0ah
-
- dseg
- cseg
-
- xtfs <fgetc,$strhand>
-
- procdef fgets, <<bfr, ptr>, <buflen, word>, <strm, ptr>>
-
- ; locs <<bfbeg, ptr>>
- pushreg
-
- ldptr di, bfr ;else just lay it down
- pushptr strm ;move outside the loop
- fgs1:
- dec buflen
- js fgs2 ;buffer is full, force end
- callit fgetc ; stream pointer pushed outside the loop
-
- inc ax ;if was EOF...
- jz fgs3 ;return NULL
-
- dec ax ;get char back
-
- cld
- stosb
- cmp ax, lf ;then check for LF
- jne fgs1 ;no, go back for another
-
- fgs2:
- xor ax, ax
- cld
- stosb
- clc
- fgs4:
- retptrm bfr
- fgs3:
- stc
- jmp short fgs4
-
- pend fgets
-
- finish