ProDos GS/OS, and Instant Pascal: Launching and Quitting

We have an AppleTalk network system and have discovered some strange behavior with certain applications on the Apple II.

Using current software, there are three shell programs (besides BASIC) available for AppleTalk network system users. They are Aristotle, the Finder, and Let's Share. We have found that some applications work perfectly when launched from one of the shells, but not when launched from another. Also, when quitting, some return to the shell from which they were launched, while others return directly to the File Server Log-On screen.

Here are some examples:

- Mavis Beacon Teaches Typing (Software Toolworks) works fine when launched from Aristotle or the Finder, but not from Let's Share

- Medley (Milliken) always returns the user to the Log-On screen on quitting.

Some applications seem to return the user to the shell from which they were launched, while others return the user to the server-defined startup application. (I have no concrete examples of this, but here's an illustration)

- The user logs on and goes to Aristotle, his startup application. He launches the Finder from Aristotle and from there launches "Application X". On quitting Application X, he is returned to the Finder, and on quitting the Finder (Special Menu, Shut Down, Return to Launching Application), he is returned to Aristotle.

- The user repeats the above process to get to the Finder, but this time launches "Application Y". On quitting Application Y, he is returned directly to Aristotle, even though he launched Application Y from the Finder.

Do you have any clues about these differences? Do some of these shells leave memory in a different state than others when they launch applications? Are there any standards for this sort of thing? Is Let's Share a known offender, or does it follow whatever rules there are? Is there a standard GS/OS or ProDOS 16 Quit call? Is everyone not implementing it correctly?

Here's a related I have tried putting ProDOS applications that reside on floppy disks into Aristotle menus. If I put the disk in the drive and choose the menu item, the application launches properly and, on quitting, seems to return the user to Aristotle without a hitch. However, a colleague reports that when doing this with Instant Pascal, the server connection is dropped somewhere, so quitting fails. Do some applications disable network listeners or trash the memory where network files resides? Is there any way to tell what might work in this fashion and what might not?
The behavior is determined by which operating system the application is written under: GS/OS or ProDOS 8.

The ProDOS 8 quit command is quite simple and does not have the ability to put the name of the application to return to on the return stack. ProDOS applications "quit to" the program named Start in the GS/OS volume. As shipped, this is the Finder. However, if the startup program has been set in the AppleShare Admin application, the Finder may not be the "start" program any longer. Whatever is set in Admin is the application to which the ProDOS 8 programs return.

GS/OS applications have the ability to put the name of the program to which one returns onto the return stack. If properly written, quitting a GS/OS application returns the user to the same application that launched the GS/OS program just quit.

For your examples:

- We defer to Russ Systems about all Let's Share issues.

- We are still trying to work a variety of issues out with Medley. We will add this one to the list to investigate.

- With Aristotle (ProDOS 8) as the Admin set startup application, launching the Finder (GS/OS), then launching "Application X" (apparently, a GS/OS application from the behavior described), and quitting "Application X", it would be correct to finish at the Finder, if "Application X" is, indeed, a GS/OS application. Quitting the Finder (GS/OS) would then return to the application that launched it, Aristotle.

- In the next example, instead of launching "Application X", the user launches "Application Y" (apparently, a ProDOS 8 application from the behavior described), then quits "Application Y", and finishes in Aristotle. This would be the correct behavior for a ProDOS 8 "Application Y".

Instant Pascal has several issues associated with it. The primary issue is that it is neither a ProDOS nor a GS/OS application. Instant Pascal has its own operating system with its own input/output routines. These I/O routines know nothing about the network. It is, thus, totally logical that Instant Pascal disregards all network activities. The only solution is to rewrite the Instant Pascal operating system. It is unlikely that this solution will ever be considered.
Published Date: Feb 20, 2012