The SemWare Editor

Last updated
The Semware Editor (TSE)
Original author(s) Sammy Mitchell
Developer(s) The SemWare Corporation
Initial release1985;38 years ago (1985)
Stable release
4.43 [1]   OOjs UI icon edit-ltr-progressive.svg / May 2022
Operating system Windows, Linux, MS-DOS, OS/2
Platform x86
Available inC
Type Text editor
License 2021: BSD-2-Clause [2]
1985: Proprietary
Website www.semware.com

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

Contents

Starting in November 1985 as a shareware program called Qedit, it was later modified to run as a terminate-and-stay-resident (TSR) program, and ported to OS/2 [3] 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 [4] and others.

QEdit

QEdit was an MS-DOS text editor requiring 50 KB of memory. [5]

Manual, box and disk (circa 1990) SemWare-Qedit-BoxManualAndDisk.jpg
Manual, box and disk (circa 1990)

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 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. [6]

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. [7]

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

The SemWare Editor (TSE)

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. [10]

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.

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 (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).

Editions

SemWare Application Language

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:

procMain()integerIforI=1TO3Warn("helloworld",I)endforend

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

Timeline

MonthYearNameVersionDescription
May1985QEditFirst beta version
NovQEdit1.0First official release – Written in Turbo Pascal
Feb1986QEdit1.2Multiple windows
MarQEdit1.25
MayQEdit1.25A
JulQEdit1.30
Apr1987QEdit1.35
JunQEdit1.36
JulQEdit1.37
OctQEdit1.38Size decreased to 29 KB
Feb1988QEdit1.39
FebQEdit2.00Pulldown menus added
MarQEdit2.03Converted to Turbo Pascal 4.0
AprQEdit2.05
DecQEdit2.07Added Column blocks
Feb1989QEdit2.07A
JulQEdit2.08
Feb1990QEdit2.1Converted to C / First release of TSR version / First release of QEdit for OS/2 / First German translation
Mar1991First TSEPro beta / Includes first version of SAL, Virtual memory support, multifile, block support, all in a 30 KB DOS .EXE.
AugQEdit2.15
1992Product line split into TSE Jr. (formerly QEdit) and TSE Pro
Mar1993TSEPro1.0First release, Virtual memory, macro language
Feb1994QEdit3.0Last product named QEdit / HPFS support in OS/2 version
SepTSEPro2.0 Help system, history
Mar1995TSEJr4.0QEdit renamed to TSEJr
SepTSEPro2.5Multifile find, save state, last DOS version
Oct1996TSEPro2.6First Win32 version – Console only
Feb1997TSE JR/2 v4 for 32-bit IBM OS/2 [13] 4.0First OS/2 version of TSEJr – Console only
MarFirst experimental Windows GUI version
JunTSEPro2.8 Color syntax highlighting
Dec1998Experimental Windows GUI version killed
Apr2001TSEPro3.0 Undo/redo
May2002TSEPro4.0First GUI version released
Feb2004TSEPro4.2
OctFirst beta for Linux released
May2005TSEPro4.4
January2022TSEPro4.42Version for Microsoft Windows and version for Linux

See also

Related Research Articles

<span class="mw-page-title-main">Cygwin</span> Unix subsystem for Windows machines

Cygwin is a Unix-like environment and command-line interface for Microsoft Windows. Cygwin's purpose is expressed in its motto: "Get that Linux feeling – on Windows".

<span class="mw-page-title-main">Wine (software)</span> Windows compatibility software

Wine is a free and open-source compatibility layer that aims to allow application software and computer games developed for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, named Winelib, against which developers can compile Windows applications to help port them to Unix-like systems.

<span class="mw-page-title-main">Liberty BASIC</span>

Liberty BASIC (LB) is a commercial computer programming language and integrated development environment (IDE). It has an interpreter, developed in Smalltalk, which recognizes its own dialect of the BASIC programming language. It runs on 16- and 32-bit Windows and OS/2.

<span class="mw-page-title-main">PowerBASIC</span> Software compiler

PowerBASIC, formerly Turbo Basic, is the brand of several commercial compilers by PowerBASIC Inc. that compile a dialect of the BASIC programming language. There are both MS-DOS and Windows versions, and two kinds of the latter: Console and Windows. The MS-DOS version has a syntax similar to that of QBasic and QuickBASIC. The Windows versions use a BASIC syntax expanded to include many Windows functions, and the statements can be combined with calls to the Windows API.

<span class="mw-page-title-main">Windows API</span> Microsofts core set of application programming interfaces on Windows

The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations that are often referred to by their own names. Almost all Windows programs interact with the Windows API. On the Windows NT line of operating systems, a small number use the Native API.

<span class="mw-page-title-main">DJGPP</span> Implementation of the GNU toolchain for DOS

DJ's GNU Programming Platform (DJGPP) is a software development suite for Intel 80386-level and above, IBM PC compatibles which supports DOS operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the GNU Compiler Collection (GCC), and mostly GNU utilities such as Bash, find, tar, ls, GAWK, sed, and ld to DOS Protected Mode Interface (DPMI). Supported languages include C, C++, Objective-C/C++, Ada, Fortran, and Pascal.

<span class="mw-page-title-main">Windows 9x</span> Series of Microsoft Windows computer operating systems

Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in subsequent versions. The first version in the 9x series was Windows 95, which was succeeded by Windows 98 and then Windows Me, which was the third and last version of Windows on the 9x line, until the series was superseded by Windows XP.

<span class="mw-page-title-main">Text-based user interface</span> Type of interface based on outputting to or controlling a text display

In computing, text-based user interfaces (TUI), is a retronym describing a type of user interface (UI) common as an early form of human–computer interaction, before the advent of bitmapped displays and modern conventional graphical user interfaces (GUIs). Like modern GUIs, they can use the entire screen area and may accept mouse and other inputs. They may also use color and often structure the display using box-drawing characters such as ┌ and ╣. The modern context of use is usually a terminal emulator.

<span class="mw-page-title-main">Windows Console</span> Infrastructure for console applications in Microsoft Windows

Windows Console is the infrastructure for console applications in Microsoft Windows. An instance of a Windows Console has a screen buffer and an input buffer. It allows console apps to run inside a window or in hardware text mode. The user can switch between the two using the Alt+↵ Enter key combination. The text mode is unavailable in Windows Vista and later. Starting with Windows 10, however, a native full-screen mode is available.

<span class="mw-page-title-main">Windows Forms</span> Graphical user interface software library

Windows Forms (WinForms) is a free and open-source graphical (GUI) class library included as a part of Microsoft .NET, .NET Framework or Mono, providing a platform to write client applications for desktop, laptop, and tablet PCs. While it is seen as a replacement for the earlier and more complex C++ based Microsoft Foundation Class Library, it does not offer a comparable paradigm and only acts as a platform for the user interface tier in a multi-tier solution.

<span class="mw-page-title-main">Windows NT 3.1</span> First major release of Windows NT, released in 1993

Windows NT 3.1 is the first major release of the Windows NT operating system developed by Microsoft, released on July 27, 1993.

Virtual DOS machines (VDM) refer to a technology that allows running 16-bit/32-bit DOS and 16-bit Windows programs when there is already another operating system running and controlling the hardware.

<span class="mw-page-title-main">Phar Lap Software</span> Software company

Phar Lap Software, Inc., was a software company specializing in software development tools for DOS operating systems. The company was named after the champion New Zealand racehorse Phar Lap. They were most noted for their software allowing developers to access memory beyond the 640 KiB limit of DOS and were an author of the VCPI standard.

<span class="mw-page-title-main">Architecture of Windows NT</span> Overview of the architecture of the Microsoft Windows NT line of operating systems

The architecture of Windows NT, a line of operating systems produced and sold by Microsoft, is a layered design that consists of two main components, user mode and kernel mode. It is a preemptive, reentrant multitasking operating system, which has been designed to work with uniprocessor and symmetrical multiprocessor (SMP)-based computers. To process input/output (I/O) requests, it uses packet-driven I/O, which utilizes I/O request packets (IRPs) and asynchronous I/O. Starting with Windows XP, Microsoft began making 64-bit versions of Windows available; before this, there were only 32-bit versions of these operating systems.

Dynamic-link library (DLL) is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems. These libraries usually have the file extension DLL, OCX, or DRV . The file formats for DLLs are the same as for Windows EXE files – that is, Portable Executable (PE) for 32-bit and 64-bit Windows, and New Executable (NE) for 16-bit Windows. As with EXEs, DLLs can contain code, data, and resources, in any combination.

The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an overview of the core libraries that are included with every modern Windows installation, on top of which most Windows applications are built.

Direct2D is a 2D vector graphics application programming interface (API) designed by Microsoft and implemented in Windows 10, Windows 8, Windows 7 and Windows Server 2008 R2, and also Windows Vista and Windows Server 2008.

<span class="mw-page-title-main">MS-DOS</span> Microsofts discontinued operating system

MS-DOS is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few operating systems attempting to be compatible with MS-DOS, are sometimes referred to as "DOS". MS-DOS was the main operating system for IBM PC compatibles during the 1980s, from which point it was gradually superseded by operating systems offering a graphical user interface (GUI), in various generations of the graphical Microsoft Windows operating system.

References

  1. Error: Unable to display the reference properly. See the documentation for details.
  2. "Generated TSE Manual".
  3. 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.
  4. social.wakoopa.com/software/tse-pro Wakoopa stats on TSE Pro as text editor
  5. 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.
  6. "Metropoli files - metropoli/Pd".
  7. "Archived copy". Archived from the original on 2005-08-10. Retrieved 2009-09-09.{{cite web}}: CS1 maint: archived copy as title (link)
  8. "SAC".
  9. "EDM/2 - A Programmer's Editor Shootout - the SemWare Editor".
  10. 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).
  11. The SemWare® Editor Junior V4.0 for MS-DOS
  12. The SemWare® Editor Products
  13. "OS/2 Shareware BBS Website". www.os2bbs.com. Archived from the original on 2000-12-11.