The “Launch” call

Resource Manager

Thanks to the earlier work done on Resource Manager for the “Fake” ROM resources, we already had rudimentary support for accessing resources. As the ROZ resource map was built to have exactly same format like “real” resource maps, the main missing features needed were reading and loading the resource map from resource fork using the recently added File Manager traps, and implementing further file reading operations in LoadResource trap.

Segment Loader

And now with ability to load resources, the first thing to logically do is to start work on the Segment Loader. The Launch trap is used to:

  • Handle launch parameters
  • Init application one (unless doing a “Chain” launch)
  • Load jump table from CODE resource ID 0
  • Set up the A5 world and copy jump table to correct place
  • Set up 68K state
  • Jump to application entry point in 68K code

At this point, we can now for the first time start running an actual 68K Mac application, although there were, and still are, a bunch of 68K cpu bugs to fix. At least, now we can test the CPU emulator with actual, real program code!

Resource map dump of the first actual Mac test application