8-Bit Software

The BBC and Master Computer Public Domain Library

Back to 8BS Or Back to Disassembly

Page Last Altered:


Submitted by Steve Fewell


Call routine &BA4A to check that the next character at the BASIC Text Pointer B location (&0B-&0C) is a '#'-character.
If not then issue 'Missing #' error message. Evaluate the expression after the '#' [Type mismatch error if string value
found], and set Y to the number found after the '#' character (this is the file channel number).

Set X to the file channel number (in A).
Call the Operating System OSBYTE #&7F function to check for the end-of-file for the file currently open on channel
number X.
If X is returned as zero then the end-of-file has not been reached, so exit with IWA = 0; otherwise, exit with IWA = TRUE
(&FFFFFFFF), as the end-of-file has been reached.

Disassembly for the EOF routine

ABCF J 032 074 186 20 4A BA JSR &BA4A Check for '#' (PTR B), Set Y to file channel number (PTR B)
ABD2   170 AA TAX
ABD3   169 127 A9 7F LDA#&7F
ABD5   032 244 255 20 F4 FF JSR &FFF4   OSBYTE
ABD8   138 8A TXA
ABD9   240 002 F0 02 BEQ 2 --> &ABDD Store X (zero) in every byte of the IWA (so that the IWA = 0)
ABDB   ...Set IWA to TRUE (-1)...


 Back to 8BS