Bruce_Kahn@dgc.mceo.dg.COM (08/16/89)
CEO summary: I was taking a look at possibly porting MAC.TRANS.GS to C and adding a nicer interface to it but I have to "port" the ML routine as well. I cant decypher one part: JSR $C50A LDX #00 BCC 1: TAX 1: STX 338 The routine saves the memory region 42.47, loads it with values, makes the call, and then restores the region. I cant find any reference to it any any of my manuals. Can someone help me with what this code fragment does and what the values at 42.47 are used for (my map of zero page does not describe them)? I would like to know what C50A does and what params it takes. Bruce (KAHN@ADAM.DG.COM)
mattd@Apple.COM (Matt Deatherage) (08/19/89)
In article <8908151859.AY00046@adam.DG.COM> KAHN%void.mceo.dg.com@relay.cs.net writes: >CEO summary: > I was taking a look at possibly porting MAC.TRANS.GS to C and >adding a nicer interface to it but I have to "port" the ML routine as >well. I cant decypher one part: > JSR $C50A > LDX #00 > BCC 1: > TAX >1: STX 338 > The routine saves the memory region 42.47, loads it with values, >makes the call, and then restores the region. I cant find any >reference to it any any of my manuals. Can someone help me with what >this code fragment does and what the values at 42.47 are used for (my >map of zero page does not describe them)? I would like to know what >C50A does and what params it takes. > Bruce (KAHN@ADAM.DG.COM) As Dave said when we were discussing this one, "I hope that's self-modifying code." $C50A on a IIgs *happens* to be the ProDOS firmware protocol entry point. This is calculated by adding the contents of $C5FF ($0A) to $C500. Whoever wrote this should *not* be depending on it as being $C50A always (since we apparently have this annoying habit of making new ROMs :). (This is all for internal slot 5 only, and it just so happens that $C50A is still the entry point on ROM 03. Whoever lucked out, big time.) The protocol is documented in the ProDOS 8 Technical Reference Manual, so you can figure out from there what's being done. Hopefully you can figure out a way to do it with standard GS/OS calls (Format, Read, Write, Status), since this kind of stuff is definitely illegal under GS/OS. ----------------------------------------------------------------------------- Matt Deatherage, Apple Computer, Inc. | "The opinions expressed in this tome Send PERSONAL mail ONLY (please) to: | should not be construed to imply that AppleLink PE: Matt DTS GEnie: AIIDTS | Apple Computer, Inc., or any of its CompuServe: 76703,3030 | subsidiaries, in whole or in part, Usenet: mattd@apple.com | have any opinion on any subject." UUCP: (other stuff)!ames!apple!mattd | "So there." -----------------------------------------------------------------------------