Date : Fri, 26 Nov 2004 19:45:55 +0000 (GMT)
From : Brian Widdas <brian@...>
Subject: Re: ...at line ___
On Fri, 26 Nov 2004, Andrew W wrote:
> On trying to CALL a section of machine code at &79B5 (Himem set below
> this and AFAICT the next block of machine code does not overlap), I get
> the error "@line <line no. of CALL>". What generally does this
> indicate - that I am trying to access inappropriate memory locations
> (for example like 'internal error at &...' on RISC OS?)?
It means you've hit a bunch of zero bytes.
An error on the BBC Micro looks like this:
BRK
EQUB <1 byte error number>
EQUS "Danger, Will Robinson!"+CHR$(0)
The BRK causes a software interrupt. The OS (or it is the current language
ROM?) code at the SWI vector reads the next byte as the error number, and
the subsequent bytes until a control character as the error string.
Since BRK is 0 when compiled to machine code, it's possible to do this;
BRK:BRK:EQUS "This is an error with error number 0":BRK
Naturally, if you didn't want an error string, you could do this:
BRK:BRK:BRK
Which is what a bunch of memory full of zeroes looks like.
Are you calling the right location?
Brian
--
* * * * ** * * ** ** * *
* ** * * ** * * * *
* * * * * *