/* * Call a 68k library function from extended trap. */ uae_u32 CallLib(TrapContext *ctx, uaecptr base, uae_s16 offset) { uae_u32 retval; uaecptr olda6 = trap_get_areg(ctx, 6); trap_set_areg(ctx, 6, base); retval = trap_Call68k(ctx, base + offset); trap_set_areg(ctx, 6, olda6); return retval; }
void uae_FreeMem (TrapContext *ctx, uaecptr memory, uae_u32 size, uaecptr sysbase) { trap_set_dreg(ctx, 0, size); trap_set_areg(ctx, 1, memory); CallLib (ctx, sysbase, -0xD2); /* FreeMem */ }