[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Trying to work out how to support non-MLI smartport calls
On Wednesday, June 27, 2012 5:15:45 PM UTC-5, ict@ccess wrote:
> On Jun 27, 12:00 pm, BLuRry
> wrote:
> > Is there a good resource for explaining the ins and outs of smartport from a non-MLI perspective? I tried to make sense of the //gs firmware guide but it was a slight-bit obtuse.
> >
> > What I'm really after is to support the direct disk reads in the Prince of Persia 3.5 version -- specifically where it calls DRIVER_OFFSET+3, DRIVER_OFFSET+4 and DRIVER_OFFSET+6, where DRIVER_OFFSET is generally $0A in the //gs and //c firmware (I confirmed this much by powering up my //c and //gs machines.) I know that JSR or JMP to DRIVER_OFFSET goes to the MLI command handler, and I've supported that much for quite a while. But I'm ready to evolve my .2mg support of non-prodos games.
> >
> > The PoP source for smartport routines is here, and the call I'm talking about specifically is on line 252:https://github.com/jmechner/Prince-of-Persia-Apple-II/blob/master/02%...
> >
> > Thanks!
> > -Brendan
>
> does this help?
>
> http://www.1000bit.it/support/manuali/apple/technotes/smpt/tn.smpt.8.html
Thanks! I saw the timing note. I read the //gs firmware reference again a little more objectively and I think I've made some sense of it. The smartport calls work differently than the MLI calls in that the parameter block is located via the stack whereas the MLI parameter block is located at a fixed memory address. I think I can scrub my way through this now. Hopefully.
:-)
-Brendan