PowerBASIC Compiler for DOS

Instant TSRs, built-in assembler, new data types, BCD variables, direct array operations (sort, scan, insert, delete), fast math, and many other BASIC firsts make this the standard of comparison for DOS BASIC compilers.


Create DOS programs


And PowerBASIC continues to improve with each release because our development team listens to you, our customers. We respond to your needs at every opportunity. Our latest revision offers even tighter, faster code, and the ability to create add-on help files which integrate seamlessly into the PowerBASIC IDE.


PowerBASIC is clearly the upgrade choice. PowerBASIC is nearly 100% compatible with Quick Basic syntax, so the move up to PowerBASIC couldn't be easier.


      "BASIC developers who write DOS applications expect the same from their programming tools as anyone else does: powerful language syntax, a high-productivity development environment, a fast and efficient compiler, solid documentation, a good selection of third-party tools, and intangibles such as the vendor's dedication to the language and its user base. These are tough criteria, and almost every product we looked at came up short. But not PowerBASIC. Our Editor's Choice in the DOS category, it delivered in almost every regard."
- PC Magazine


Virtual Arrays
Now you can store your arrays (numeric, fixed-length string and user-defined type) in expanded memory. Make room in lower memory for more code and dynamic string data. Create arrays up to 16 megabytes in size, limited only by available EMS memory.


Instant TSRs
Create TSRs in an instant with just five lines of code. A 600K TSR can "pop-down" to a memory image of just 4K, with automatic memory swapping to EMS or virtual disk. TSRs can be activated by practically any stimulus: a hot key, a timer, inactivity, even a message from a foreground program. They can be safely uninstalled under internal program control, or by external request. Even BIOS keystroke stuffing is available. In fact, multiple TSRs can activate each other repeatedly, with two-way communication throughout.


Built-in Assembler
Looking for even better performance? The new built-in Assembler may be just what you need. For the first time, you can write Assembler code and mix it with your PowerBASIC code line by line. Hand optimize the most critical sections for absolute performance. PowerBASIC handles all the details automatically. You can reference your variables, parameters, labels and functions by name -- even debut at the CPU register level in the expanded environment.


New Data Types
PowerBASIC offers 11 numeric data types, 4 string data types, then adds user-defined TYPES and UNIONS as well. There are unsigned byte, word, and double word variables. Integers of 16,32, even 64 bits. Single, double, and extended precision floats. Fixed and Floating-point BCD. Fixed, Flex Dynamic and ASCIIZ (null-terminated fixed) strings. You can even map Flex strings into dynamic structures; they're defined, created, and sized at run-time for true database capability.


Direct Console I/O
As the importance of the Internet grows, so does the need for DOS programs to communicate with Web servers. PowerBASIC allows DOS applications to use Direct Console I/O for communication with a web server through a CGI interface. Using Standard Input, DOS programs can read form data from a web page, process it (such as a database lookup), and create an output page through Standard Output for display to the end user.


BCD Variables
Finally you can eliminate round-off errors, even those associated with currency variables in other languages. You aren't forced to 4 decimal places. Instead you make your choice: from 0 to 18 digits, and always with automatic rounding to the precise level of your needs. In PowerBASIC, all BCD variables are implemented as scaled integers for fast calculation.


Array Operations
Built-in Array Sort, Scan, Insert, and Delete, with optional collate sequencing for international or special character sets.


Fast Math
An optional procedural float package offers startling speed. Without a numeric co-processor, it's 40% to 500% faster than emulation. Yet it still uses the '87 when available. It's IEEE-compatible, so you can intermix procedural, emulated, or '87 specific code as needed.


BASIC Firsts
PowerBASIC is the first to offer both user-defined TYPES and UNIONS, unlimited dynamic strings, and a true handle-based string memory manager. There are code pointers (to any sub/function/label), conditional compilation ($IF/$ELSE/$ENDIF), even viewports for screen text display. Then add Huge Arrays (greater than 64k), Absolute Arrays (at a specific address), even EXIT FAR to allow multi-level sub/function exit (beats the LONGJMP in C, any day).


Create BASIC programs with any level of structure desired. Free-form or absolute, the choice is yours. You can even choose to require variable declaration before use. Another first for PowerBASIC.


Bit Operations
PowerBASIC offers a full complement of bit operations including: SHIFT, ROTATE, TEST, SET, RESET, and TOGGLE. Even implied bit arrays of up to 512K bits are supported.


Here's where PowerBASIC shines. Serial port communication is available for COM1 through COM4. BAUD rates up to 115200. Any combination of non-standard IRQ lines. Explicit control of DTR, even after program termination. Automatic error detection or masking is available, with optional flush of erroneous data.


IDE with Mouse Support
Use true compiled code to develop and debug -- the same code as your EXE file. So you'll never need to deal with a slow, threaded p-code interpreter. That means faster development, and the elimination of subtle differences between interpreted and compiled results. You can easily customize colors, keystrokes and compile options to suit your personal taste. If EMS is present, the editor will store your source code and help files in higher memory to make room for larger programs during debugging.


Third Party Tools
The most powerful and respected tool kits are available to PowerBASIC users. Libraries from companies like Crescent, Information Management Systems, Ansoft, and others make PowerBASIC the most comprehensive BASIC compiler available today. In a nutshell, with PowerBASIC, you'll never need to re-invent the wheel.


Help and Support
PowerBASIC includes extensive printed documentation -- over 700 pages of Programmer's and Reference Guide. Then, the context-sensitive on-line help system puts further detail right at your fingertips just when you need it most. Perfect for the novice or the professional developer. Technical support is available from our engineering staff by telephone, email, mail, fax or our Web based message forums. PowerBASIC revolutionizes BASIC by introducing true Pointer variables for the first time in any BASIC programming dialect. Now with the addition of Pointers, BASIC has all the important features of the other major programming languages like C and Pascal.


"Up to now, BASIC programmers couldn't take advantage of the power of Pointers," explained Bob Zale, president of PowerBASIC, Inc. "Our goal is to continue to add to the power of BASIC, while at the same time maintaining the ease of learning and ease of use that are traditional with the language. Many programmers are now migrating to PowerBASIC from C, and they require Pointers to translate their code. Since we are a customer driven company, we've introduced Pointers into the latest version of PowerBASIC."


PB/DOS also allows underscores in variable names, enhanced communications support, including support for the 16550 UART chip,and added optimizations in speed when performing DWORD math. In addition to improvements in the compiler itself, PowerBASIC, Inc. has enhanced the online context-sensitive help system by adding information on Code and Data Pointers, providing more importable source code examples, and expanding the information on all of the extensive data types (15 in all) supported by PowerBASIC. The two-volume documentation has also been revised and enhanced to aid in the functionality of this revision.


"The true power of Pointers is in their speed and flexibility," reported Bruce Tonkin, noted software industry journalist and programmer. "A pointer is a variable that holds a 32-bit (4-byte) address of data located elsewhere in memory. It is called a pointer because it literally points to data. The data that is being pointed to is referred to as the target. Since the address is defined at run-time, any target in memory can be referenced by the program just as if it were a standard PowerBASIC variable."


Traditionally, a BASIC programmer had to use combinations of DEF SEG, PEEK, and POKE to access memory. Allowing the programmer to address memory as bytes, integers, long integers, and strings. If the target data took any other form, conversion was necessary.


Pointers allow the programmer to address the target memory location in any fashion desired. Even as pre-defined structure. Now with PowerBASIC, calling DEF SEG and PEEK/POKE is unnecessary, so the programmer has access to that data much more quickly.


In addition, Code Pointers allow a programmer to call a SUB or jump to a label without needing to know its name. The CALL DWORD extension allow programmers to call subprograms by address and pass up to 16 parameters by reference.


Source Code
Source code examples have been enhanced, and additional examples have been added. Including source code to useful programming utilities, such as a text searching engine, a text file browser, a source code formatter, a 'whereis' utility for finding files anywhere on your hard drive, and our popular QuickBASIC to PowerBASIC conversion utility.


Minimum System Requirements

  • IBM PC/XT or compatible running DOS version 3.30 or later
  • 512k of RAM
  • 4 MB of EMS memory is recommended for optimal compiler performance.
  • A hard disk with 1.8 Mb available (4.5 Mb with online manuals).
  • Adobe Acrobat Reader version 5 or later (for reading online manuals).


It's important to note that 64-bit versions of Windows no longer support DOS programs. For these versions, you should choose PowerBASIC Console Compiler instead. It offers a very similar syntax, yet creates true Windows executable programs.