Following the main block you find the code for the two internal procedures the AppBuilder generated, disable_UI and enable_UI. If you use the Section Editor to define internal procedures, the AppBuilder places them at the end of the source file and keeps them in alphabetical order for you. When the compiler encounters an internal procedure it acts much as it does when it finds a trigger block. It compiles the code and places it in a part of the r-code identified by the procedure name rather than by an event. When the AVM encounters a RUN statement for the internal procedure as it executes, it transfers control to the statements for the internal procedure and then returns to the main procedure when it completes.

You can place internal procedure definitions anywhere within the source procedure file. By convention you should place them at the end, but this is strictly an organizational preference. If you use the AppBuilder and its Section Editor to create your procedures, which you should almost always do, then they will organize the code consistently for you.