<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Wed, 15 Aug 2012 20:59:26 +0100
From   : jgh@... (J.G.Harston)
Subject: Fwd=3A Re=3A Programatically =22reset=22 a

Bear in mind that this does not reset the BBC, it jumps to the BBC's 
reset
code. No hardware will be reset, it will be in whatever state it was in
before the reset code was entered. The only hardware that will get 
reset
will be hardware that is reset from software.

Some firmware expects hardware to be in a hardware reset state when the
reset code is executed, and uses the fact that hardware is not in a
reset state to conclude that the hardware is absent, and disables 
itself.
A classic example if NFS. If you jump to !-4 while there is network
activity, the ADLC is not in a post-reset state, and NFS disables 
itself
as the ADLC not being in a recognised post-reset state declares that 
the
ADLC is absent.

Also, a Tube client processor won't be reset. Usually, the client will
be waiting for an OSCLI acknowledge when the host does JMP (-4) and
the next thing the client will receive is the Tube startup sequence:
the host will wait for the client to send a series of characters to
print, then the client waits for an acknowledge. The host will be
sat waiting for the client to sent the startup text, while the client
will be waiting for the host to send the OSCLI acknowledgement.

I usually prompt the user to press Ctrl-Break:

LDA #&7F:STA&FE4E
JSR PrText:EQUS "Press Ctrl-Break":BRK
JSR OSRDCH:JMP (&FFFC)

-- 
J.G.Harston - jgh@...      - mdfs.net
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>