Msg: 5531 *Conference*

11-01-94 15:29:25

From: RON WIESEN

To : COMET _

Subj: WARNING ABOUT NPL IN LIBRARY

WARNING about NPL from Ron Wiesen
 
NPL (Node-PDD Link) in the Club 100 Library causes disastrous conflicts between
RAM100 and TS-DOS.
 
 NPL.CO (NPL.100) Ver 1.0 is (c) 1992 by James Yi.
 RAM100.CO (R100LD.BA) is (c) by Paul Globman.
 DOS100.CO (100 v4.00) is (c) 1987 by Traveling Software.
 
According to its documentation, NPL is a file transfer utility that moves files
directly between media that are external to the Model-T: the Datapac (by Node)
and the Portable Disk Drive 1&2 (by Tandy).  NPL does not move files into or
out of the Model-T.  I don't own a Datapac, but I have used NPL with a RAMPAC
(by EME Systems) and the Portable Disk Drive 2.  The warning I'm giving here,
and descriptions that follow, apply to NPL when it is used with a RAMPAC.
Perhaps they apply to NPL when used with a Datapac, I can't know.  Because I
often mix Tandy's FLOPY2 and TS-DOS for transfers that involve the same .DO
file and the same diskette without trouble, I'm sure that NPL also causes a
RAM100/FLOPY2 conflict although I've not confirmed it.
 
For .BA and .CO files, NPL works fine.  For .DO files, NPL sets the stage for a
disastrous RAM100/TS-DOS conflict!
 
Even if NPL is not ever used again, a virus-like situation ensues the first
time you use RAM100 or TS-DOS to load any .DO file into the Model-T that had
been put on the media (RAMPAC or PDD) by NPL.  For clarity, let's call this .DO
file the "viral source" that eventually leads to a cold start of the Model-T,
and call its media image the "infected media" to remind you of where it came
from and where it and perhaps others like it still lurk.
 
At the instant of arrival, the "viral source" corrupts the File Directory which
the Model-T operating system maintains, and consequently corrupts some or all
other files in memory at this time (all types .BA, .CO, and .DO).  You now have
a corrupt File Directory AND corrupt files.  Unfortunately, the corruption is
not immediately evident to you.  If you copy corrupt files from the Model-T
memory to other media (by means other than NPL), the good news is that you
don't make more "infected media" but the bad news is that you aggravate or make
impossible the task of recovering your files later.
 
When you select a file name from the now corrupt File Directory shown at the
main menu, typically the operating systems invokes a different file (e.g., you
select REPORT.BA and SORT.CO is invoked).  If it invokes a corrupt .CO file, it
may just beep and present the main menu again because the corrupt header of the
.CO file is nonsense compared to HIMEM.  Things are confused!  You become
confused.  At some point either you intentionally cold start the Model-T or it
does so.
 
Now you must reload some files (and set DATE$/DAY$/TIME$ and so on).  During
the reload, you might use an "infected media".  Note that by this time
"infected media" may mean both the RAMPAC and one or more PDD diskettes!  Of
course you think all media is fine.  If you load any "viral source" the
nightmare starts all over again.  If you don't load any "viral source" all
appears well and you (incorrectly) conclude that some unexplained disturbance
occurred that's not likely to be repeated.
 
Here's the technical details about the RAM100/TS-DOS conflict which NPL brings
about.  The conflict centers around the EndOfFile (EOF) mark which the Model-T
operating system appends to delimit the end of each .DO file in memory.  There
are 3 programs involved, so there are 3 operational factors to consider:
 
1.  NPL moves .DO files between a "ram-disk" media device attached to the
system bus and a PDD diskette media with no regard for any EOF.  NPL assumes
that .DO files in the two media are of equal length.  Perhaps this assumption
is true for Datapac media handled by whatever utility Node provides for
Datapac/memory file transfers.  In the case of RAMPAC media handled by RAM100
and diskette media handled by DOS100 (TS-DOS), this assumption is false.
 
2.  RAM100 includes the EOF as the last byte of a .DO file for transfers to the
RAMPAC.  RAM100 presumes an EOF is present to satisfy the Model-T operating
system when it transfers a .DO file from the RAMPAC.
 
3.  DOS100 (TS-DOS) does not include the EOF as the last byte of a .DO file for
transfers to a PDD diskette.  DOS100 presumes an EOF is not present on the
diskette and satisfactorily interacts with the Model-T operating system so the
memory image includes an EOF when it transfers a .DO file from a PDD diskette.
 
Conflict comes in two "viral source" flavors: RAMPAC and PDD diskette.  The
illustrations below show a .DO file created in the memory of the Model-T and
how both flavors of conflict arise from a 3-step file transfer process with NPL
involved at the second step.

 
Flavor 1: RAMPAC "viral source"
------- -------- ------ -------- -----
.RAMPAC          memory          PDD
------- -------- ------ -------- -----
.                A.DO+
.                       >DOS100> A.DO-
.*A.DO- <__NPL__        _______<
.       >RAM100> ?-?
 
 
Flavor 2: PDD "viral source"
------- -------- ------ -------- -----
.RAMPAC          memory          PDD
------- -------- ------ -------- -----
.                A.DO+
.A.DO+  <RAM100<
.       >_______       __NPL__>  *A.DO+
.                ?+?   <DOS100<

 
 Legend:
 -   means EOF 
 +   means EOF is present
 *   means "infected media", EOF pre iosite of what it should be
 ?-? means "viral source" reaction due to missing? means "viral source"
reaction due to EOF presence (EOF not expected)