ProvideX
ProvideX is a Canadian Business BASIC - an interpreted, tokenised language bundled with its own keyed-file database, GUI toolkit, thin clients and ODBC driver - that Mike King's Sybex Ltd of Markham, Ontario released in 1992 as the Windows successor to its Sybex Business Basic, that State of the Art, publisher of MAS 90 (today's Sage 100), bought in 1997, and that was retired at the end of 2011, a year after Sage handed the product line back to its author, whose PVX Plus Technologies continues it as PxPlus
Created by Michael F. (Mike) King, who founded Sybex Ltd in Markham, Ontario in 1982, wrote Honeywell Business Basic for the DPS-6 in 1984 and Sybex Business Basic for DOS and Unix in 1986, and turned it into ProvideX in 1992. The product passed to State of the Art in 1997, to Sage (as Sage Software Canada / Best Software Canada) in 1998, and back to King's PVX Plus Technologies in October 2010
ProvideX is a Business BASIC: one of the family of BASIC dialects that grew up on 1970s minicomputers, added COBOL-style indexed files and terminal control to the language, and then spent the 1980s and 1990s being ported to Unix, DOS and Windows so that the accounting and distribution applications written in them could follow their customers onto new hardware. It was written by Mike King at Sybex Ltd in Markham, Ontario, first as Honeywell Business Basic for the DPS-6 (1984), then as Sybex Business Basic for DOS and Unix (1986), and finally, with the first Windows version in 1992, as ProvideX. Its fortunes were bound up with a single customer: State of the Art, Inc., publisher of the MAS 90 accounting suite, bought Sybex in 1997, was itself bought by Britain’s Sage Group in 1998, and for the next twelve years ProvideX was a Sage product, developed in Markham and used both as the engine of MAS 90/200 and as a commercial development system sold to other software houses. In October 2010 Sage handed the product line back to King’s PVX Plus Technologies, which retired the ProvideX name at the end of 2011 and has carried the same interpreter forward as PxPlus ever since. The master-list entry that brought ProvideX to this site - 1992, procedural and object-oriented, business, dormant - is right on every count, with the caveat that “dormant” describes the name, not the code: PxPlus 2026 shipped in May 2026 and Sage 100 2026, released in April 2026, still runs on a ProvideX-descended interpreter.
History and Origins
Sybex, Honeywell and the Toronto OEMs (1982-1991)
The earliest history comes from PVX Plus’s own product-history page, which is the only account of the years before the language had a name. Mike King founded Sybex Ltd in 1982. (The company has nothing to do with the Californian computer-book publisher of the same name.) In 1984 Sybex created Honeywell Business Basic, a Business Basic for Honeywell’s DPS-6 minicomputer family, and signed a worldwide distribution agreement with Honeywell; in 1986 it produced Sybex Business Basic (SBB) version 1 for DOS and Unix, “initially sold on an OEM basis to a number of developers in and around the Toronto area”. That OEM model - the interpreter is sold to software houses, who bundle it invisibly with their applications - is how every Business Basic was sold, and it explains why ProvideX would be simultaneously widely deployed and almost unknown: as the French Wikipedia article observes, the end users of ProvideX applications generally have no idea what they are written in.
The Business Basic FAQ of February 1997, the standard reference of that small world, lists Sybex/BBIcon of Canada among the vendors that ported Business Basic from proprietary minicomputers “to Unix, Xenix, VMS, and DOS” in the 1980s, alongside Thoroughbred, BASIS International, Microshare and Transoft.
ProvideX (1992-1997)
In 1992 Sybex built the first Microsoft Windows version of SBB, renamed the product ProvideX and set up a separate company, BBICON Incorporated, to market it worldwide. The name is pronounced “pro-VIDE-ex” and abbreviated PVX; the abbreviation lives on in the file extensions (.pvx programs, .pvc classes, .pvk keyed files, .pvt text), in the name of the interpreter, and in the name of the company that now owns it. The product-history page records Version 3 in 1995, which “added numerous features including line numberless programs” - a Business Basic milestone, since these languages had inherited mandatory line numbers from 1960s BASIC - and Version 4 in 1997, which borrowed C’s +=, ++ and -= operators, allowed multi-line IF statements, and added memory-resident work files.
The 1997 FAQ gives the company’s address as Suite 204, 8920 Woodbine Avenue, Markham, Ontario - twelve years later the ProvideX manual would still be published from Suite 400 of the same building - and lists EDIAS Software International of Hofheim am Taunus, Germany, as European distributor, with EDIAS’s Arizona office and MidWare Technologies of Massachusetts distributing in the United States. The same FAQ lists “Sybex Business Basic/JCOS” as offered by Jonas Systems, the club-management software house that grew into Jonas Software; twenty-six years later Jonas would buy PVX Plus.
State of the Art, Sage, Best (1997-2010)
In 1997 Sybex Ltd and BBICON were bought by State of the Art, Inc. of Irvine, California, whose MAS 90 (reportedly “Master Accounting Series for the 90s”) had been sold since the mid-1980s and was being rebuilt for Windows. The purchase made ProvideX’s largest customer its owner. In 1998 Sage Group plc acquired State of the Art, and ProvideX became a Sage product: the Markham unit traded as Sage Software Canada and, during the years when Sage’s North American business was branded Best Software, as Best Software Canada, which is why the PVX Plus archive warns that old ProvideX documents “may still bear the original Sage Software (or Best Software) copyright”. Sage kept the product on the market under its own name, with a web site at pvx.com (now dead), and continued to develop it at a steady pace.
The dated record for these years is the PVX Plus archive server, which preserved the original upload dates of every build when it was rebuilt in April 2024. Version 4.02 (1998) introduced a graphical editor, TCP access, embedded I/O procedures and “thin client-server technologies” - the WindX thin client, which let a ProvideX program running on a Unix or Windows server paint its windows on a remote PC. 1999 brought multi-segment files that broke the 2 GB limit on every operating system, and control properties that could be changed at run time; 2000 added direct access to COM objects. Version 5.00 (builds of 24 July 2001) removed the string-length limit, added Oracle access, drag-and-drop and a charting control, and introduced object-oriented programming. Version 6.00 (March-May 2004) enlarged the keyed-file system, added a report writer, a print viewer and OLE-server support. Version 7 arrived in August 2005 according to the product history (the archived 7.00 build 0040 dates from February 2006), and the pace then quickened - 7.50 and 8.00 in 2007, 7.70 (with the first 64-bit Linux build), 8.10 and 8.20 in 2008, 8.30 and 9.00 in 2009 - as Sage added the JavX Java thin client, an Eclipse plug-in, native MySQL and DB2 access, XML support and the Views query system. The 414-page User’s Guide for 8.30, dated 27 May 2009, is the fullest surviving description of the language.
Meanwhile Sage’s own use of the language deepened. Microsoft’s FRx financial reporter download pages listed compatibility separately with “Sage MAS 90 Providex 3.7” and “Sage MAS 90/MAS 200 Providex 4.x”, which indicates that MAS 90’s Level 3.7 (around 2002) and 4.x generations ran on the interpreter, and the MAS 90 4.0 “Business Framework” of the mid-2000s was built on the object-oriented ProvideX of Version 5 and later. Sage’s February 2006 technology white paper described “the Sage MAS 90 Business Development Environment (powered by ProvideX)” as “the development language, database and tool set used by both Sage MAS 90 Developers and a network of over 100 Master Developers” - and, in passing, as “a 32-bit graphical, object-oriented development platform written in C++”, the only published statement this site has found of what the interpreter itself is written in.
PVX Plus and the hand-back (2005-2011)
In 2005 Mike King founded PVX Plus Technologies in Markham and released the first PxPlus, an “enhanced” ProvideX-compatible interpreter with enhanced memory files, auto-complete input and an Apache HTTP interface; 2006 added MySQL interfaces, fax delivery and widgets, and 2008 iNomads, which ran NOMADS panel applications in a browser. For five years there were therefore two compatible interpreters from two companies, one of them the language’s designer. ProvideX 9.10, built between June and September 2010 for AIX, HP-UX, SCO, UnixWare, Solaris, Mac OS X on PowerPC, four Linux distributions, FreeBSD and 32- and 64-bit Windows, was Sage’s last release. On 8 October 2010, “the end result of almost 2 years of negotiations between Sage Group, EDIAS, and PVX Plus Technologies”, PVX Plus took over “all ongoing sales, development, and support of the ProvideX product line for Independent Software Vendors”. Its pricing page, updated 10 February 2012, records the consequence: ProvideX reached end of life on 31 December 2011, all new licences were issued as PxPlus v10, and support for ProvideX executables under PxPlus licences was to lapse with PxPlus v12. Sage retained the trademark - every PVX Plus page still says “ProvideX is a registered trademark of Sage Software” - and kept its own ProvideX builds inside what, from 2012, was called Sage 100.
PxPlus (2012-2026)
PxPlus has been released roughly yearly since, under year names from PxPlus 2014 (v12) onward: 2016 (v13), 2017 (v14), 2018 (v15), 2019 (v16, with Android and iOS app generation, panel generators and AES encryption), through v20 (PxPlus 2023, October 2023), v21 (May 2024, with a Visual Studio Code extension and dark and light themes), v22 (May 2025, with a .NET interface and a JSON object) and v23 (PxPlus 2026, May 2026, with rounded-corner controls, an authenticator app for two-factor login, an AI assistant and OpenSSL 3.5). PVX Plus itself was acquired on 31 March 2023 by Jonas Software, an operating group of Constellation Software, for its Club and Hospitality portfolio - Mike King, still president, said Jonas’s “Software For Life” philosophy matched his own - and that portfolio was rebranded Vertus Group on 5 December 2023. EDIAS has been the European master distributor since 2005.
Design Philosophy
An environment, not just a language
The 8.30 manual’s opening sentence calls ProvideX “a programming language and integrated development environment for building sophisticated business applications”, and lists what the base system includes: the language interpreter, the NOMADS GUI toolset, and built-in support for COM/OCX/ActiveX, DDE, DLLs, ZLIB, SSL and PDF. Around that base sat the separately licensed pieces - WindX, JavX and UltraFX thin clients, the Application Server, local and client/server ODBC drivers, the Web Server, an Internet Toolkit, RPC, XML support, native OCI, DB2, MySQL and ODBC database access, a Report Writer and Views. The manual’s argument for this bundling is explicitly commercial: “your product support comes from a single source instead [of] different (and indifferent) vendors”, and because “the application language is closely tied to the database technology”, data access is fast. The manual is equally explicit about the price: “applications written in ProvideX can only be executed on systems that run a copy of ProvideX.”
Interpreted and tokenised
ProvideX is interpreted “directly from its source form”. A statement typed at the -> prompt is checked, tokenised and executed at once; a statement with a line number is added to the program in memory, and the prompt changes to -:. Tokenisation compresses every reserved word to a one-byte token, and a SAVE normally writes the tokenised form, “not readable in a standard text editor”, so that a saved program can be RUN or CALLed without re-parsing; programs can also be saved and loaded as text, at the cost of re-tokenising on load, which the manual recommends for version control and external editors. The same tokenised programs and the same keyed data files run unchanged on every platform the interpreter is ported to - the portability claim that PVX Plus still makes for PxPlus - and the manual observes that “interpreted code is quicker, because it requires fewer steps; i.e., enter + interpret instead of enter + compile + run”. No benchmark of the interpreter against compiled code has been published by either owner, and none is claimed here.
The keyed file
What distinguishes a Business Basic from a BASIC is that record-oriented file handling is in the language, and ProvideX’s data system is its centre of gravity. The manual calls the keyed file “the most common file type used in ProvideX”: each record has at least one key, records are stored in key order and readable sequentially or by key, record formats may be fixed-length (FLR), variable-length (VLR) or the “enhanced file format” (EFF) introduced with the multi-segment files of 1999, and a multi-keyed file has one unique primary key and, depending on file format, up to 15 or 255 secondary keys, each of which may be assembled from several segments of the record. Direct, indexed, sort and memory files, program libraries, and “prefix processing” for locating files by search path complete the set, and the manual devotes chapters to embedded I/O procedures (code attached to a file that runs on every read or write), foreign file access, and the Views system. The French Wikipedia article summarises the selling points as multi-terabyte files with up to 255 keys of 255 segments, ISAM access and commit/rollback transactions. On the SQL side, the same OPEN, READ, WRITE and SELECT directives work against Oracle, DB2, MySQL and ODBC sources, and the ProvideX ODBC driver exposes ProvideX files to Crystal Reports, Excel and everything else - which is how the accounting industry around Sage 100 gets at its data.
The Language
Statements, lines and labels
A ProvideX statement is a directive followed by arguments, optionally preceded by a line number (1 to 64999) or a label ending in a colon, and optionally followed by a comment introduced by ! or REM. Several directives may share a line, separated by semicolons. The manual’s specimen is:
| |
LET is optional. String variables end in $, integer-only numerics in %, everything else is decimal with a default precision of two places (settable to eighteen with PRECISION), and a variable springs into existence, as zero or the null string, on first use. IF ... THEN ... ELSE, SWITCH ... CASE, FOR ... NEXT, WHILE ... WEND, REPEAT ... UNTIL, ON ... GOSUB, BREAK and ESCAPE provide flow control; a statement that runs over several lines is continued with a backslash:
| |
Hello World is PRINT "HELLO WORLD" at the prompt, or ? @(10,10),"HELLO WORLD" to position it on a character terminal; MSGBOX "Hello, World!" puts it in a Windows message box. Hexadecimal string literals are written between dollar signs ($0D0A$ is a carriage return and line feed), a quotation mark inside a string is doubled, and arrays are DIMensioned with one to three dimensions and manipulated in slices: LET A{1:5}=10, LET A{ALL}=B{ALL}.
Files and IOLISTs
Records are moved between files and variables through an IOLIST, a named list of variables that defines the record layout. The manual’s example of the SELECT directive, which opens a keyed file, walks a key range and applies a WHERE filter, shows the style:
| |
Twelve file functions - KEY(), KEC(), KEF(), KEL(), KEN(), KEP(), IND(), RCD(), RNO(), FID(), FIB(), FIN() - report the next, current, first, last and previous keys and the physical characteristics of an open file, and every I/O directive accepts an ERR= branch, the traditional Business Basic error-handling idiom.
Objects
Version 5 (2001) added a class system that the 8.30 manual describes as “all the language apparatus for designing, developing, and implementing true object-oriented programs”. A class is a .pvc program beginning with DEF CLASS, declaring PROPERTY names (hidden or exposed), FUNCTION methods that map to labels in the same program, LIKE clauses for inheritance, LOCAL and STATIC members and PROGRAM references to supporting code, and ending with END DEF; On_Create and On_Delete labels act as constructor and destructor. Objects are created with NEW("Company"), referenced through numeric handles (Company'Name$), reference-counted, and released with DROP OBJECT; LOAD CLASS, DROP CLASS and RENAME CLASS manage definitions, which ProvideX otherwise loads on demand and keeps “until there are no references to it”. The manual’s worked example is a Company class with Customer and Supplier subclasses:
| |
This is the machinery on which Sage’s Business Framework was built: the AP_Vendor_bus.pvc named in the Sage 100 2026 release notes is exactly such a class, and Sage’s Business Object Interface exposes these objects to VBScript, PowerShell and .NET through the ProvideX OLE server.
NOMADS, WindX and the GUI
GUI programming can be done at the language level - BUTTON, LIST_BOX, GRID, MULTI_LINE and other control objects are created by directive and manipulated through properties - but the manual says “the easiest (and fastest) method” is NOMADS, the Non-procedural Object Module Application Development System, a panel designer whose runtime engine *winproc drives the event loop and whose common data dictionary “provides the ability to view and maintain data files without having to write any application code”. A NOMADS application running on a server displays through WindX on a Windows PC, JavX on any Java-capable client, or - in PxPlus - iNomads in a browser, and the same panels drive character-mode terminals, which is how a 1980s Unix Business Basic application could acquire a Windows face without abandoning its server. Printing, similarly, is abstracted through logical printers, link files and a report writer, and the manual has a section on “printing via thin-clients”.
Platforms
ProvideX’s platform list is documented by its own installers. The archived 9.10 builds of 2010 cover IBM AIX 5.3 and 6 on POWER, HP-UX 11 on PA-RISC and Itanium, SCO OpenServer 5 and 6, UnixWare 7.1, Solaris 9 and 10 on SPARC and x86, Mac OS X 10 on PowerPC, Debian 4 and 5, Red Hat 7 and RHEL 4 (x86, x86-64 and POWER), SUSE 9 and 10, Ubuntu 6, FreeBSD 6 and 7, and Windows in 32- and 64-bit editions; earlier directories add Caldera, Corel, Mandrake and Slackware Linux, NCR Unix, Open UNIX 8 and a DOS build of 4.02. The 2010 Eclipse plug-in guide lists Windows, Linux and Apple OS X 10.5 for the development plug-in. The 8.30 manual summarises the range as “Windows, Linux, UNIX, and MAC-OS”. Within Sage 100, the interpreter is Windows-only and, from Sage 100 2026 (released 16 April 2026), 64-bit only; a Sage community member describes the 2026 interpreter as running “native 64 bit”, with ProvideX code and data unaffected by the change.
Community and Current Relevance
There are two ProvideX communities and they barely overlap. One is the Sage 100 world - resellers, consultants and “Master Developers” - for whom ProvideX is the thing under the accounting system: they ask on Sage’s community hub for ProvideX training, debug [ProvideX][ODBC Driver] errors, script the Business Object Interface, and in 2026 were working out how to reach a 64-bit ProvideX from 32-bit tools. The other is the PxPlus world of independent software vendors, served by PVX Plus’s help desk, manual site, user forum (roughly 430 members and some 5,400 posts by 31 August 2026, the latest that day), yearly DireXions user conferences (the 2026 edition is a free virtual event on 27-29 October) and EDIAS in Europe. What neither has is a public footprint of the kind Wikipedia editors look for: the English article, which had reportedly existed since the mid-2000s, was deleted on 28 June 2024 as an expired proposed deletion, “Fails WP:NSOFT”, and Sage’s old pvx.com site no longer answers. The French and Dutch articles remain, as does the Wikidata item that this site’s master list drew on.
As ProvideX, then, the language is dormant: no release since 2010, end of life at the end of 2011, a trademark held by a company that no longer sells it. As a codebase it is anything but. PxPlus 2026 is its twenty-third numbered version, Sage 100 2026 runs on it, and both owners have a commercial interest in keeping three decades of Business Basic applications running.
Running ProvideX today
There is no Docker image, no free edition and no open-source implementation. The options are:
- PxPlus from PVX Plus Technologies - the current interpreter, available for Windows, Linux and other Unix systems with a demo licence and a licence-key activation. It loads ProvideX programs and data files; PVX Plus’s own documentation site is the best remaining reference for the language.
- Archived ProvideX installers, from the archival download centre at archives.pvxplus.com, which holds every ProvideX release from 4.03 (2001) to 9.10 (2010) for every platform Sage built, “provided for archival/historical purposes”. They need a registration key to run beyond a demo.
- Sage 100, if what you want is to read ProvideX code in the wild: a Sage 100 Standard or Advanced installation contains hundreds of
.pvcclass files and aProvidex.DDFdictionary, and the Business Object Interface is documented by Sage.
Why It Matters
ProvideX is a good specimen of a species that programming-language histories usually skip: the OEM business language. It was never sold to programmers at large, never had a free version, never appeared in a textbook, and was, by design, invisible to the people whose invoices, inventories and payrolls it processed. Its history is a history of who owned it - a Markham start-up, an Irvine accounting-software company, a Newcastle software group, the start-up’s founder again, and finally a Toronto acquirer of “software for life” - and each transfer was driven by the same fact: a large installed base of applications that could not be cheaply rewritten and had to be carried onto the next platform. Business Basic’s original promise was exactly that kind of continuity, and ProvideX kept it for longer than most: the 1986 Sybex interpreter’s descendants run 64-bit Windows and Linux, serve web pages and talk to .NET, and a program with IOLIST and KEYED in it still runs. For anyone curious why a 2026 accounting package has a MAS90 directory full of .pvc files, this is the answer.
Timeline
Notable Uses & Legacy
Sage 100 (formerly MAS 90 and MAS 200)
The reason ProvideX changed hands twice. State of the Art's MAS 90 accounting suite, first sold in the mid-1980s and Windows-based by the late 1990s, ran on ProvideX by its Level 3.x releases - Microsoft's FRx compatibility listings name 'Sage MAS 90 Providex 3.7' and 'Providex 4.x' - and the 4.0 Business Framework of the mid-2000s was written in object-oriented ProvideX; Sage's 2006 white paper credited its own developers and over 100 Master Developers with programming in it. Twenty years on, the Sage 100 2024 installation guide still lists ProvideX as the database of the Standard (stand-alone/LAN) and Advanced (client/server) editions, with only the Premium edition on Microsoft SQL Server, and Sage 100 2026 ships a 64-bit build of the interpreter. Every MAS90 directory contains a Providex.DDF data dictionary and every Sage 100 workstation a 'SOTAMAS90' ProvideX ODBC data source
The Sage 100 integration ecosystem
Because Sage 100's data lives in ProvideX keyed files, a whole industry of report writers, ETL tools and add-ons talks to ProvideX rather than to SQL Server: Crystal Reports, Microsoft FRx and later tools connect through the ProvideX ODBC driver (local or client/server), while customisations and scripts use the Business Object Interface, which exposes Sage 100's .pvc business objects - AP_Vendor_bus.pvc appears by name in the 2026 release notes - through the ProvideX.Script COM server and, in 2026, its 64-bit successor. Sage 100 developers who need to read the underlying language still consult the PxPlus reference manual, and 'ProvideX training' remains a recurring request on Sage's community forums
Business Basic vertical applications in North America and Europe
ProvideX's own marketing and the surviving Wikipedia mirrors describe its use in distribution, wholesale, property management, healthcare and transportation software, mostly by North American independent software vendors who had begun on minicomputer Business Basics and wanted a route to Windows, client/server and the web without rewriting. A customer on the PVX Plus site recalls abandoning BBx for Sybex when Windows 3.11 made GUI work in BBx too complex. In Europe EDIAS Software International of Hofheim am Taunus has distributed the language since at least 1997 and has been PVX Plus's European master distributor since 2005; the French Wikipedia article notes that French users of ProvideX-based business software generally have no idea what their applications are written in
PxPlus and application modernisation
The language's second life is as PxPlus, where the same interpreter, data files and NOMADS panels are the base for iNomads (2008), which serves existing NOMADS screens to a browser, Webster+ for browser-only applications, Android and iOS app generation (2019), a .NET bridge (2025) and a Visual Studio Code extension (2024). PVX Plus's pitch - 'preserving customer investment while advancing technology' - is aimed at the same Business Basic vendors, and its 2023 acquirer, Jonas Software, itself appears in the 1997 Business Basic FAQ as a vendor of Sybex Business Basic/JCOS