by Randell Jesup One of the features of Release 2.0 is that the OS allows the user to change the system default shell, or the UserShell. Any time the user opens a shell with NewShell, executes a script, RUNs a command, or indirectly calls System() with SYS_UserShell, the OS will call the UserShell instead of the BootShell (by default the system sets up the BootShell as the UserShell). Creating UserShells is not easy, and requires doing a fairly large number of things for no apparent reason (the reasons are there, they're just not obvious to the outsider). This article will attempt to give you the information you need in order to create a usable, system-friendly UserShell. Initialization A Word About the Shell's I/O Handles The Main Shell Loop Finding a Program Running a Program Cleanup Installing the New User Shell Credits myshell.c