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.