There are some parts of running an application that are a lot easier, and other parts that are more difficult.
The problem is, the way an App exits, it actually shuts down all contexts. This means that when it exits, it does not return to the program. The way a program is called to run, when it exits, it is just the OS exiting a subroutine. I actually think I wrote a routine to run an app, but it got a little complicated.
So there is a question: What is the app that you want to run? A lot of apps have a jump table that will allow you to call certain subroutines, or even the app itself without having to exit with the typical app exit procedure.
And a few notes: If you do run an app, you have to find a way to delete the copied Asm program from RAM. When an assembly program is run, it is actually copied to 9D95h (start of user RAM) and executed. When the program is done, the OS deletes the copy. If you run an app from within a program, the copy won't be deleted and you will have some eaten RAM. So the process that you will need to follow is for your program to locate the app, swap in its page, copy code to safe RAM that deletes the copy and jumps to the App.
For some information:
http://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4C51