Category : Modula II Source Code
Archive   : FIOASM.ZIP
Filename : README.1ST

Output of file : README.1ST contained in archive : FIOASM.ZIP
169 N. 25th St.
San Jose, Calif. 95116

CompuServe No. 72336,2257

May 17, 1989

The JPI Modula-2 assembly language module included in
this package, FioAsm.OBJ, provides much faster disk access
than JPI's FIO, which is written in Modula-2.

FioAsm also eliminates the need to check IOresult() all
the time -- although the function does exist -- or to set a
variable IOcheck off to keep the program from crashing.
That's because FioAsm was written so that all procedures
return some indicator of whether they were successful.

FioAsm also adds some procedures not found in FIO that
allow you to get and set the file date and time, find out
how much free space is on the disk and other fun things
like that.

BUT there are some "gotchas":

-- FioAsm only does low-level file input and output
procedures, those that require MS-DOS interrupt calls. A
higher-level module is also needed. (FIO tried to do both
high- and low-level routines, which, in my opinion, is a
mistake that resulted in it being slow and inefficient.)

-- Because FioAsm's procedures are deliberately written
differently than FIO's low-level procedures, you can't just
import them into FIO.MOD without modifying FIO.MOD.

-- Because FIO.MOD is copyrighted by JPI, I don't feel
that I can distribute the complete modified code for FIO
using FioAsm.

-- Finally, while I have tested FioAsm, it hasn't been
beta-tested and may very well have undiscovered bugs. In
fact, this revised version, updated May 11, corrects two
flaws in the original. One in FioAsm.A itself and the
second in the accompanying NFIO.MOD. They corrections are
described below.

Here's how to solve the "gotchas":

-- Along with the source and assembled versions of
FioAsm, this package includes part of a modified version of
FIO.DEF and FIO.MOD, dubbed NFIO. It includes the procedures
that are different from those in FIO plus some notes on what
procedures are not different or only slightly different.
It's up to you to merge NFIO with FIO to create a complete
module. The new module will be almost entirely compatible
with FIO except that, as an improvement, it replaces the
ambiguous variable EOF with a function that answers the
question, "End of what file?"

-- You get to find and report any bugs that you discover
while using FioAsm. I'd appreciate if you try to trace them
down as thoroughly as possible, but in any case let me know
by writing me at the address above or sending electronic mail
to me at the CompuServe account number above.


Carl Neiburger

Changes added May 17, 1989:

Zero-terminated strings: While Modula-2, like MS-DOS, uses
ASCII zero or nul to terminate strings, it does not do so
for strings that are completely filled or constants.
FioAsm now copies strings to a buffer and adds a zero to
make sure that they are zero-terminated.

End of file: The EOF function in NFIO has been corrected
to only show an end of file if the ends of both the file and
any file buffer have been reached.

SeekRel and Flush: The SeekRel procedure in FioAsm was added
and Flush in NFIO revised to make them compatible with version
1.16 of JPI's FIO.

  3 Responses to “Category : Modula II Source Code
Archive   : FIOASM.ZIP
Filename : README.1ST

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: