Mea Culpa: _run is not _link
I mentioned in Lesson 7 that the _run() API is essentially identical to the _link() API. That is incorrect.
When an application is _run(), it pushes the current application down the application stack and disables it. The _run() application is then loaded and executed.
When an application is _link(), it becomes part of the currently running application.
The difference between these two is that all functions of the previous application are disabled when a subprogram is _run(). A _link()ed partition is loaded into memory as part of the current application, so all features of the current application are still enabled.
The _replace() API falls into the same category as _run() in that it disables the currently running application. The difference is that when the _run() application completes, the "pushed" application is re-activated (from initialization, not from where it left off). A _replace()ed application is pushed out of the application stack forever.
Sorry for the bad information.
When an application is _run(), it pushes the current application down the application stack and disables it. The _run() application is then loaded and executed.
When an application is _link(), it becomes part of the currently running application.
The difference between these two is that all functions of the previous application are disabled when a subprogram is _run(). A _link()ed partition is loaded into memory as part of the current application, so all features of the current application are still enabled.
The _replace() API falls into the same category as _run() in that it disables the currently running application. The difference is that when the _run() application completes, the "pushed" application is re-activated (from initialization, not from where it left off). A _replace()ed application is pushed out of the application stack forever.
Sorry for the bad information.