<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
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. */
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>