* ReadChar.asm (of PCQ Pascal runtime library) * Copyright (c) 1989 Patrick Quaid * This reads a character from a text file. SECTION ONE XREF _p%readonechar XREF _p%getthatchar XREF stdinbuffer XREF _p%readarbbuf XDEF _p%readchar _p%readchar move.l a0,a1 ; move variable address move.l 4(sp),a0 ; get the file record address move.l a0,d0 bne readcharfile ; if not stdin, go around move.l a1,-(sp) ; save address jsr _p%readonechar ; read a character jsr _p%getthatchar move.l (sp)+,a1 ; get address back move.b stdinbuffer,(a1) ; store the char rts readcharfile: tst.b 12(a0) ; is it eof? bne.s 1$ ; if so, skip all this move.b 4(a0),d0 ; get the buffered char move.b d0,(a1) ; store it jsr _p%readarbbuf ; read next character 1$ rts END