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

Trying to work out how to support non-MLI smartport calls



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%20POP%20Disk%20Routines/RW1835/RW1835.POP.S

Thanks!
-Brendan