#include "rm.h" #include "toolbox.h" #include #include #include #include #include "stackframe.h" namespace RM { uint16_t Get1NamedResource(uint16_t trap) { // Get1NamedResource (theType: ResType; name: Str255) : Handle; /* * ----------- * +8 outHandle * ------------ * +4 theType * ------------ * +0 name * ------------ * */ // nb - return address is not on the stack. uint32_t sp; uint32_t theType; uint32_t name; sp = StackFrame<8>(theType, name); std::string sname = ToolBox::ReadPString(name); fprintf(stderr, "%04x Get1NamedResource(%08x, %s)\n", trap, theType, sname.c_str()); ToolReturn<4>(sp, 0); return -192; } uint16_t GetResource(uint16_t trap) { // GetResource (theType: ResType; theID: Integer): Handle; /* * ----------- * +6 outHandle * ------------ * +2 theType * ------------ * +0 theID * ------------ * */ // nb - return address is not on the stack. uint32_t sp; uint32_t theType; uint16_t theID; sp = StackFrame<6>(theType, theID); fprintf(stderr, "%04x GetResource(%08x, %04x)\n", trap, theType, theID); ToolReturn<4>(sp, 0); return -192; } uint16_t UnloadSeg(uint16_t trap) { // UnloadSeg (routineAddr: Ptr); /* * ------------ * +0 routineAddr * ------------ * */ uint32_t sp; uint32_t routineAddr; sp = StackFrame<4>(routineAddr); fprintf(stderr, "%04x UnloadSeg(%08x)\n", trap, routineAddr); return 0; } }