\subsection{The Status Object} Again a simple thing which maintains a string describinh what the SICSserver is up to. The codes recognized are: \begin{description} \item[eEager] ready to execute commands. \item[eUserWait] user requested wait. \item[eCounting] counting something. \item[eOutOfBeam] there is no beam. \item[ePaused] paused. \item[eDriving] driving bits around. \item[eRunning] moving somewhere. \item[eScanning] doing a scan. \item[eBatch] processing a batch file. \item[eHalted] halt has been called, not used. \item[eDead] server is dead, not used. \item[eInput] waiting for user input in prompting mode. \end{description} Status can be interfaced with: \begin{description} \item[void SetStatus(Status eNew)] sets a new status. \item[int SetStatusFromText(char *text)] sets a new status from text. \item[void KillStatus(void *pData)] deletes status data structures. Status can have callbacks associated with it, these need to be remved by this function. \item[Status GetStatus(void)] retrives the current status. \item[void GetStatusText(char *buf, int iBufLen)] retrieves the status as text. \item[int UserStatus(SConnection *pCon, SicsInterp *pSics, void *pData,\\ int argc, char *argv[])] The object wrapper function for the status object. \item[int ResetStatus(SConnection *pCon, SicsInterp *pSics, void *pData,\\ int argc, char *argv[])] The wrapper function implementing the reset command. \item[int BackupStatus(SConnection *pCon, SicsInterp *pSics, void *pData,\\ int argc, char *argv[])] is the object wrapper function implementing the backup command which saves the server status into a file. This is all of the server. This function does not really belong here. \item[int RestoreStatus(SConnection *pCon, SicsInterp *pSics, void *pData,\\ int argc, char *argv[])] complement to BackupStatus. Reads SICS server status back from file. \end{description}