Sphinx.doc v2.5b © 1991, Nicolas Dade. All Rights Reserved permission is hereby granted for non-commercial duplication and distribution doc file for the SPHINX: AmigaDOS device last revised: January 9th, 1992 * no guarantee is stated or implied by the author concerning the * * suitability of this program for any purpose what so ever, and the * * author can take no responsability as to any damages, disappoint- * * ments, etc... that follow the (attempted) use of this program. * * sometimes cryptic text appears in parenthesis in the middle of the * * text. if you do not understand it then ignore it, it is not for * * you (it has to do with programing). * SPHINX is a replacement for/complement to the CON: and NEWCON: devices. It is what I believe NEWCON should have been, although NEWCON could not be like SPHINX and remain compatible with CON:. In light of this, SPHINX does almost everything NEWCON does (see Incompatibili- ties & Strange Differences), and a lot more: It remembers the text that has scroll off the window, and lets you scroll back to it with various keystrokes and a scroll gadget. It allows non-blocking type-ahead. The line editor has an undo buffer/function. It has a much more usefull input line comparison algorithms than NEWCON. It allows a filerequester to be used to insert file paths & names. It will complete a partially typed word by searching back in saved text for words which start in the same way. It allows the window to iconized even while things are going on without loosing any output, and open the window to the full size of the screen w/ one key- stroke. It has an unlimited type-head buffer (NEWCON only allows a max of 256 bytes to be typed ahead). It allows any character to be placed in the input buffer (even null, Ctrl-@). It allows the window to be resized without loosing any output. It allows text be clipped from the SPHINX to the input line you are building, the clipboard (unit 0), or a file. It allows the contents of the clipboard (unit 0) or of a file to be inserted into the input line you are building, and that input can be parsed as if it had been typed in, or just inserted literally at the cursor. When the file is being inserted, the insertion does not put the rest of SPHINX to sleep--you can even type in commands while the insertion is taking place and have them be executed without the inserted text ending up in your command line. Also this means you can clip text from the result of the insertion while the insertion is taking place. So you can start an insertion from an "infinitly large" file/device (like AUX:), and still be able to use the result from various commands as soon as it is available. It allows any two fixed-width fonts to be used, one for writes (output), and the other for input. The input text can be drawn in a user configurable color for easy different- iation from written text. It allows any one shot IFF sound sample to be played when the BELL character is written and when input is requested. Ten often used input strings can be programed into C-F1 through C-F10. Windows are automatically moved, and resized, if they cannot be opened where the user specified due to the size of the wbscreen. Multiple SPHINXs share most of their data and code so that having differently named/configured SPHINXs doesn't cost much more memory. It is written completely in assembler, which ends up making its speed is about that of NEWCON, even through it has much more to do, under similar circum- stances. With various speedup tricks, and in certain special circumstances, SPHINX easily outruns NEWCON. Etc.... SPHINX is an AmigaDOS device, not a shell. To use it as part of a CLI, you must pair it up with a shell (C='s, ASH, etc...). All SPHINX does from the point of view of the shell is display text to the user (Write()), return a line of text when read from (Read()), and set the shell's signals when Control-C/D/E/F are hit (and a few other minor things). ------------------------------------------------------------------------------ the device handler SPHINX-Handler, the icon file SShell.info, SPHINXConfig and the .doc files in this package are copyright 1991, Nicolas Dade. All Rights Reserved. Permission is hereby granted for non-commercial duplication and distribution. I don't care if you distribute the files together, but it is rather stupid to distribute one without the others. the complete Sphinxv2.5b package consists of: Sphinx-Handler the SPHINX device handler (put in L:), version 2.5b SShell an empty file here only so that WorkBench can be used on SShell.info SShell.info an optional icon to use with SPHINX (really just for show; this icon just looks better on an interlaced display than the CLI/Shell icon distributed by C=) SPHINXConfig configuration file editor, version 2.5b SPHINXConfig.info icon file for SPHINXConfig MountList.SPHINX fragment of a mountlist which should be appended to the system MountList (devs:Mountlist) docs/AlertChart.doc doc files on various aspects of SPHINX docs/Changes.doc . docs/Commands.doc . docs/Introduction.doc . docs/MountList.doc . docs/QuickReference.doc . docs/Setup.doc . docs/Differences&Bugs.doc . docs/SPHINXConfig.doc . and icon files for the doc files - - - - - - - - - - - - - - - - - - in order to get started, read Setup.doc and then QuickReference.doc abridged list of commands which set SPHINX apart: S-UP search back in old input lines repeatedly, with *x*x*x*...*x* or full pattern matching S-DOWN abort searching of old input line and restore input line Am-W search back for the completion of word at cursor in all text S-Am-R insert file path+name from filerequestor S-A-UP scroll back to previous input line A-BS delete word to the left A-DEL delete word to the right Am-X undo last deletions A-RIGHT/LEFT move cursor on word right/left Am-Z iconify window Am-O open window full size of screen/shrink back Am-I insert from clipbaord (unit 0) S-Am-I insert from file Am-A insert again last insertion Am-C open the configuration window you can clip text from the window using the mouse, and grab words by double-clicking there's a scroll gadget - - - - - - - - - - - - - - - - - - mail to: Nicolas Dade 405 West Delaware Urbana, IL 61801 (USA) will find me. or you can try emailing to nsd20463@uxa.cso.uiuc.edu - - - - - - - - - - - - - - - - - - Glossary: NOTE: definitions only apply within these SPHINX doc files. A- Alternate- alert (n) A window which reads: title of window, `Sphinx Alert Code:', then the alert code. This window is put up by SPHINX to tell the user that something cannot be found/etc... . Cancel by pressing `Ok'. alert (v) to display an alert. block (of text). a string of characters that has been stored in order to be able to draw it in the window, seach through it, etc... write block the whole set of text in write saves between any two input saves, or between the top or bottom of the text and an input save. buffer a block of memory used to contain a group of characters input buffer stores the line being edited. it always appears at the bottom of all other text, and always contains the cursor search buffer stores the string which the user wishes some other input line to match undo buffer stores the characters deleted from the input buffer wrap buffer stores the characters being sent to the window by the program in the background search string same as search buffer C- Control- CLI any Command Line Interpretor: C='s CLI and Shell, ASH, etc... clip (n) the text being clipped clip (v) to use the lmb to define and take text from the window into the input buffer, the clipboard or a file (see insert) cmp abreviation for comparison or compare config abreviation for configuration CR carrage return; ascii character $0d enter (v) a character to type in the character a input line to type RETURN, ENTER, C-M, C-\ or C-Fn, thereby finalizing the current input line, making it available to whatever is reading from this SPHINX, and starting a new one EOF end of file EOL end of line (character); i.e. CR, LF, FF FF form feed; ascii $0c Fn function key number n; i.e. F4 = function key four free (v) to deallocated the memory associated with, and thereby free up memory, and permanantly forget what was freed. gadget (or GG) a rectangular area that, when clicked, on causes some action to take place global involving all the SPHINXs in the machine, even if differently configured (see private, local) iconize a state in which a window is shrunk, but the program is still active. this is usually used to unclutter a screen input text that came in from the keyboard or an insert; the input lines. (text read by Read()) insert (n) the text which is being inserted insert (v) to place text in the input buffer at the cursor without actually typing the text in (the text comes from a private clip, the clipboard or a file) keymap a data structure used to convert raw key strokes to ascii SPHINX uses the machine's default keymap, which is set by the command/program SetMap LF line feed; ascii $0a local involving SPHINXs sharing the same name and configuration (see private, global) LMB left mouse button lock (v) to fix so that some action cannot take place private involving only one SPHINX window (see local, global) RA- Right Amiga- rmb right mouse button S- Shift- SA- Shift + Alternate- SRA- Shift + Right Amiga- save (n) a block of text which SPHINX is saving. input save a block of inputed text, equivalent to an input line write save a subset of a block of text that was written (Write()) to the window. searching a state in which the input buffer, as drawn in the window, contains text from an old input line (and the undo gadget's imagery shows an `S'. spot (1 through 10) a user selected character in the text that the display can be jumped to quickly. (see Fn) string a set of characters in a certain order: i.e. `This is string' strip (v) to remove, to not keep, to not transfer something WB workbench wording a state in which the input buffer, as drawn in the window, has the end of a word which SPHINX found the last time RA-W was pressed, and the next time RA-W is pressed, that end of word will be deleted. writes blocks of text that were written to the window (Write())