[comp.sys.acorn] BBC keyboards - forwarding a posting

vanaards@p4.cs.man.ac.uk (Steven van Aardt) (03/08/91)

  PLEASE DON'T REPLY TO ME - I'M  ONLY  FORWARDING  THIS  MESSAGE

From R.Reeves@cs.ucl.ac.uk Fri Mar  8 11:12:36 1991
Return-Path: <R.Reeves@cs.ucl.ac.uk>
Message-Id: <24344.9103081114@m1.cs.man.ac.uk>
Received: from uk.ac.ucl.cs by m1.cs.man.ac.uk; Fri, 8 Mar 91 11:14:09 GMT
Received: from clapham.cs.ucl.ac.uk by bells.cs.ucl.ac.uk with SMTP inbound 
          id <3040-0@bells.cs.ucl.ac.uk>; Fri, 8 Mar 1991 11:13:52 +0000
To: vanaards <(Steven van Aardt) vanaards%t7@cs.man.ac.uk>
Subject: Crashing
Date: Fri, 08 Mar 91 11:13:48 +0000
From: Rick Reeves <R.Reeves@cs.ucl.ac.uk>
Status: R


I don't know whether this is related at all, but with my old BBC B (and
apparently all other BBC Bs), if you type "G.0:G.0:G.0: ..." until the
buffer fills up, and then press return (assuming you don't have a program
in memory) Then the computer crashes, and makes strange non-terminating
sounds and puts occasional characters onto the screen.

This might be linked to your problem, but I don't know. You might like to
send this tidbit to the bulletin board (I can't) just for the interest of
BBC B users.

Bye,
Rick Reeves
,----------------------------------------------------------------------------.
|Beeep. My brain is currently not available, so any opinions expressed herein|
|should not be attributed to myself or my organisation, only to the motor    |
|neurons that are currently driving each of my digits to stike the keyboard. |
`----------------------------------------------------------------------------'

-- 
  ---------------------------------------------------------------------------
  -       JANET E-mail : vanaards@uk.ac.man.cs.p4 (Steven van Aardt)       -- 
  -- Warning this user has been designated for termination on the 21.6.91  --
  ---------------------------------------------------------------------------

kvj@rhi.hi.is (Kristjan Valur Jonsson) (03/14/91)

In <vanaards.668436483@p4.cs.man.ac.uk> vanaards@p4.cs.man.ac.uk (Steven van Aardt) writes:


>  PLEASE DON'T REPLY TO ME - I'M  ONLY  FORWARDING  THIS  MESSAGE

>I don't know whether this is related at all, but with my old BBC B (and
>apparently all other BBC Bs), if you type "G.0:G.0:G.0: ..." until the
>buffer fills up, and then press return (assuming you don't have a program
>in memory) Then the computer crashes, and makes strange non-terminating
>sounds and puts occasional characters onto the screen.

>This might be linked to your problem, but I don't know. You might like to
>send this tidbit to the bulletin board (I can't) just for the interest of
>BBC B users.

This is an old brainteaser from the good old BBC days.
Now, why should the micro do this?
The reason is that when all the G.0: 's are expanded into GOTO0: 's, the input
buffer overflows into other buffers down in the OS's workspace (below &E00),
and mainly into the sound buffer.

Kristjan

gpvos@cs.vu.nl (Gerben 'P' Vos) (03/15/91)

kvj@rhi.hi.is (Kristjan Valur Jonsson) writes:

>The reason is that when all the G.0: 's are expanded into GOTO0: 's, the input
>buffer overflows into other buffers down in the OS's workspace (below &E00),
>and mainly into the sound buffer.

No. The G. gets compressed to a single token, just like a GOTO would.
The 0 expands, because line numbers after a GOTO (or RESTORE, or THEN <line>)
are encoded, so BASIC doesn't have to parse the decimal number, which would
be slow compared to just decoding the binary bytes. A line number is expanded
to a token (&8D, from the top of my head) and three bytes (it could have been
two, but that has some complications when one of them would be a CR or even an
ELSE token).

So "G.0:" expands from 4 bytes to 5, which causes the mentioned effects.

-                                       Gerben
--
--- Gerben Vos - Aconet: BIGBEN!Gerben Vos - Internet: gpvos@cs.vu.nl <><
---- The question if a computer can think is as interesting as the question if
----- a submarine can swim. -- E. Dijkstra