Date : Thu, 21 Feb 2008 21:16:20 +0000
From : jgh@... (Jonathan Graham Harston)
Subject: BBC FPGA Boots to BASIC... almost...
Mark McDougall wrote:
> It's alive!!!
Snap! http://mdfs.net/Software/PDP11/BBCBasic/blog/img06.gif
Bruuhahahahaaahh!!!
> What I meant was that inducing a "Mistake" in BASIC may
> call a MOS ROM routine that does some I/O that is not done
A BRK opcode (which is used to declare an error) generates service
call 6 (which causes all 16 ROMs to be paged in), then pages in
the current language and jumps to BRKV.
If ROM paging wasn't working, that may cause a problem, but it
would before it gets back to BASIC to REPORT the error. Also, you
would be likely to see the problem on BREAK/RESET when the ROMs
are initially walks through to initialise them.
Does the problem happen with all errors, or just Mistake? Try:
PRINT FRED
to generate "No such variable" and see what happens.
Does the problem happen with all printout, or just printout after
an error occurs? Try:
REPEAT PRINT "HELLO":UNTIL FALSE
This should continuously print HELLO
Is the printer buffer filling, or is it something else? Try
selecting the printer sink with:
*FX5,0
and then generate the Mistake error again.
When a buffer becomes full the MOS toggles the CAPS and SHIFT
LEDs, so making them wibble. (That's why some music programs
wibble the LEDs.) If you have a way of monitoring the LED state,
that would tell you if printer output is being inadvertantly
selected and the buffer is filling up.
--
JGH