Sorry, I didn't explain that well. MULTI uses some different instructions for its assembly files that aren't used in regular m68k assembly.
Originally Posted by itCbitC
Converting to C sounds like it would relieve a lot of the headache. However after searching around it seems like it would be a pretty tough task, especially since I don't know assembly very well (I didn't write these files). Perhaps you could look at the code and see if it's something worthwhile?
In the c code, the function to call the assembly function is:
void XProcess(Function_ptr XAddr)
if (PrintLevel < 2)
fprintf(OutputFile, "Execute AP procedure at address %08X\n", XAddr);
// If valid address then execute
if ( ValidAddress((UInt32)XAddr, 1) )
XPrc(XAddr); //Calls assembly function
ErrorHandler(ErrInvalidAddress, 30, 0, 0, NULL);
} // End XProcess
This is the assembly function that the c code calls:
/* Procedure XPrc (Function_ptr ProcAddress);
* XPrc saves all registers; calls the AP program;
* and restores the registers.
/* Register storage area */
/* Call AP program at address in A2 */