<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
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
-- 
   *  *   * *  **       *  * ** ** *   *
   *  ** *      *      ** *   *  *    *
 *    *        *     *  *             *
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>