home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
300-399
/
ff339.lzh
/
PCQ
/
Runtime.lzh
/
Runtime
/
Readers
/
readln.asm
< prev
next >
Wrap
Assembly Source File
|
1989-11-20
|
825b
|
44 lines
* ReadLn.asm (of PCQ Pascal runtime library)
* Copyright (c) 1989 Patrick Quaid
* Implements readln....
* Algorithm:
*
* repeat
* c := the current character
* eat that character
* until c = linefeed or EOF
*
* Upon entry, the top of the stack has the file rec address
INCLUDE ":runtime/FileRec.i"
SECTION ONE
XREF _p%ReadOneChar
XREF _p%GetThatChar
XREF _p%IOResult
XDEF _p%ReadLn
_p%ReadLn
tst.l _p%IOResult ; is IO system intact?
bne.s 2$
move.l 4(sp),a0 ; get the file record
1$ tst.b EOF(a0) ; are we at EOF?
bne.s 2$ ; if so, leave
jsr _p%ReadOneChar ; get the character
move.w d0,-(sp) ; save it
jsr _p%GetThatChar ; eat it
move.w (sp)+,d0 ; get it back
tst.l _p%IOResult ; test IO integrity
bne.s 2$
cmp.b #10,d0 ; is it a linefeed?
bne 1$ ; if not, loop
2$ rts
END