Date : Mon, 09 Mar 2009 19:09:03 +0000
From : splodge@... (Richard Gellman)
Subject: Knackered CoPro (Was: Disable tube?)
Hi,
me@... wrote:
> OK, I think this copro has deeper problems than I imagined.
>
> Since powering up the beeb again this morning, typing pretty much
> *anything* into the BASIC prompt causes it to hang, including, even:
>
> >10 REM HELLO
>
Aha. A clue dawneth.
So you can follow whats happening, when you enter something into BASIC,
the input routine is actually running in the host, specifically OSWORD 0.
This accepts a line of input and stores it in a pointed to buffer. Then
control returns (via the TUBE) to the parasite processor for BASIC to
run. To clear up a couple of other observations:
The missing beep on startup is normal. When a TUBE is connected, the
OS(es) do not emit a VDU 7 beep on startup. The reason you get a beep
from COPY is that this is handled by the OSWORD 0 input routine in the
host.
What appears to be happening is that the call to OSWORD 0 from parasite
to host is working, but the return of the result from host to parasite
is not. IIRC, this is done through register set 2, in which this input
line would be the first to be called. The language ROM is transferred
through register set 3 (IIRC) and text display is done through register
set 1. This therefore suggests three possibilities:
1) Completely knackered TUBE chip, with a specific failure on register
set 2.
2) Knackered address decoding in the co-pro unit (since the failure is
AFTER the OSWORD call). This is done by a small army of 74-series chips,
so if its one of these its easy to replace.
3) Knackered I/O decoder in the Master 128. This one has a VERY outside
chance of being the case. Basically there's a big custom chip in an M128
that determines chip selects for devices including the tube enable. If
this chip is damaged in a VERY specific way, it might not be decoding
RS2 writes from host to parasite correctly. But I think its highly
unlikely to be this; you'd probably see other wierdness in the system.
It also makes sense that you were able to run ELITE to a certain
extent.. if this was shift-break booted then it may not have passed any
calls through RS2 to load it (I'm doing this from memory.. I may need
correcting on which register sets are used for which OS calls).
> So things are not looking good. (Though, to answer a previous
> question, sound did appear to be working. It still went beep if you
> pressed COPY.)
>
> I pulled the copro out again, and everything sprung back to life,
> CMOS, BASIC, everything. So at least there's that. :)
>
One thing you don't mention trying: *CON. NOTUBE with the co-pro
removed, then insert the co-pro (obviously with the power off) and
confirm it ignores the tube as expected. Then *CON. TUBE, ctrl+break and
see if it comes back as expected.
-- Richard