<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Mon, 28 Feb 2005 13:40:48 +0000
From   : jgh@... (Jonathan Graham Harston)
Subject: Re: ADFS OSWord &72 control block byte zero

Sprow <info@...> wrote:
>    Jonathan Graham Harston <jgh@...> wrote:
> > Does anybody know what the byte at XY+0 indicates in OSWord &72?
> 
> I can think of two possibilities:
> 
> 1. You enter with XY+0=0 and a non-zero return is to allow the caller to
>    deduce that ADFS is fitted and at least had a go at the call. Thus on a
>    machine with no ADFS the XY+0 would still be 0 after the call.
 
That would work if ADFS returns XY+0=0 to indicate "OK". So,
calling with XY+0=0 would result in an apparent no change if the
call was successful. The manual says to call OSWORD &72 with
XY+0=0, but makes no explanation for it.
 
There should be a way of calling OSWORD &72 and realise that
nothing has happened by examining the control block. If ADFS is
not there then the control block will be unchanged, but I need to
examine the code and the docs a bit to find something that's
guarranteed to change. By comparison, you can tell that OSWORD &0E
is absent when trying to read the RTC, because XY+0 will still
contain zero instead of the returned time&date string.
 
I've got a little space left in ADFS with IDE, so I was thinking
of using XY+0 something like:
 
b7=0 - SCSI command, only read/write supported, 256 bytes transfered
b7=1 - IDE command, b0=read data, b1=write data
 
>    A return of XY+0=1 is "No error encountered"? Looking in ADFS it looks
>    like it may be possible to get other answers, say if the disc was
>    write protected.
 
XY+0 returns the SCSI result code, with &00 being OK, no error.
 
> 2. You enter with XY+0=0 to say "ADFS, you fill in the controller number
>    for me". Thus a machine could support more than one 1770, the default
>    being controller 1 is the one on the main PCB.
 
That's a good explanation, except ADFS never sends XY+0 to the
controller anywhere I can see in the code. I seem to remember
reading somewhwre that ADFS always uses SCSI controller 1 (or
zero? - anyway, only one controller).
 
Anyway, the commented code is at www.mdfs.net/Info/Comp/ADFS/v150.zip
 
-- 
J.G.Harston - jgh@...                - mdfs.net/User/JGH
Badly formed email is deleted unseen as spam
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>