Date : Sat, 26 Feb 2005 10:21:32 +0000 (GMT)
From : Sprow <info@...>
Subject: Re: ADFS OSWord &72 control block byte zero
In article <050225225502@...>,
Jonathan Graham Harston <jgh@...> wrote:
> Does anybody know what the byte at XY+0 indicates in OSWord &72?
> The documents say that when calling OSWord &72 it should be set to
> zero, and the result is returned there, and all programs I've
> examined do that. However, within the ADFS ROM all calls, except
> 'PARK', set that byte to &01 before calling the code that OSWord
> &72 calls.
>
> This indicates that OSWord &72 expects XY+0 set to &00 or &01 to
> indicate something - but what?
>
> I've been thinking of "appropriating" that byte to allow calling
> OSWord &72 with raw IDE commands.
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.
Admittedly V=1 would be another hint that the call failed, but you can't
pass the V flag back over the tube - so it's Tube proof too.
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.
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.
All speculation of course,
Sprow.