The SemWare Editor

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
The Semware Editor (TSE)
Original author(s)Sammy Mitchell
Developer(s)The SemWare Corporation
Initial release1985; 34 years ago (1985)
Stable release
4.4 / June 24, 2005; 13 years ago (2005-06-24)
Operating systemWindows, Linux (beta), MS-DOS, OS/2
Available inC
TypeText editor

The SemWare Editor (TSE) is a text editor computer program for MS-DOS, OS/2, and Windows.

Starting in November 1985 as a shareware program called Qedit. Qedit was later modified to run as a Terminate and Stay Resident (TSR) program, and ported to OS/2[1] and eventually evolved (via rewrite) to TSE. TSE was eventually ported to Windows.

TSE supports a Pascal-based macro language (SemWare Application Language or SAL), regular expression search and replace, keystroke recording and playback, full undo and redo, shortcut key assignment (both as configuration and on the fly) that allow extensive modification of the functionality of the text editor, and other features. Like its predecessor Qedit, TSE is used by programmers[2] and others.

There are two online support discussion groups that include long time accomplished users and the developer, Sammy Mitchell of SemWare Corporation.

SemWare Corporation is based in Kennesaw, Georgia.

SemWare started as shareware, but became commercial software.


Qedit was a versatile MS-DOS text editor requiring 50 KB of memory;[3] fast I/O, search,[citation needed] and responsive; and a text-based macro language. Qedit implemented its engine and much of its application functionality in native code, with a small percentage of functionality implemented via the macro language, unlike Brief, Epsilon and other popular programmer editors of the time which implemented a native engine or core, with the bulk of the program implemented via their scripting languages.

Qedit stores all of the files being edited in RAM. Later versions of Qedit added support for the various systems of memory supported by MS-DOS: expanded memory (EMS), extended memory (XMS) and virtual memory, up to a maximum of 16MB.

Qedit was originally written in Pascal using the Borland Turbo Pascal compiler, and later converted to C and compiled with the Borland Turbo C compiler.[citation needed]

QEdit and TSEJr for OS/2[edit]

Qedit was ported to OS/2 initially as a 16-bit application for Microsoft's OS/2 1.x. This 16-bit OS/2 version of Qedit had version 1.x. Version 1.50 for 16-bit OS/2 is dated February 1990.[4] By that date the "read me" file included with the software claimed "90,000 licensed users of QEdit products, worldwide" -all platforms-.

After IBM and Microsoft parted ways, IBM released a 32-bit version of OS/2 v2.0 in March 1992. Semware ported Qedit for 32-bit OS/2 with the release of Qedit Pro 3.0 for OS/2 on February, 1994 which sold for $99. Version 3.0 included multi-file operation, HPFS support and access to the OS/2 Clipboard. SemWare claimed "over 120,000 licensed users" on all platforms at that time.[5]

The last version released for OS/2 was "TSE Junior/2" v4.00e released on February, 1997.[6] It was functionally equivalent to TSE Junior v4.00e for DOS with the addition of access to OS/2's system-wide clipboard and HPFS (long filenames) support. It retailed at the time for $99 and was supplied with a copy of the DOS basic version.[7]

The SemWare Editor (TSE)[edit]

Qedit was rewritten and significantly expanded, and eventually released as The SemWare Editor (TSE) 1.0. The initial release maintained the tradition of fast I/O and response, fast search, a simple text scripting language and the fundamental design of a native core with functionality split between native code and scripting.[8]

New TSE features included a more powerful scripting language (SAL), regular expressions, a native Win32 port, SAL access to Win32 DLL entry points, a 'graphical' port using the native Windows GDI (previous versions employed the console window), optional native dialogs (e.g. Open), and graphical features such as window transparency.

TSE has at times been referred to as 'Tessie', derived from its acronym (TSE).[citation needed]

TSE used the codename 'RoadRunner' during initial development, until it was formally named TSE. Comments from its author, Sammy Mitchell, indicate the name change was forced due to a trademark dispute raised by another business.[9]

User interface[edit]

Earlier versions of TSE operated in the console window in text-only mode with limited character sets and colors. Version 2.6 added a native Win32 port, but was still character-based (using the Win32 Console APIs). Version 4.0 included the Win32 application rewritten as a pixel-based graphical application (g32.exe) using the GDI. This is commonly misunderstood to be a console application, as it still appears textual despite being a native Win32 graphical application. Visually, g32 appears to work in lines and columns, though it is a graphical application (via WinMain and GDI APIs, not the Console API).

This text-like behavior simplified porting existing scripts and provided a common user experience; there was no attempt to rewrite it as a truly graphical, pixel-based application with multiple windows, MDI, fractional lines/columns and so forth.

The transition to a 'graphical' implementation brought several advantages by being a graphical application not tied to a Windows 'console', including a broader selection of fonts, native dialogs for Open, Save and Print (the text-mode prompts remain available via configuration option) and window resizing.

Qedit and TSE supported various screen modes (different numbers of columns and rows, e.g., 80 × 25) based on the underlying video display options; with the graphical version windows could be sized to any number of rows and columns. This occurred around the same time larger displays were becoming increasingly common.

SemWare Application Language[edit]

The SemWare Application Language (SAL) uses a Pascal-like notation supporting procedural functions and procedures, local and global variables, constants, a preprocessor including common #include and #ifdef keywords, iterative and recursive control structures, and many text-editing-specific functions.

For example:

proc Main()
integer I
for I = 1 TO 3
Warn( "hello world ", I )

Data types[edit]

SAL supports integer and string data types.

An integer in SAL is a 32-bit base-2 signed integral numeric; a string is a (declared) fixed-size array of characters, with a maximum definable length of 255 characters.

SAL APIs support creation of arbitrary buffers, including non-interactive buffers not visible to the user. Many functions are available to access and manipulate buffers and their contents, effectively acting as very large text containers.


Month Year Name Version Description
May 1985 QEdit - First beta version
Nov 1985 QEdit 1.0 First official release - Written in Turbo Pascal
Feb 1986 QEdit 1.2 Multiple windows
Mar 1986 QEdit 1.25 -
May 1986 QEdit 1.25A -
Jul 1986 QEdit 1.30 -
Apr 1987 QEdit 1.35 -
Jun 1987 QEdit 1.36 -
Jul 1987 QEdit 1.37 -
Oct 1987 QEdit 1.38 Size decreased to 29 KB
Feb 1988 QEdit 1.39 -
Feb 1988 QEdit 2.00 Pulldown menus added
Mar 1988 QEdit 2.03 Converted to Turbo Pascal 4.0
Apr 1988 QEdit 2.05 -
Dec 1988 QEdit 2.07 Added Column blocks
Feb 1989 QEdit 2.07A -
Jul 1989 QEdit 2.08 -
Feb 1990 QEdit 2.1 Converted to C / First release of TSR version / First release of QEdit for OS/2 / First German translation
Mar 1991 - - First TSEPro beta / Includes first version of SAL, Virtual memory support, multifile, block support, all in a 30 KB DOS .EXE.
Aug 1991 QEdit 2.15 -
- 1992 - - Product line split into TSE Jr. (formerly QEdit) and TSE Pro
Mar 1993 TSEPro 1.0 First release, Virtual memory, macro language
Feb 1994 QEdit 3.0 Last product named QEdit / HPFS support in OS/2 version
Sep 1994 TSEPro 2.0 Help system, history
Mar 1995 TSEJr 4.0 QEdit renamed to TSEJr
Sep 1995 TSEPro 2.5 Multifile find, save state, last DOS version
Oct 1996 TSEPro 2.6 First Win32 version - Console only
Feb 1997 TSE JR/2 v4 for 32-bit IBM OS/2[10] 4.0 First OS/2 version of TSEJr- Console only
Mar 1997 - - First experimental Windows GUI version
Jun 1997 TSEPro 2.8 Color syntax highlighting
Dec 1998 - - Experimental Windows GUI version killed
Apr 2001 TSEPro 3.0 Undo/redo
May 2002 TSEPro 4.0 First GUI version released
Feb 2004 TSEPro 4.2 -
Oct 2004 - - First beta for Linux released
May 2005 TSEPro 4.4 -

See also[edit]


  1. ^ Wilburn, Gene (July 5, 1993). "Homesteading the OS/2 applications farm". Computing Canada. 19 (14): 22. I took the plunge into native apps by obtaining OS/2 versions of two of my favorite DOS programs - QEdit for OS/2 and Buerg's LIST for OS/2.
  2. ^ Wakoopa stats on TSE Pro as text editor
  3. ^ Rife, Bob (January 27, 1993). "Qedit fast, simple to use". The Globe and Mail. p. 9. Besides speed and ease of use, Qedit is compact, taking only 50 KB of space, compared with many other editors that can be 10 times the size.
  4. ^
  5. ^
  6. ^
  7. ^
  8. ^ Holtzman, Jeff (April 1994). "Build your own text editor". Popular Electronics. 11 (4): 76. TSE is relatively speedy, although it's not as fast as Qedit. (The reason is that Qedit is strictly a RAM-based editor that cannot edit flies larger than available RAM.) On the other hand, TSE has numerous powerful features, including column-mode operations, sorting, regular expression search/replace, intelligent tabbing, support for C, C++. and Pascal program flies, and the ability to execute DOS programs (e.g., compilers and print utilities).
  9. ^
  10. ^

External links[edit]