[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AppleTalk / Interrupts / ProDOS 8 / DOS 3.3 Launcher



In article <1993Apr7.131811.24120@actrix.gen.nz>,
dempson@swell.actrix.gen.nz (David Empson) wrote:
> 
> In article <1993Apr7.001936.28618@fawlty.towers.oz.au> johnmac@fawlty.towers.oz.au (John MacLean) writes:
> >David Empson writes:
> > >
> > >ProDOS-8 itself isn't involved in handling AppleTalk interrupts on the
> > >IIgs.  They are handled by the IIgs interrupt firmware.  Patching this
> > >will achieve nothing except give you a headache trying to reinvent the
> > >wheel.

True for now, but not when the Ethernet card comes out...

> > I swap the global page into its proper place $BF00..$BFFF when I make
> > a ProDOS MLI call, so having interrupts enabled at this point is not
> > a problem [and I now know that I definitely need to].
> > However, what happens when the ProDOS global page is not in place?
> > I know now that I cannot disable interrupts for a long period (even
> > when I'm not making ProDOS calls), so the interrupts must be handled.

AppleTalk completion routines may run as the result of an interrupt.  They
may make more AppleTalk calls.  If ProDOS 8 is active, then those calls
may be made through the MLI at $BF00.  ProDOS also uses the global page
to process other interrupts.  Therefore, it would be a good idea to keep
the global page around at all times, in case of an interrupt.

> On a IIgs, the $03FE vector is only used if the interrupt is not
> handled by one of the IIgs's built-in interrupt handlers.  This
> includes AppleTalk interrupts, which don't involve bank 0 at all.  So
> in theory, you don't need the global page to handle an AppleTalk
> interrupt.

You WILL need the global page in the future since the Ethernet card is an
"external" interrupt source.

> I believe the AppleTalk firmware uses a bank $E1 vector for all of
> its internal calls, but it is also possible to call AppleTalk via the
> MLI entry point (using command code $42).  As this can only be done
> from bank zero, and there won't be any AppleTalk code lurking in bank
> zero, I don't think AppleTalk will be using this method itself.

Again, this will change with the Ethernet card, even on a GS.


--
Mark Day, mday@apple.com