All Topics  
MBASIC

 

   Email Print
   Bookmark   Link






 

MBASIC



 
 
MBASIC is the Microsoft BASIC
Microsoft BASIC

Microsoft BASIC was the foundation product of the Microsoft company. It first appeared in 1975 as Altair BASIC, which was the first BASIC programming language available for the Altair 8800 hobbyist microcomputer....
 implementation of BASIC
BASIC

In computer programming, BASIC is a family of high-level programming languages. The Dartmouth BASIC was designed in 1964 by John George Kemeny and Thomas Eugene Kurtz at Dartmouth College in New Hampshire, United States to provide computer access to non-science students....
 for the CP/M
CP/M

CP/M is an operating system originally created for Intel 8080/Intel 8085 based microcomputers by Gary Kildall of Digital Research. Initially confined to single tasking on 8-bit processors and no more than 64 kilobytes of memory, later versions of CP/M added multi-user variations, and were migrated to 16-bit processors....
 operating system. MBASIC is a descendant of the original Altair BASIC
Altair BASIC

Altair BASIC was an interpreter for the BASIC programming language that ran on the Micro Instrumentation and Telemetry Systems Altair 8800 and subsequent S-100 bus computers....
 interpreters that were among Microsoft's first products. MBASIC was one of the two versions of BASIC bundled with the Osborne 1
Osborne 1

The Osborne 1 was the first commercially successful portable computer microcomputer, released in April, 1981 by Osborne Computer Corporation. It weighed 23.5 pounds , cost United States dollar1795, and ran the then-popular CP/M operating system operating system....
 computer. The name "MBASIC" is derived from the disk file name of the BASIC interpreter.

IC version 5 required a CP/M system with at least 28 kB of random access memory (RAM) and at least one diskette drive.

Unlike versions of Microsoft BASIC-80 that were customized by home computer
Home computer

A home computer was a class of personal computer entering the market in 1977 and becoming common during the 1980s. They were marketed to consumers as accessible personal computers, more capable than video game consoles....
 manufacturers to use the particular hardware features of the computer, MBASIC relied only on the CP/M operating system calls for all input and output.






Discussion
Ask a question about 'MBASIC'
Start a new discussion about 'MBASIC'
Answer questions from other users
Full Discussion Forum



Encyclopedia


MBASIC is the Microsoft BASIC
Microsoft BASIC

Microsoft BASIC was the foundation product of the Microsoft company. It first appeared in 1975 as Altair BASIC, which was the first BASIC programming language available for the Altair 8800 hobbyist microcomputer....
 implementation of BASIC
BASIC

In computer programming, BASIC is a family of high-level programming languages. The Dartmouth BASIC was designed in 1964 by John George Kemeny and Thomas Eugene Kurtz at Dartmouth College in New Hampshire, United States to provide computer access to non-science students....
 for the CP/M
CP/M

CP/M is an operating system originally created for Intel 8080/Intel 8085 based microcomputers by Gary Kildall of Digital Research. Initially confined to single tasking on 8-bit processors and no more than 64 kilobytes of memory, later versions of CP/M added multi-user variations, and were migrated to 16-bit processors....
 operating system. MBASIC is a descendant of the original Altair BASIC
Altair BASIC

Altair BASIC was an interpreter for the BASIC programming language that ran on the Micro Instrumentation and Telemetry Systems Altair 8800 and subsequent S-100 bus computers....
 interpreters that were among Microsoft's first products. MBASIC was one of the two versions of BASIC bundled with the Osborne 1
Osborne 1

The Osborne 1 was the first commercially successful portable computer microcomputer, released in April, 1981 by Osborne Computer Corporation. It weighed 23.5 pounds , cost United States dollar1795, and ran the then-popular CP/M operating system operating system....
 computer. The name "MBASIC" is derived from the disk file name of the BASIC interpreter.

Environment

MBASIC version 5 required a CP/M system with at least 28 kB of random access memory (RAM) and at least one diskette drive.

Unlike versions of Microsoft BASIC-80 that were customized by home computer
Home computer

A home computer was a class of personal computer entering the market in 1977 and becoming common during the 1980s. They were marketed to consumers as accessible personal computers, more capable than video game consoles....
 manufacturers to use the particular hardware features of the computer, MBASIC relied only on the CP/M operating system calls for all input and output. Only the CP/M console (screen and keyboard), line printer, and disk devices were available.

MBASIC in the uncustomized form had no functions for graphics
Computer graphics

Computer graphics are graphics created by computers and, more generally, the representation and manipulation of pictorial data by a computer....
, color, joysticks, mice, serial communications
Serial port

In computing, a serial port is a serial communication physical interface through which information transfers in or out one bit at a time ....
, networking
Ethernet

Ethernet is a family of Data frame-based computer networking technologies for local area networks . The name comes from the physical concept of the Luminiferous aether....
, sound, or even a real-time clock function. MBASIC did not fully support the features of the host CP/M operating system, for example, it did not support CP/M's user areas for organizing files on a diskette. Since CP/M systems were typically single-user and stand alone, there was no provision for file or record locking, or any form of multitasking
Computer multitasking

In computing, multitasking is a method by which multiple tasks, also known as Computer process, share common processing resources such as a Central processing unit....
. Apart from these limitations, MBASIC was considered at the time to be a powerful and useful implementation of BASIC.

Features


Language system

MBASIC is an interpreter
Interpreter (computing)

In computer science, an interpreter normally means a computer program that execution , i.e. performs, instructions written in a programming language....
. Program source text was stored in memory in tokenized
Bytecode

Bytecode is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software Interpreter as well as being suitable for further compilation into machine language....
 form, with BASIC keywords replaced by one-byte tokens which saved memory space and speeded execution. Any line prefixed with a line number was stored as program text; BASIC statements not prefixed with a line number were executed immediately as commands. Programs could be listed on the screen for editing, or saved to disk in either a compressed binary format or as plain ASCII
ASCII

American Standard Code for Information Interchange , is a coding standard that can be used for interchanging information, if the information is expressed mainly by the written form of English words....
 text. Every source line was identified with a number, which could be used as the target of a GOTO
GOTO

GOTO is a statement found in many computer programming languages. It is a combination of the English words wiktionary:go and wiktionary:to....
 or GOSUB
GOSUB

GOSUB is a command in many versions of BASIC programming language. GOSUB statements branch to simple kinds of Subroutine without parameters or local variable , the Return statement command resuming program flow from the point at which GOSUB was invoked....
 transfer. Only line editing commands were provided. It was often beneficial to save a program as plain text and edit it with a full featured editor.

Program text, variables, disk buffers and the CP/M operating system itself all had to share the 64 kilobyte address space of the 8080 processor. Typically when first starting MBASIC there would be less than 32 kB memory available for programs and data, even on a machine equipped with a full 64 kilobytes of RAM. Comment lines, prefixed with the REM keyword or an apostrophe, could be placed in the program text but took up valuable memory space, which discouraged BASIC users from fully documenting their code. To allow larger and more complex programs to be run, later versions of MBASIC supported functions that allowed portions of program text to be read in and executed under program control (the " CHAIN
Chain loading

Chain loading is a method used by computer programs to replace the currently executing program with a new program, using a common data area to pass information from the current program to the new program....
" and MERGE statements). No support for "shell" command execution was provided, though this functionality could be duplicated by a determined programmer.

A particular advantage of MBASIC was the full-text error messages provided for syntax and run-time errors. MBASIC also had a "trace" function that displayed line numbers as they were executed. While this occupied the same screen space as normal program output, it was useful for detecting conditions such as endless loop
Endless Loop

Endless Loop is overall, the fifth EP by Japan singer Eiko Shimamiya but this is her second EP produced by both I've Sound and Geneon Entertainment....
s.

Files and input/output

Data could be read and stored to disk as either sequential files (delimited by the CP/M convention of CR/LF at the end of each line) or else as fixed-record-length random access files, which, given a sufficiently determined programmer, could be used to perform database-type record manipulation. The binary format for floating point
Floating point

In computing, floating point describes a system for numerical representation in which a String of digits represents a rational number.The term floating point refers to the fact that the radix point can "float": that is, it can be placed anywhere relative to the Significant figures of the number....
 numbers was proprietary to the implementation, which meant that data could only be interchanged with other programs using ASCII text representation or else with extensive programming to convert the binary format.

Variables and data types

MBASIC supported the following data types:
  • 8-bit character data, in strings of length 0 to 255 characters;
  • 16-bit integers;
  • 32-bit floating point
    Floating point

    In computing, floating point describes a system for numerical representation in which a String of digits represents a rational number.The term floating point refers to the fact that the radix point can "float": that is, it can be placed anywhere relative to the Significant figures of the number....
     (single precision), equivalent to six decimal digits, with a two-digit exponent;
  • 64-bit floating point (double precision), equivalent to sixteen decimal digits, with a two-digit exponent.


String operators included substring selection, concatenation, assignment, and testing for equality.

Arrays of the above types were allowed with up to 7 dimensions, but no functions were provided that operated on arrays (for example, no assignment of arrays). Unlike some other BASIC implementations of the time, MBASIC did not provide support for matrix
Matrix (mathematics)

In mathematics, a matrix is a rectangular array of numbers, as shown at the right. In addition to a number of elementary, entrywise operations such as matrix addition a key notion is matrix multiplication....
 operations, complex number
Complex number

In mathematics, the complex numbers are an extension of the real numbers obtained by adjoining an imaginary unit, denoted i, which satisfies:...
s, or a decimal (BCD) data type for financial calculations. All floating point operations were carried out in software since typically CP/M systems did not have hardware for floating point. The built-in mathematics functions (sine, cosine, tangent, natural log, exponential, square root) only gave single precision results. A software pseudorandom number generator
Pseudorandom number generator

A pseudorandom number generator is an algorithm for generating a sequence of numbers that approximates the properties of random numbers. The sequence is not truly random in that it is completely determined by a relatively small set of initial values, called the PRNG's state. Although sequences that are closer to truly random can be gen...
 was provided; this relied on the user to key in a seed number to obtain a sequence of numbers useful for games and some simulations. MBASIC permitted but did not require the LET keyword for assignment statements.

Early versions of personal computer BASIC were infamous for one- or two-character variable names which made the meanings of variables difficult to recall in complex programs. MBASIC version 5 allowed identifiers of variables to be significant up to 40 characters long, which permitted programmers to give variables readable names.

Program flow control

Program flow control in MBASIC was controlled by IF...THEN...ELSE... conditional tests, WHILE...WEND loops, and GOTO and GOSUB instructions. No CASE statement was available, although an ON...GOTO... (computed GOTO) provided multi-way branches. Subroutines had no parameters and all variables were global. MBASIC did not make structured programming
Structured programming

Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming paradigms. It is most famous for removing or reducing reliance on the GOTO Statement ....
 mandatory for programmers and it was easy to write spaghetti code
Spaghetti code

Spaghetti code is a pejorative term for source code which has a complex and tangled control structure, especially one using many GOTOs, exceptions, threads, or other "unstructured" Branch constructs....
.

PEEKs, POKEs, and user functions

No discussion of BASICs on the 8-bit computers of the late '70s and early '80s would be complete without mentioning the importance of the PEEK and POKE
PEEK and POKE

In computing, PEEK is a BASIC programming language function used for reading the contents of a memory cell at a specified memory address. The corresponding command to set the contents of a memory cell is POKE....
 functions for directly reading and writing to memory. Since these systems typically had no memory protection
Memory protection

Memory protection is a way to control memory usage on a computer, and is core to virtually every modern operating system. The main purpose of memory protection is to prevent a process running on an operating system from accessing memory beyond that allocated to it....
, this allowed a programmer to access portions of the operating system, or functions that would not otherwise be available. Of course this also provided unlimited opportunities for user programs to hang the system. For example, a CP/M programmer might use a POKE function to allow BASIC to switch the console device to the serial port, if the system BIOS
BIOS

In computing, the Basic Input/Output System , also known as the System BIOS, is a de facto standard defining a firmware interface for IBM PC Compatible computers....
 supported this. For machines with real-time clocks, a set of PEEK instructions might have been used to access the time.

For more complex operations, MBASIC allowed user-defined functions that could be called from a BASIC program. These were typically placed in a reserved area of memory, or POKEd into string constants, as a series of machine codes (op codes). MBASIC also provided hardware INP and OUT instructions that read and wrote directly to the 8080 hardware input/output ports. This could be used to control peripheral devices, though on at least one common CP/M system, the Osborne 1, all I/O instructions were pre-empted for use by the system.

Any MBASIC programs that made use of PEEK and POKE, and of machine code
Machine code

Machine code or machine language is a system of instructions and data executed directly by a computer's central processing unit. Machine code may be regarded as a primitive programming language or as the lowest-level representation of a compiled and/or assembly language computer program....
 user functions, were not portable between machines.

Successors to MBASIC

Microsoft also sold a CP/M BASIC compiler
Compiler

A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
 (known as BASCOM) which used a similar source language to MBASIC. A program debugged under MBASIC could be compiled with BASCOM. Since program text was no longer in memory and the run-time elements of the compiler were smaller than the interpreter, more memory was available for user data. Speed of program execution increased by 8 to 10 fold.

All the functions of CP/M MBASIC were available in the IBM PC disk-based BASICA or GWBASIC which made migration of programs from CP/M systems to PC-compatibles possible. Typically screen formatting escape sequences put into the CP/M version would be replaced with the cursor positioning commands found in the PC versions of BASIC, otherwise little rewriting would be needed.

Importance of MBASIC

MBASIC was an important tool during the era of 8-bit CP/M computers. Skilled users could write routines in MBASIC to automate tasks that in modern-day systems would be performed by powerful application program commands or scripting languages. Exchange of useful MBASIC programs was a common function of computer users' group
Users' group

A users' group is a type of club focused on the use of a particular technology, usually computer-related.User's groups started in the early days of Mainframe computer computers, as a way to share sometimes hard-won knowledge and useful software, usually written by end users independently of the factory-supplied programming efforts....
s. Keying in long BASIC listings from a magazine article was one way of "bootstrapping" software into a new CP/M system. At least one compiler for a high-level language was written in MBASIC, and many small games and utility programs ranging from a few lines to a few thousand lines of code were written.

Other uses

MBASIC is also the name of a commercial BASIC
BASIC

In computer programming, BASIC is a family of high-level programming languages. The Dartmouth BASIC was designed in 1964 by John George Kemeny and Thomas Eugene Kurtz at Dartmouth College in New Hampshire, United States to provide computer access to non-science students....
 compiler for the Microchip Technology
Microchip Technology

Microchip Technology is an USA manufacturer of microcontroller, memory and analog semiconductors. The company was founded in 1987 when General Instrument spun off its microelectronics division as a wholly owned subsidiary....
 PIC microcontroller
PIC microcontroller

PIC is a family of Harvard architecture microcontrollers made by Microchip Technology, derived from the PIC1640 originally developed by General Instrument's Microelectronics Division....
 family, unrelated to the CP/M interpreter.