The SemWare Editor
Encyclopedia
The SemWare Editor is a text editor
Text editor
A text editor is a type of program used for editing plain text files.Text editors are often provided with operating systems or software development packages, and can be used to change configuration files and programming language source code....

 computer program
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...

 for MSDOS, Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, and OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

.

Starting in November 1985 as a shareware
Shareware
The term shareware is a proprietary software that is provided to users without payment on a trial basis and is often limited by any combination of functionality, availability, or convenience. Shareware is often offered as a download from an Internet website or as a compact disc included with a...

 program called "Qedit" (distinct from other programs of the same name), Qedit was eventually modified to run as a Terminate and Stay Resident
Terminate and Stay Resident
Terminate and Stay Resident is a computer system call in DOS computer operating systems that returns control to the system as if the program has quit, but keeps the program in memory...

 (TSR) program, and ported to OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

 and eventually evolved (via rewrite) to TSE. TSE was eventually ported to Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

.

TSE supports a Pascal-based macro language (SemWare Application Language or SAL), regular expression
Regular expression
In computing, a regular expression provides a concise and flexible means for "matching" strings of text, such as particular characters, words, or patterns of characters. Abbreviations for "regular expression" include "regex" and "regexp"...

 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. TSE, like its predecessor Qedit, is used by programmers, 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
Kennesaw, Georgia
Kennesaw is a city in Cobb County, Georgia, United States. It had a population of 29,783 according to the 2010 census. It is part of the Atlanta metropolitan area. Founded in 1887, Kennesaw has a past surrounded with railroad history...

.

SemWare started as shareware
Shareware
The term shareware is a proprietary software that is provided to users without payment on a trial basis and is often limited by any combination of functionality, availability, or convenience. Shareware is often offered as a download from an Internet website or as a compact disc included with a...

, but became commercial software.

Qedit

Qedit was a powerful DOS text editor requiring 50kB of memory; fast I/O
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...

, search, and responsive; and a text-based macro language. Qedit implemented its engine and much of its application functionality in native
Native mode
The term native mode or native code is used in computing in two related senses.*to describe something running on a computer natively or in native mode meaning that it is running without any external support as contrasted to running in emulation....

 code, with a small percentage of functionality implemented via the macro language, unlike Brief
Brief (text editor)
BRIEF was a very popular programmer's text editor in the 1980s and early 1990s. It was designed and developed by UnderWare Inc, a company founded in Providence, Rhode Island by David Nanian and Michael Strickman, and was published by Solution Systems. UnderWare moved to Boston, Massachusetts in 1985...

, Epsilon
Epsilon text editor
Epsilon is a programmer's text editor modelled after Emacs. It resembles Emacs not only in its default keybindings and layout, but also in the fact that it has a Turing-complete extension language in which much of its functionality is implemented. Unlike Emacs, Epsilon's extension language, EEL is...

 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.

Some of Qedit's speed was due to memory-based editing – the editor and all buffers and workspace required physical memory. Later versions of Qedit added support for the various systems of memory supported by MS-DOS: expanded memory
Expanded memory
In DOS memory management, expanded memory is a system of bank switching introduced April 24, 1985 that provided additional memory to DOS programs beyond the limit of conventional memory. Expanded memory uses parts of the address space normally dedicated to communication with peripherals for program...

 (EMS), extended memory
Extended memory
In DOS memory management, extended memory refers to memory above the first megabyte of address space in an IBM PC or compatible with an 80286 or later processor. The term is mainly used under the DOS and Windows operating systems...

 (XMS) and virtual memory
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...

, up to a maximum of 16MB
Megabyte
The megabyte is a multiple of the unit byte for digital information storage or transmission with two different values depending on context: bytes generally for computer memory; and one million bytes generally for computer storage. The IEEE Standards Board has decided that "Mega will mean 1 000...

.

Qedit was originally written in Pascal using the Borland
Borland
Borland Software Corporation is a software company first headquartered in Scotts Valley, California, Cupertino, California and finally Austin, Texas. It is now a Micro Focus subsidiary. It was founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn.-The 1980s:...

 Turbo Pascal
Turbo Pascal
Turbo Pascal is a software development system that includes a compiler and an integrated development environment for the Pascal programming language running on CP/M, CP/M-86, and DOS, developed by Borland under Philippe Kahn's leadership...

 compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

, and later converted to C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 and compiled with the Borland
Borland
Borland Software Corporation is a software company first headquartered in Scotts Valley, California, Cupertino, California and finally Austin, Texas. It is now a Micro Focus subsidiary. It was founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn.-The 1980s:...

 Turbo C
Turbo C
Turbo C is an Integrated Development Environment and compiler for the C programming language from Borland. First introduced in 1987, it was noted for its integrated development environment, small size, extremely fast compile speed, comprehensive manuals and low price.In May 1990, Borland replaced...

 compiler.

QEdit and TSEJr for OS/2

Qedit was ported to OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

 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 . 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 had parted ways, IBM released the first 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, released on February, 1994 and sold for $99. Version 3.0 for 32-bit OS/2 included multi-file operation, HPFS support, and access to the OS/2 Clipboard. Semware claimed by that time "Over 120,000 licensed users" on all platforms.

The last version released for IBM's OS/2 was "TSE Junior/2" v4.00e released on February, 1997, functionally equivalent to TSE Junior v4.00e for DOS, with the addition of access to the system-wide OS/2 clipboard, and HPFS (long filenames) 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 greatly expanded, ultimately released as The SemWare Editor (TSE) 1.0. The initial release, like Qedit, had 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 script.

TSE features not in Qedit included a new, more powerful scripting language (SAL), regular expression
Regular expression
In computing, a regular expression provides a concise and flexible means for "matching" strings of text, such as particular characters, words, or patterns of characters. Abbreviations for "regular expression" include "regex" and "regexp"...

s, a native Win32 port, SAL access to Win32 DLL
Dynamic-link library
Dynamic-link library , or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems...

 entrypoints, a 'graphical' port, 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).

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

Graphical Text User Interface

Earlier versions of TSE were text-mode, character-based applications, like its ancestor Qedit. Version 2.6 added a native
Native mode
The term native mode or native code is used in computing in two related senses.*to describe something running on a computer natively or in native mode meaning that it is running without any external support as contrasted to running in emulation....

 Win32 port, but still character-based (using the Win32 Console
Win32 console
Win32 console is a text user interface implementation within the system of Windows API, which runs console applications. A Win32 console has a screen buffer and an input buffer, and is available both as a window or in text mode screen, with switching back and forth available via Alt-Enter...

 APIs). Version 4.0 included the Win32 application rewritten as a pixel
Pixel
In digital imaging, a pixel, or pel, is a single point in a raster image, or the smallest addressable screen element in a display device; it is the smallest unit of picture that can be represented or controlled....

-based graphical application (g32.exe). This is commonly misunderstood to be a console application, as it still appears textual, despite being a native
Native mode
The term native mode or native code is used in computing in two related senses.*to describe something running on a computer natively or in native mode meaning that it is running without any external support as contrasted to running in emulation....

 Win32 graphical application. Visually, g32 appears to work in lines and columns, though it is a graphical application (via WinMain
Message loop in Microsoft Windows
Microsoft Windows programs are event-based. They act upon messages that the operating system posts to the main thread of the application. These messages are received from the message queue by the application by repeatedly calling the GetMessage function in a section of code called the "event...

 and GDI
Graphics Device Interface
The Graphics Device Interface is a Microsoft Windows application programming interface and core operating system component responsible for representing graphical objects and transmitting them to output devices such as monitors and printers....

 APIs, not the Console API).

This text-like behavior greatly simplified porting existing scripts and provided a common user experience; there was no attempt to rewrite it as a truly graphical, pixel
Pixel
In digital imaging, a pixel, or pel, is a single point in a raster image, or the smallest addressable screen element in a display device; it is the smallest unit of picture that can be represented or controlled....

-based application with multiple windows, MDI
MDI
MDI may refer to:In computer science:*Media Delivery Index, a metric used in IPTV networks*Medium dependent interface, a type of Ethernet port connection*Microsoft Document Imaging Format, a proprietary file format...

, 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

The Semware Application Language (SAL) uses a Pascal
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...

-like notation supporting procedural
Procedural programming
Procedural programming can sometimes be used as a synonym for imperative programming , but can also refer to a programming paradigm, derived from structured programming, based upon the concept of the procedure call...

 functions and procedures
Subroutine
In computer science, a subroutine is a portion of code within a larger program that performs a specific task and is relatively independent of the remaining code....

, local
Local variable
In computer science, a local variable is a variable that is given local scope. Such a variable is accessible only from the function or block in which it is declared. In programming languages with only two levels of visibility, local variables are contrasted with global variables...

 and global
Global variable
In computer programming, a global variable is a variable that is accessible in every scope . Interaction mechanisms with global variables are called global environment mechanisms...

 variables
Variable (programming)
In computer programming, a variable is a symbolic name given to some known or unknown quantity or information, for the purpose of allowing the name to be used independently of the information it represents...

, constants, a preprocessor
Preprocessor
In computer science, a preprocessor is a program that processes its input data to produce output that is used as input to another program. The output is said to be a preprocessed form of the input data, which is often used by some subsequent programs like compilers...

 including common #include and #ifdef keywords
Keyword (computer programming)
In computer programming, a keyword is a word or identifier that has a particular meaning to the programming language. The meaning of keywords — and, indeed, the meaning of the notion of keyword — differs widely from language to language....

, iterative and recursive
Recursion
Recursion is the process of repeating items in a self-similar way. For instance, when the surfaces of two mirrors are exactly parallel with each other the nested images that occur are a form of infinite recursion. The term has a variety of meanings specific to a variety of disciplines ranging from...

 control structures, and many text-editing-specific functions.

For example:


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

Data types

SAL supports integer and string data types.

An integer
Integer
The integers are formed by the natural numbers together with the negatives of the non-zero natural numbers .They are known as Positive and Negative Integers respectively...

 in SAL is a 32-bit base-2 signed integral numeric; a string
String (computer science)
In formal languages, which are used in mathematical logic and theoretical computer science, a string is a finite sequence of symbols that are chosen from a set or alphabet....

 is a (declared) fixed-size array of characters, with a maximum definable length of 255 characters.

SAL APIs support creation of arbitrary buffers
Buffer (computer science)
In computer science, a buffer is a region of a physical memory storage used to temporarily hold data while it is being moved from one place to another. Typically, the data is stored in a buffer as it is retrieved from an input device or just before it is sent to an output device...

, 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.

Versions: History: Time Line

MONTH YEAR NAME VERSION DESCRIPTION
May 1985 QEdit - First beta version
Nov 1985 QEdit 1.0 First official release - Written in Turbo Pascal
Turbo Pascal
Turbo Pascal is a software development system that includes a compiler and an integrated development environment for the Pascal programming language running on CP/M, CP/M-86, and DOS, developed by Borland under Philippe Kahn's leadership...

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 29k
Feb 1988 QEdit 1.39 -
Feb 1988 QEdit 2.00 Pulldown menus
Menu (computing)
In computing and telecommunications, a menu is a list of commands presented to an operator by a computer or communications system. A menu is used in contrast to a command-line interface, where instructions to the computer are given in the form of commands .Choices given from a menu may be selected...

 added
Mar 1988 QEdit 2.03 Converted to Turbo Pascal
Turbo Pascal
Turbo Pascal is a software development system that includes a compiler and an integrated development environment for the Pascal programming language running on CP/M, CP/M-86, and DOS, developed by Borland under Philippe Kahn's leadership...

 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
Terminate and Stay Resident
Terminate and Stay Resident is a computer system call in DOS computer operating systems that returns control to the system as if the program has quit, but keeps the program in memory...

 version / First release of QEdit for OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

 / First German
German language
German is a West Germanic language, related to and classified alongside English and Dutch. With an estimated 90 – 98 million native speakers, German is one of the world's major languages and is the most widely-spoken first language in the European Union....

 translation
Mar 1991 - - First TSEPro beta / Includes first version of SAL, Virtual memory
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...

 support, multifile, block support, all in a 30k DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...

 .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
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...

, macro language
Feb 1994 QEdit 3.0 Last product named QEdit / HPFS support in OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

 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 4.0 First OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

 version of TSEJr- Console only
Mar 1997 - - First experimental Windows GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 version
Jun 1997 TSEPro 2.8 Color syntax highlighting
Syntax highlighting
Syntax highlighting is a feature of some text editors that display text—especially source code—in different colors and fonts according to the category of terms. This feature eases writing in a structured language such as a programming language or a markup language as both structures and...

Dec 1998 - - Experimental Windows GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 version killed
Apr 2001 TSEPro 3.0 Undo
Undo
Undo is a command in many computer programs. It erases the last change done to the document reverting it to an older state. In some more advanced programs such as graphic processing, undo will negate the last command done to the file being edited....

/redo
May 2002 TSEPro 4.0 First GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 version released
Feb 2004 TSEPro 4.2 -
Oct 2004 - - First beta for Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

released
May 2005 TSEPro 4.4 -

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK