SEDT
Sedt Version 3.3 Author: Anker Berg-Sonne Description Sedt is a screen editor written with the goal of providing a common editor across a wide range of operating systems. For ease-of-use Sedt is programmed with a keyboard layout similar to EDT. For a complete description of Sedt's features read the documentation in SEDTMAN.EDT. Sedt has been developed in my spare time as a hobby. I cannot provide any formal support or distribution but will be happy to help on a best effort basis if you mail your request to me with a self addressed, postage stamped envelope. Requests should be mailed to Anker Berg-Sonne, 8 Middlemost Way, Stow, MA 01775, U.S.A.. Because of a lack of income from Sedt I cannot provide floppy disks or other media. If you have no other way to obtain Sedt for the ATARI ST and IBM PC and compatibles, mail $25 to me at the above address and I will mail you the most recent version. � Distribution Policy Sedt binaries are being made available for customers and Digital internal use on the condition that the original copyright is not violated or removed, and that no modifications are made to the program without express permission from me. Current versions are maintained on the Digital internal network and may be copied and distributed outside of Digital. On a regular basis updates will be copied to the DECUS library. Sedt is currently available in the following versions: Rainbow 100: MS-DOS VAXmate: MS-DOS IBM PC and compatibles: MS-DOS IBM Convertible: MS-DOS PS/2: MS-DOS Microsoft Windows IBM PC and compatibles: OS/2 protected mode ATARI ST VAX/VMS � Installation Instructions Rainbow CP/M Copy the contents of the CP/M program disk onto your system disk in user area 0. If you prefer the Gold keypad layout copy all the .GLD files into .TXT files. E.g. PIP *.TXT=*.GLD If you want to revert to the EDT keyboard layout copy all .EDT files into .TXT files. E.g. PIP *.TXT=*.EDT After choosing the keyboard layout you can conserve disk space by deleting all .GLD and .EDT files. � Installation Instructions Rainbow, IBM PCs and compatibles MS-DOS and OS/2 Create a directory for the SEDT files using the DOS MD command in the format "CD <drive>:\<directory>". E.g. MD C:\SEDT In this example C is the name of the drive and SEDT the name of the directory that is being created. Ensure that the directory you just created is your default directory with the DOS CD command in the format "CD \<directory>". E.g. C: CD \SEDT Copy the all files from the program disk into the current directory. E.g. COPY A:*.* Copy all .EDT files from the program disk into the current directory as .TXT files. E.g. COPY A:*.EDT A:*.TXT If you are familiar with Sedt you can use it for the next two steps. Add the directory that contains the SEDT files to the PATH command in AUTOEXEC.BAT on your boot drive in the format ";<Drive>:\<directory>". If there is no PATH command in AUTOEXEC.BAT create one that contains the root directory on your boot drive and the SEDT directory. E.g. PATH C:\;C:\SEDT Add a command to create an environment variable called SEDT that points to the directory containing the SEDT files to AUTOEXEC.BAT on your boot drive. E.g. SET SEDT=C:\SEDT\ An example of a complete installation follows: A>C: C>MD \SEDT C>CD \SEDT C>COPY A:*.* C>COPY A:*.EDT *.TXT CD \ COPY CON: AUTOEXEC.BAT DATE TIME PATH C:\;C:\SEDT SET SEDT=C:\SEDT\^Z C> If you prefer the Gold keyboard layout copy all .GLD files to .TXT files. Note that Gold keyboard layouts and help files are only implemented for Digital keyboards. E.g. COPY *.GLD *.TXT To revert back to the EDT keyboard layout copy all .EDT files into .TXT files. E.g. COPY *.EDT *.TXT Once you have Sedt installed refer to the documentation in SEDTMAN.EDT for instructions on how to customize Sedt. � Installation Instructions ATARI ST Install Sedt on you ATARI system by following the instructions given below: Your first action should be to make backup copies of the Sedt disks. Use the backup copies from now on and only use the Sedt disks to create new backup copies. You can either use the backup copy to run Sedt from or copy it's contents onto another disk or into a folder. When you run Sedt from the GEM desktop you should run it from the directory containing all of the files. Under GEM this is done simply by opening a window to the directory and double clicking the program. If you intend to run Sedt from a shell processor, such as the Mark Williams msh, you can install Sedt so that it can be called from any directory without copying the files. Install the directory that contains SEDT.TTP into the PATH environment variable and also create a new environment variable, called SEDT, that points to the directory containing STKEY.TXT and STHLP.TXT. The command "setenv SEDT=C:\SEDT\" will cause Sedt to pick the files out of directory \SEDT on drive C. Do not forget the last backslash! The program SEDT.TTP is intended to be run from a shell processor and given command arguments. You can run it from GEM and supply arguments, but it will not use windows, the mouse or menus. GSEDT.PRG is intended to be run from the GEM desktop and uses windows, mouse and menus, but does not accept command arguments. Sedt is distributed on two single-sided 3 1/2" disks. The first disk contains all files necessary to run Sedt from a shell in command mode. The program on this disk, SEDT.TTP, does not take advantage of GEM, but supports journaling of keystrokes. The second disk contains all files necessary to run Sedt under GEM with full support of windows, mouse and menu. The program on this disk, GSEDT.PRG, does not support command arguments or keystroke journaling. Installation disk 1 contains the following files: SEDT.TTP Shell version of the Sedt program STKEY.TXT Keyboard definition file for the ATARI ST. This file MUST be resident in your current directory when you call Sedt. STHLP.TXT Help file for the ATARI ST. In order to use the interactive help facility this file must be resident in your current directory when you call Sedt. RULER0.TXT Default ruler file. For Sedt to load it properly it must be resident in your current directory when you call Sedt. SEDTMAN.EDT Machine readable copy of Sedt's documentation. This is a 100 page document and should be read for a proper understanding of Sedt. README Distribution policy. SEDT.DOC Revision history and installation instructions. Installation disk 2 contains the following files: GSEDT.PRG GEM version of the Sedt program SEDT.RSC Resource file for the GEM version of Sedt STKEY.TXT Keyboard definition file for the ATARI ST. This file MUST be resident in your current directory when you call Sedt. STHLP.TXT Help file for the ATARI ST. In order to use the interactive help facility this file must be resident in your current directory when you call Sedt. RULER0.TXT Default ruler file. For Sedt to load it properly it must be resident in your current directory when you call Sedt. README Distribution policy. SEDT.DOC Revision history and installation instructions. � Installation Instructions VMS Copy Sedt.Exe, Sedt.Com, *.Edt and *.Gld to a directory. Define the logical name Sedt$Library to point to the directory, the symbol Se*dt:==$Sedt$Library:Sedt and KSe*dt:==@Sedt$Library:Sedt. You do not need write access to Sedt$Library in order to use Sedt. If you use the EDT keypad define the logical names Sedt$VT1XXkeys as Sedt$Library:1XXkeys.Edt Sedt$VT1XXhelp as Sedt$Library:1XXhelp.Edt Sedt$VT2XXkeys as Sedt$Library:2XXkeys.Edt Sedt$VT2XXhelp as Sedt$Library:2XXhelp.Edt Sedt$VK100keys as Sedt$Library:VK100keys.Edt Sedt$VK100help as Sedt$Library:VK100help.Edt If you use the WPS keypad define the logical names Sedt$VT1XXkeys as Sedt$Library:VT1XXkeys.Gld Sedt$VT1XXhelp as Sedt$Library:VT1XXhelp.Gld Sedt$VT2XXkeys as Sedt$Library:VT2XXkeys.Gld Sedt$VT2XXhelp as Sedt$Library:VT2XXhelp.Gld Sedt$VK100keys as Sedt$Library:VK100keys.Gld Sedt$VK100help as Sedt$Library:VK100help.Gld Define the logical name Sedt$Dir to point to a directory which you have write access to. Saved rulers will be stored in this directory. Until you have saved ruler 0 in this directory you will get the message "Could not find ruler file" every time you enter Sedt. Enter ruler mode, define your default ruler settings and save them by typing Gold 0. Example: Assign Sys$Disk:[Mydir] Sedt$Library Assign Sys$Disk:[Mydir] Sedt$Dir Se*dt:==$Sedt$Library:Sedt Assign Sedt$Library:1XXkeys.Edt Sedt$VT1XXkeys Assign Sedt$Library:1XXhelp.Edt Sedt$VT1XXhelp Assign Sedt$Library:2XXkeys.Edt Sedt$VT2XXkeys Assign Sedt$Library:2XXhelp.Edt Sedt$VT2XXhelp Assign Sedt$Library:VK100keys.Edt Sedt$VK100keys Assign Sedt$Library:VK100help.Edt Sedt$VK100help � Known Problems Under MS/DOS you may run out of files when using 3 to 4 concurrent buffers. You should increase the number of concurrent files in CONFIG.SYS to at least 12. The symptom is either a fatal message "Error creating buffer file" or non-fatal "Could not open journal file" or "Could not open input file". When on the MS/DOS versions the column number exceeds 64K the display will become corrupted and Sedt may not be able to recover. There are no plans to correct this problem. � Edit History 1-Jun-1987 Version 3.2 184: 1-Jun-1987 Use CR/LF as line terminators in internal representation Do not use write string firmware call on ATs Do not set change flag when getting file into null buffer Ask for confirmation before recovering from journal file Flag modified buffers in mode line Append a \ to SEDT definition if necessary Ensure complete update of journal file by closing after each write Use direct output to screen memory on IBM PC Merge Rockie Morgan's ULTRIX sources Fix PALETTE command Make 9'th entry of PALETTE background color -v qualifier for direct video memory routines on PC VIDEO=BIOS and VIDEO=DIRECT to control direct video routines 185: 6-JUL-1987 Fix problems in Past_Load and Past_Sav Delete journal file if no recovery is desired Fix problems in VMS versions with new RMS file I/O Make scroll bars position properly 186: 7-Jul-1987 Fix Block cut problems Fix problem switching between windows in WSEDT TABS=EXPANDED/INSERTED in SEDT.CNF Fix :PS command Ensure that files are deleted before opened for write on DOS Wait for horizontal retrace before writing to video memory 187: 20-Jul-1987 Eliminate potential loop in initialization Fix another problem with block paste in replace mode Fix minor problem with vertical movement Speed up file operations 188: 22-Jul-1987 Increase I/O buffer sizes Fix cursor movement problem at end of page @BM entity to match '', "", <>, [], {}, and () pairs Do not append ^Z if there's already one there Get ready to implement VT300 series support Extend maximum record length in key definition file Fix problem with replace mode, CR/LF and end of buffer Check for PS/2 systems and try to set keyboards up Fix problem with block paste of more than 32K - Ent_Count of type long Add IBMAT-339, IBMXT-286, PS/2-50, PS/2-60, IBMXT-II, PS/2-30, PS/2-80 to SYSTEM options in SEDT.CNF Make Sedt work on real mode on OS/2 Only problems with LK250! Minor changes to Windows font selection Streamline keyboard state recognition for LK250 189: 10-Oct-1987 Make :PR default to PRN: in DOS, PRT: on ATARI and LP0: on VMS Use initial video mode to determine video type @XNM for next mark in current direction Fix problem trying to interrogate LK250 on XT and PC models Fix lost cluster problem when overflowing to disk Fix all kinds of shift flag problems entering and exiting Allow screen switches with update off Assume screen is at correct width on ULTRIX and VMS 190: 19-Oct-1987 Expand number of marks to 20 Fix line count on some system types Final implementation of generic system and keyboard Fix peekb routine to eliminate hangs on new AT type systems 191: 22-Oct-1987 Make word entity treat CR/LF pairs properly :SETB for setting block mode :SETD for setting default direction :SETR for setting replace/insert mode :SETT for setting tab expansion mode Fix problem with null execute string :STRP command to strip trailing spaces from entity :STAB command to replace multiple spaces with tabs in entity :RTAB command to replace tabs with spaces in entity 192: 26-Oct-1987 Make Gold Return insert CR and LF in prompt buffer 193: 27-Oct-1987 Make ATARI default to PRN: when printing Use Dave Mitton's PCTYPE routine to get PC model number Fix :SETD Fix WSEDT font problems Switch to unsaved buffer when aborting exit Make split screen mode switch the cursor between the windows Make lower window in split screen mode contain a ruler line Modify LK250 mode request code Make execution automatic when a key with learned input is typed Redefine Gold F18 as learn into any key Further refinements for generic keyboard 194: 3-Nov-1987 RULER=ON and RULER=OFF and :TR to control ruler line display Switch to unsaved buffer after not quit response to prompt Fix screen splitting to make windows same size Make sure learned normal keystrokes are echoed on VMS Ensure screen update after :STRP Only switch between split screens when buffer is in other window 195: 5-Nov-1987 Fix problem with recall of responses with control characters Eliminate showing ruler in other window when rulers are off Fix several bugs in Define_Key and Get_Arg Allow lower case characters in key string Remove OS/2 kludge to check for keyboard input Final fixes to recognition code for PS/2 etc. Fix problem with quit always happening Fix problem making tab replacement with spaces at end of line If same buffer selected in split screen mode, show same buffer in both windows Mark cursor position when waiting for prompt or in other window 196: 11-Nov-1987 Remove KEYBOARD=GENERIC, SYSTEM=GENERIC and -gen options Add MAPPING=OLD, MAPPING=EDT, MAPPING=WPS and MAPPING=SCANCODE to SEDT.CNF options Add -edt, -wps and -gen to command line switches Use extensions .TXT for OLD, .EDT for EDT, .WPS for WPS and .GEN for Generic mapping :ERS to set and edit region :ERC to clear an edit region :CNS to set counter to value <Count> :CNI to increment or decrement counter by <Count> :CNP to insert value of counter in buffer Rebuild with MSC version 5 Speed up B_Get_S (speeds up saving files) Speed up F_gets (speeds up initialization) 197: 20-Nov-1987 Fix wrong point addresses for edit regions Fix problems with replace mode undelete in edit regions Fix problem with block mode undelete in edit regions Fix palette problem with digits in palette Fix bug in Fill_Rest with LF terminated lines Make mouse movement and selection respect window range Make window switch possible with mouse clicks 198: Fix character insertion at end of edit region in replace mode Change scheme for insert behavior at end of edit region Use new firmware entry points for enhanced keyboard :SYQ for quiet spawn. Assumes no input or output from spawned process NUMLOCK=ENABLED or DISABLED in SEDT.CNF to control normal Num Lock action Resolve search lists when editing files under VMS Fix problem with no prompt line under GEM Fixes to scancode mapping keyboard handling Make sure marks get adjusted properly 199: 1-Dec-1987 Make :ERC work properly Only use fully parsed name when input and output files are the same %P token for contents of paste buffer 200: 3-Dec-1987 Fix problems with select point tracking curser when typing Fix several problems with block and replace paste 201: 6-Dec-1987 Use new firmware calls for enhanced keyboard Fix problem with attributes of rights message Fix problem with files containing just linefeeds Test properly for empty paste string with %P Don't display errors when within ^E() :LNX key to end learning Fix numerous problems with adjusting marks that cause Sedt to get confused about end of buffer Fix Num lock problem with enhanced keyboard Fix arrow key problem with enhanced keyboard Set error flag properly when in ^E Fix stack overflow problems Fix problem with order of KEYBOARD= and MAPPING= 202: 10-Dec-1987 Make :LK require an entity Fix problem with edit region on file loaded into other buffers from command line Fix problem with screen shifting in ruler mode when rulers are not displayed Work around a bug in MSC version 5. Caused Sedt to hang trying to beep on an error 203: 14-Dec-1987 Ensure proper erasure when cutting text at end of line More workarounds for MSC V5 bugs Force normal attributed when aborting Set modified flag in :CNP Make sure files get removed properly under VMS (;*) %# token to insert value of counter Set highest function number to 166 in all versions Use model number to select INT16 extensions 204: 22-Dec-1987 Fix problem with Windows version Expand_Com Rewrite header completely when turning updates on Write Working... signal even when updates are off Working OS2 version Do not repaint select region when referenced OS/2 support for LK250 in both DEC extended and compatibility mode Work around MSC 5 optimization bug in :TAD code Make tables large enough for 43 line displays under DOS and OS/2 205: 29-Dec-1987 Improve cut at start of file :SYR<Delimiter><New stdout><Delimiter><New stderr><Delimiter> <Operating system command><Delimiter> to spawn a process with redirected output Fix minor problem removing highlight from selected region 206: 4-Jan-1988 Fix problem in ^E()(|) constructs Fix problem with characters being inserted between CR and LF on VMS Fix problem with @SR being used to move cursor Remove all restrictions, including rights display 207: 5-Jan-1988 Relink without /E/PAC/F switches to eliminate bug Fix problem with :K when error flag is set Improve scrolling behavior when near top of screen 208: 7-Jan-1988 Fix problem with delete note moving backwards in replace mode Only mark cursor with cursor position Make :SYR work on ATARI 209: 12-Jan-1988 Fix problem with access violation on VMS marking cursor Make sure cursor moves forward when deleting in replace mode Make sedt look for .TXT, .EDT, .GLD and .SCN files when no preference is given 210: 13-Jan-1988 Minor syntax problem in VMS version -i<File Name> to select specific initialization file Use count for :X or :Q as exit value for Sedt Turn off select region in :SL First cut at OS/2 enhanced keyboard support Fix key mapping problem with Shift F4 anf F5 on enhanced keyboard Add missing data to help files 211: 17-Jan-1988 Make ATARI and CPM versions use MAPPING= option Make NUMLOCK= option work properly :CNG command to set counter from buffer contents at cursor 212: 20-Jan-1988 @XSR for select region without clearing it Look for -i file in current directory and then in sedt library Ring bell when syntax error is found in SEDT.CNF Make sure select region is highlighted in :CH Use MSC V5 under OS/2 Enhanced keyboard under OS/2 Make Sedt work on Windows version 2 Make Sedt set shift state properly under Windows 213: 5-Feb-1988 Clear select region in :CE Make :TAB skip over characters on overstrike mode Make -<Count>:M clear mark <Count> Make cursor visible when returning from -ega Fix problem with long file names under VMS 214: 9-Feb-1988 Make Yes_No append <Y/N>: :YN command to prompt for a yes/no style question ^E(:YN/Question?/)(:OM/Yes/|:OM/No/). will output Yes or No depending on the response to Question Fix problem with replace mode tabbing 215: 12-Feb-1988 Enable PALETTE for OS/2 Fix problem with keyboard monitor and spawning under OS/2 Fix override problem with SYSTEM= Version 3.3 216: 29-Feb-1988 CONTEXT=SAVED option in SEDT.CNF to save editing context (Cursor position, marks and ruler) and reload with file :CS to save context of current buffer Fix problems with using -s<Size> switch Make Gold W work again on VMS and ULTRIX COLUMN=DISPLAYED or COLUMN=OFF option to control banner line display of column on the banner line (this allows this display in the VMS version) Clear select range when new region is selected 217: 16-Mar-1988 Prevent :WD from working on systems that don't support 132 columns Write context file in ascii instead of binary Ensure proper fill on block cut on ATARI Implement mouse control in OS/2 version Make sure select region gets cleared when new selection is made MOUSE=ENABLED and MOUSE=DISABLED option in SEDT.CNF 218: 20-Mar-1988 Make mouse routines under DOS interrupt driven 219: 23-Mar-1988 CONTEXT=CHECK does not save context automatically, but does load automatically Fix problem with error routine not printing arguments MODE=<number> to set video modes. Support ATI EGA Wonder modes 23,27,33,37,51,52,53,54,58 Reset original screen width when exiting Eliminate duplicate messages when trying to quit from MS-Windows -m<Number> to set video mode in DOS and OS2 Redefine F7 to save file and context Cancel select region when clicking mouse under Windows 220: 30-Mar-1988 SYSTEM=VT100/VT200/VT52/VK100 in SEDT.CNF under VMS and ULTRIX Default to PRN when printing under DOS or OS/2 Allow #<Letter> to select counter variable after all :CN commands Have %# require a letter as in %#A to define counter variable Correct -m behavior Don't try to save context if no file Make MODE=<Hexadecimal Number> 221: 17-Apr-1988 Make small change to mouse interrupt routine Allow drag select with mouse Build Windows version with MSC version 5 Enable toggle switching by clicking mouse on status display Enable window switching in split screen mode by clicking mouse on title bar or ruler line Make Windows mouse routines work exactly the same as DOS and OS/2 mouse routines Change Windows version to move About to File menu ^S() conditional set if select region is active Delete any existing context files when saving and no context save is requested Make Delete and Rubout key delete select region if active and previous character if no select region 222: 22-Apr-1988 :EK<Key> command to execute the key given in <Key> Do not delete context files, but save new context if CONTEXT=CHECK and a context file exists Ensure that \ isn't needed at end of SEDT environment variable Allow line feeds to be inserted with :CH Look for Sedt's files first in current directory, then where the environment variable SEDTP points to and finally where the environment variable SEDT points to REMEMBER=ON option in SEDT.CNF or -o in command line makes Sedt load input file from last command when called without file argument Make backslash work on UK keyboards Enable compose key on LK250 keyboard 223: 4-May-1988 Convert to MSC V 5.1 Convert to OS/2 V 1.10 Make ATARI mouse handling consistent with DOS and OS/2 Fix a number of problems with ATARI version Enable toggling of screen shift with mouse Fix problem with SEDT.REM reading on VMS Ensure that Sedt tried to write SEDT.REM and ruler files in SEDTP, then SEDT and then working directory Enable Num Lock in Windows version by default Enable null characters in command arguments Prvent selection with tiny mouse movements in Windows Only use extended INT16 functions when FIRMWARE=NEWINT16 is set in SEDT.CNF. This allow Turbo Lightning and many strange clones to work better 224: 16-May-1988 Stop using DECID to enquire for terminal type and inquire for primary DA instead. VT52s will not be automatically recognized any more Identify VT300 terminals correctly -wiXXYYHHWW to force Sedt to use a sub-window of the screen XX and YY is the top left corner in 0 based coordinates and HH and WW are the height and width in characters :CNA command to add value of number at cursor to counter Make OS/2 thread stacks 2048 bytes long Set priority of keyboard monitor thread SYSTEM=TANDY1400 for Tandy 1400 LT portables 225: 26-May-1988 Prevent mouse movement from crashing system after exiting Sedt Remember escape character when requesting terminal ID Make sure mouse thread doesn't hog CPU on OS/2 Work around VMS formatting problem in :SAVK Try to fix wide screen problems on Rainbow Make Num Lock work propoerly on LK250 Windows version 226: 3-Jun-1988 Make :CNA and :CNG skip leading spaces and tabs Trap control Cs and terminate long operations when seen 227: 6-Jun-1988 Increase timeout loop counter for keyboard to avoind timeouts on 20MHZ 386 systems Make room in OS/2 data segment to spawn subprocesses 228: 8-Jun-1988 Make sure mouse clicks at the of a line leaves the cursor there Allow comments in SEDT.CNF with a ; at the beginning of the line Fix a bad bug that corrupted internal database on DOS and OS/2 versions 229: 14-Jun-1988 Fix problem with leading spaces in :CNA and :CNG Speed up DOS screen output 230: 25-Jun-1988 Automatic save of files enabled by AUTOSAVE option in SEDT.CNF AUTOSAVE=ON Automatic save of file on 200'th keystroke after buffer is modified, with warning after 180 keystrokes. If buffer is saved before the 200'th keystroke the buffer isn't autosaved AUTOSAVE=t,w t and w are integers. t specifies the number of keystrokes allowed after a modification before an autosave is executed. w is the number of keystrokes before the autosave that the warning is displayed AUTOSAVE=OFF Disables autosaves Make AUTOSAVE=ON and JOURNALING=OFF the default for editing 231: 27-Jun-1988 Get :CNG and :CNA to work properly again Ensure that a .BAK file is only created after the first autosave in order to ensure that the original file can be recovered Several improvements to autosave 232: 1-Jul-1988 More improvements to autosave. Make quit revert properly Finish support for TANDY 1400 LT Make -j always turn journaling on -a to turn autosaves off Make max record size under VMS 32K :CK to checkpoint buffer manually 233: 13-Jul-1988 Make default journaling and no autosaves -j turns journaling off -a turns autosaves on Eliminate strange cursor movements on VMS when echoing