Dec 092017
An extended set of routines for FIO included with JPL Topspeed Modula II.
File FIOASM.ZIP from The Programmer’s Corner in
Category Modula II Source Code
An extended set of routines for FIO included with JPL Topspeed Modula II.
File Name File Size Zip Size Zip Type
FIOASM.A 16713 3094 deflated
FIOASM.DEF 9154 2831 deflated
FIOASM.OBJ 4987 1397 deflated
NFIO.DEF 3940 1500 deflated
NFIO.MOD 7247 2467 deflated
README.1ST 3294 1582 deflated

Download File FIOASM.ZIP Here

Contents of the README.1ST file

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.

 December 9, 2017  Add comments

Leave a Reply