The SemWare Editor


The SemWare Editor is a text editor computer program for MS-DOS, OS/2, and Windows.
Starting in November 1985 as a shareware program called Qedit, it was later modified to run as a Terminate and Stay Resident program, and ported to OS/2 and eventually evolved to TSE. TSE was eventually ported to Windows.
TSE supports a Pascal-based macro language, regular expression search and replace, keystroke recording and playback, full undo and redo, shortcut key assignment that allow extensive modification of the functionality of the text editor, and other features. Like its predecessor Qedit, TSE is used by programmers and others.

Qedit

Qedit was a versatile MS-DOS text editor requiring 50 KB of memory.
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, extended memory and virtual memory, up to a maximum of 16MB.
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.
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.
The last version released for OS/2 was "TSE Junior/2" v4.00e released on February, 1997. 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 support. It retailed at the time for $99 and was supplied with a copy of the DOS basic version.

The SemWare Editor (TSE)

Qedit was rewritten and significantly expanded, and eventually released as The SemWare Editor 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.
New TSE features included a more powerful scripting language, regular expressions, a native Win32 port, SAL access to Win32 DLL entry points, a 'graphical' port using the native Windows GDI, optional native dialogs, and graphical features such as window transparency.

User interface

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. Version 4.0 included the Win32 application rewritten as a pixel-based graphical application 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.

SemWare Application Language

The SemWare Application Language 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
endfor
end

Data types

SAL supports integer and string data types.
An integer in SAL is a 32-bit base-2 signed integral numeric; a string is a 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.

Timeline