<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 15 Apr 2007 08:15:25 +0100
From   : info@... (Sprow)
Subject: BBC B progs on a B+128k - any known problems?

In article <070415015504@...>,
   Jonathan Graham Harston <jgh@...> wrote:
> >Message-ID: <4ecc11c792info@...>
>  
> Sprow <info@...> wrote:
> >    Jon Ripley <jon@...> wrote:
> > > IIRC (Ctrl+)Z+Break selects a special compatibility mode that allows
> > > greater compatibility with software that expects a BBC B.
> > 
> > You're quite right, it works by mangling the commands sent via OSWord &7F
> > into the corresponding operation for the 177X.
>  
> Z-Break doesn't change the operation of the DFS in any way. All
> OSWORD &7F commands are translated to the commands the 1770
> understands. That's the whole point of an API.

I'd have to refer you to Acorn Application Note 23 then:

"CTRL Z BREAK

 A special boot loading mode, CTRL Z BREAK, has been introduced into 1770 
 DFS 2.20 and later. This new mode uses an alternative 8271 emulation 
 technique which may enable otherwise unloadable discs to be booted-in 
 successfully.

 In addition, the special boot mode returns -1 to the INKEY-256 command and  
 so will improve the compatibility of the model B+ with software written for 
 model B machines.

 When to use CTRL Z BREAK

 Normally, discs are booted-in by using SHIFT and BREAK (or SHIFT D BREAK) 
 if DFS is not your default filing system). This procedure will 
 automatically *EXEC a file called !BOOT from drive 0.

 Always try SHIFT <D> BREAK first.

 If SHIFT <D> BREAK fails to load a disc, try using the special boot mode 
 SHIFT Z BREAK, or even CTRL SHIFT Z BREAK - (hold down CTRL, SHIFT and Z 
 together, press and release BREAK quickly followed by CTRL, then release 
 SHIFT and Z together).

 If none of these options will run the disc program, you should check with 
 the software supplier, or the dealer from whom you bought the disc, about 
 its compatibility with 1770 DFS."

The differing 'emulation' is to stash the locations &D60-D93, read sectors
using the read track command instead, then restore &D60-D93. It looks like
all other command codes to OSWord &7F would be considered as 'read track'
when in CTRL-Z mode.

> The only thing that Z-Break does is intercept OSBYTE 0 and 129
> and them identify the machine as a BBC B instead of a BBC B+.

That's a good point. Looking at the disassembly, in the Master version
anyway, there seems to be some logic that the first call to OSByte 0 returns
the BBC B value but then also restores the interception back to its MOS
default. 

Anyone know why?
Sprow.
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>