Date : Sat, 09 Sep 2006 08:58:43 +0100
From : jgh@... (Jonathan Graham Harston)
Subject: OSARGS return values
Returned values in A after various OSARGS calls
-----------------------------------------------
Documentation says that OSARGS should return A preserved if the
call is unsupported, and should return zero or a return value if
the call is supported. Also, the Advanced Econet User Guide states
that PTR= (and, by implication EXT=) should return zero only if
the file has been extended. This lists actual return values.
OSARGS Y=0 OSARGS Y<>0
A ON EXIT A ON EXIT
A DFS NFS ANFS ADFS HADFS A DFS NFS ANFS ADFS HADFS
FD FD: FD FD FD 00 36 FD FD: FD FD FD 00 FD
DRIVE FE: FE FE FE 00 04 INFO FE: FE FE FE 00 FE
ENSURE FF: 00 FF FF 00 00 ENSURE FF: 00 FF FF 00 CC
FSNUM 00: 04 05 05 08 10 =PTR 00: 00 00 00 00 00
CLINE 01: DC 00 DC DC DC PTR= 01: 00 00 00 00 FF
VERS 02: 01 01 01 01 01 =EXT 02: 00 00 00 00 00
LIBFS 03: FF 03 FF FF FF EXT= 03: 00 03 00 00 FF
USED 04: 04 04 00 00 00 =ALLOC 04: 04 04 00 00 00
FREE 05: 05 05 05 00 00 =EOF 05: 05 05 05 00 00
06 06: 06 06 06 00 06 ALLOC= 06: 06 06 06 00 00
80 80: 80 80 error 00 80 HANDLE 80: 80 80 00 00 80
This shows various things:
* NFS and ANFS return A=&FF on ENSURE, implying the call not
implemented. This is effectively correct on NFS as channels are
not buffered locally, but ANFS does buffer files, so should return
A=&00.
* ANFS claims it supports USED, but the value returned at !X is
unchanged.
* ADFS claims that is supports everything by erroneously returning
&00 for absolutely everything! The only reason the Y=0 calls do
not return A=&00 is because FileSwitch on the Master deals with
these calls itself.
* NFS and ANFS ignore the documentation and return A=&00 on PTR
and EXT=, implying file extended past its previous length.
* It clearly shows that NFS does not support EXT= and ANFS does.
* It also shows that ANFS supports =ALLOC, as documented in the
SJ MDFS Manager's Guide
* ANFS doesn't check for the handle<>0 on HANDLE as it generates
the error: "Net channel on 0"
* HADFS returns &CC on ENSURE. This is obviously an error in
HADFS.
* HADFS is the only system that complies with the documentation
stating that A<>&00 if the file has not been extended after PTR
or EXT=.
--
J.G.Harston - jgh@... - mdfs.net/User/JGH
/* Real programmers don't use comments. */