In article <58ca3e...@sick-of-spam.invalid>,
Bob Latham <b...@sick-of-spam.invalid> wrote:
> In article <58ca3a4a...@avisoft.f9.co.uk
> Martin <New...@avisoft.f9.co.uk
> > In article <58ca26...@sick-of-spam.invalid>,
> > Bob Latham <b...@sick-of-spam.invalid> wrote:
> > > > Not sure what, if or how you have set workspace.
> > > It starts out as just the "next" slot 640K.
> > So how is the expression 'workspace' set to &8000+next ?
> A perfectly reasonable question when eventually I understood it. For
> some reason it didn't dawn at first.
> There is a label in the assembler right at the end.
> It should then sit right above the assembled code.
> So you'll now want to know O% and P% I presume?
Are you saving the assembled code, then running the saved file?
Or calling the code from within the BASIC?
If the latter, then if your next slot is 640K, then &40000 is below
that. When the code is executed, if a 7MB file is loaded at the end
of the code, it will overwrite the end of the BASIC memory (as just
below &80000+640k) and so the BASIC stack will be overwritten. This
would cause problems when the called assembled code returns back to
the BASIC program - hence the abort in the BASIC module. The assembled
code will have saved the file ok.