<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 04 May 1997 16:27:52 +0100 (BST)
From   : Rich <rst20@...>
Subject: Re: BBC Disc Menu

On Sun, 4 May 1997, Mr M F Scholes wrote:

> I have a disk menu program on my BBC, it is a !boot file that is *RUN by
> *opt 4,2 and contains a basic program with machine code header. It uses
> the disc title to have a header eg GAMES and to find out the number of
> the disc and type of drives you have, ie the title could be: GAMES
> <1213> where 1 is the number of drives, 2 means double sided , 1 is
> unused, and 3 means disc 3. The menu data is stored in a BASIC file full
> of DATA statements which the program tacks on the end of itself.
> 
> The problem comes whien trying to use it on a 6502 @nd processor of a
> Master. When shift-break is used the menu hangs, but if the !boot file
> is *run by hand it works, has and one any idea why?

Presumably your machine code header is simply executing something
equivalent to:

JSR &FFF7 with YX=> "Key 0 PAGE=&1900|MOLD|MRUN|F|M"
LDA #21:JSR &FFEE                  ; Disable output
LDA #15:LDX #0:JSR &FFF4           ; Clear keybd buffer
LDA #138:LDX #0:LDY #128:JSR &FFF4 ; Insert fn key 0 into buffer
JMP &FFF7 with YX=> "*BASIC"

Is it generating some sort of error during this (which would not be seen
if you're disabling output as above) or is it literally hanging?  Try a
CLI right at the beginning of the m/c - I seem to remember Shift-Break
disabling interrupts, which might be a cause of any crash.  It sounds as
if, somehow, Basic isn't being properly initialised before your menu
starts to run.

I don't know much about the 2nd processor, so if it's anything more subtle
(does it work on an ordinary Master?) then I probably can't help.

Regards,

Rich
-==-
  +----------------------------------+
  | Richard Talbot-Watkins,          | "Marriage is one of the
  | Room H4, St Catharine's College, |  chief causes of divorce..."
  | Cambridge. (01223) 500 858       |
  +----------------------------------+
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>