OPENIN is a BASIC function to open a file for input.
|Availability||Present in all original versions of BBC BASIC.|
|Syntax||BASIC I-V|| <num-var> = |
|Token (hex)||BASIC I|| |
|BASIC II-V|| |
|Description||BASIC I|| Opens the named file for update (with OSFIND &C0), returning the
file handle or zero if the file was not found.
|BASIC II-V|| Opens the named file for input (with OSFIND &40), returning the file
handle or zero if the file was not found.
|Associated keywords|| |
OPENIN sets up the computer to work on an existing file. The
file's name is given as the argument; BASIC passes the name to OSFIND,
which tries to find the file on the current media, and in the current
directory where appropriate.
If OSFIND finds the file it opens it, assigns it a file handle and
returns the handle to BASIC, which returns it as the value of
OPENIN. A file handle is an integer. 0 means the file was
not found; otherwise the file handle is opaque, meaningful only to the
The file handle identifies the file while it is open, and the return value
OPENIN must be saved and passed to all file handling
statements (those whose keywords end in
#.) This is because
more than one file may be open at a time. Unlike other BASICs the MOS
assigns file handles, not the programmer.
On opening, the pointer (
PTR#) associated with the file
handle is initialised to zero. A file can be opened multiple times for
input (while the filing system has enough remaining file handles) as long
as it has not already been opened for output. Each file handle has its own
OPENIN in BASIC I vs BASIC II
In BASIC I,
OPENIN opens files with OSFIND &C0, for reading
BASIC II was changed so that
OPENIN opens files with OSFIND
&40, for input only. The keyword
OPENIN was assigned a new
token, &8E, which would not work in BASIC I.
The keyword for the token &DA, formerly
OPENIN was changed to
OPENUP, relecting it's actual operation in using OSFIND &C0.
Listings typed into BASIC II would use the new
and the program files would be incompatible with BASIC I.
See also OSFIND on this subject.
-- beardo 15:13, 21 March 2007 (UTC)