BASICODE
Encyclopedia
BASICODE was a computer project intended to create a unified standard for the BASIC
programming language
. BASIC was available on many popular home computer
s, but there were countless variants that were mostly incompatible
with each other. The project was initiated in 1980 by Hobbyscoop, a radio program off the Netherlands
broadcasting organisation Nederlandse Omroep Stichting
(NOS).
The basic implementation were architecture-specific utility applications that executed calls of subroutines for text, audio and sound defined in the BASICODE language standard according to the abilities of the computer in question. These applications, called Bascoders, also enabled the sharing of data and programs across different computer platforms by defining a data format for the compact audio cassettes that were regularly used as storage media in the 1980s. A BASICODE program stored on cassette could be loaded and run on any computer supporting the language. BASICODE was often called "Esperanto
for computers" for that reason.
by Tandy
, the PET 2001, VIC-20, C64
, C128
and the Plus/4
by Commodore
, the Atari
400/800 (XL/XE)
, the Sinclair Research computers (ZX80
, ZX81
, ZX Spectrum
) and the KC85 family
popular in the German Democratic Republic
. All these computers had a CPU of the MOS Technology 6502
or Zilog Z80
type, 16 to 64 kilobyte
RAM, connectors for a cassette drive or a built-in one for data storage, and finally a BASIC
interpreter
that was generally stored in ROM
. The flat learning curve of BASIC, which had been designed with newcomers to programming in mind, and the instant availability of the language on all these computers led to many users writing and sharing their own programs.
A problem was that sharing programs and data across computers by different manufacturers was difficult because the various BASIC dialects were totally incompatible in some areas. They used different BASIC commands to make the same action (like clearing the screen, drawing a pixel or playing a sound), so that a BASIC program written for the C64 did not work on an Atari XL without modification and vice versa. Another difficulty was the fact that while these computers were similar, they still differed in key hardware aspects like screen resolution, available color palette or audio abilities. Finally, the data formats used for storing data on cassette were incompatible as well.
In 1982 the executives at NOS decided to develop a unified data format. An application that was specific for each computer model, called Bascoder, managed the recall and storage of programs and data in this unified format from tape. The Bascoders were broadcast by NOS as well, but could also be bought from NOS on cassette and shared among friends and acquaintances. The format, which was very well-protected against interference, could be read and written by all popular home computer hardware. The robustness of the format also made broadcasting via mediumwave
radio possible, which increased the range and in turn the number of potential users. For example, data broadcast by the Netherlands station TROS (Televisie en Radio Omroep Stichting, also known as Radio Hilversum) could be received in large parts of the German Democratic Republic
.
To achieve this, all program lines below 1000 were reserved for the Bascoder, and BASICODE programs could only start at line number 1000. The subroutines of the Bascoder in the lines below 1000 were called with a GOSUB
command. Necessary arguments were passed to the Bascoder by using special predefined variables that were reserved for use by the Bascoder. The standard contained a number of additional rules that were made necessary by the limitations of some computer models. For example, on the ZX-81 a line of code could only contain a single BASIC command, a behaviour that almost no other computer shared. On a KC series computer, a line of code could not be longer than 60 characters. These limitations had to be enforced for all BASICODE programs to guarantee platform independence, because the Bascoder was interpreted by the same computer specific BASIC interpreter as the BASICODE program itself.
Thus, the Bascoders were loaded on the various computers like normal programs and provided the additional routines for the common standard and cassette I/O afterwards. Programs written in BASICODE were only usable after the Bascoder had been loaded and started. However, on some computers the BASICODE programs could be merged with the routines of the Bascoders and saved in the native data format. The resulting program was not platform independent any longer, but due to the higher data density of most native formats it could be loaded much faster than the same program in BASICODE format. Also, because it was not necessary to load the complete Bascoder to run the program, more RAM remained available at run time.
There were BASICODE 2 Bascoders for the Exidy Sorcerer
, Colour Genie
, Commodore PET
, VIC-20
, C64
, Amiga
, Sinclair ZX81
, ZX Spectrum
, QL
, Acorn Atom
, Micro
, Electron
, Tandy TRS-80
, MSX
, Oric Atmos, P2000T, Grundy NewBrain
, Amstrad CPC
, IBM PC
, Apple II
, Texas Instruments TI-99/4A
, Mattel Aquarius
and others. Additionally, advanced users were able to write their own Bascoder for their system of choice, since the language standard and data format were open and well-documented. The BASICODE 2 standard made the development of platform independent programs with advanced capabilities (for the time) possible. In addition, BASICODE was used to transmit and share information like computer scene news via radio in the form of so-called "journals". A BASICODE coding tutorial and other documentation was transmitted this way as well.
graphics, reading and writing data from within programs and sound output. BASICODE 3 made BASICODE popular in the computer scene of the GDR, and from 1989 onward BASICODE programs were transmitted via radio throughout the GDR. Also, a book was published which included a vinyl record with Bascoders for all computers common in the GDR. The last revision of BASICODE, which featured color graphics, was released as BASICODE 3C in 1991.
The successor of the GDR's state broadcaster, the Deutschlandsender Kultur
(which later became part of the new Deutschlandradio
), continued to broadcast BASICODE programs until about 1992. A planned standard called BASICODE 4 never became reality, because NOS stopped supporting the project shortly after BASICODE 3C was released. BASICODE is still used by enthusiasts, in particular 8-bit computer fans, for nostalgic value, but is not of any practical relevance.
standard developed by Microsoft
, which specified a shared hardware platform in addition to a common BASIC dialect. These computers were sold by multiple companies and directly competed with other popular home computers. MSX was successful mostly in the home markets of the manufacturers, for example Japan
, South Korea
, the Netherlands
and Brasil. Unlike MSX, BASICODE defined no hardware, but a language standard for the programming language BASIC, which was near-ubiquitous in home computers, plus a data format for Compact Cassette
s which could be read and written on all computers for which BASICODE was available. As a result, the implementation of BASICODE was exclusively dependent on additional software and thus was not limited to computers by specific manufacturers. The installed base
of BASICODE is hard to estimate, because both the Basicoders and the programs written in BASICODE were freely available. There was a Bascoder for nearly every home computer sold during this era. Commercially, BASICODE was of no importance because it was always shared for free.
It must be stated that BASICODE was, by design, unable to use the capabilities of the host computers to their full extent. The language standard defined by BASICODE was the lowest common denominator of all relevant computer systems. This concept was partially abandoned only with BASICODE3/3C, as some computers or computer variants like the ZX80/ZX81 and the KC87 were not capable of graphics and color and the new sections of BASICODE using these capabilities were not usable on them. Especially for applications that relied on timing and graphics or sound, for example computer games
, BASICODE was clearly inferior to programs written in "native" BASIC or machine code
. The strengths of BASICODE were in the areas of application design, education software and data sharing. The BASICODE format was also used for Pascal
programs. Pascal was a much more consistent language across systems, but compilers were available only for very few types of home computers.
The underlying concept of BASICODE, which is the definition of a language standard for platform-independent software development and the implementation of said standard as system-specific runtimes (Bascoder) was later revisited in the programming language Java
, in the form of the operating system
-specific Java Virtual Machine
s which execute Java programs. Additionally, the distribution of data and information in the BASICODE data format is reminiscent of current platform-agnostic document types like the Portable Document Format
(PDF) and the PDF reader applications it necessitates.
units (tokens), but character by character.
A data block begins with the character 02 (STX, start of text), and ends with the character 03 (ETX, end of text). After ETX, a check byte made up of the previous bytes including STX and ETX by binary addition (XOR), is transmitted. A 0D character (decimal 13) marks the end of a line during transmission. Data files created by programs are able to use all characters as data and must contain no control characters. They are read and written in blocks of 1024 bytes.
Each byte is transmitted in the sequence "1 start bit - 8 data bits - 2 stop bits". The data bits are little-endian ordered. The resulting redundancy
is intended for maximising compatibility with different computers. Bit 7 is always 0, which is especially useful when transmitting ASCII
characters, because these always have bit 7 set to 0.
For the audio signals, square waves in the form of a 1200 Hz
wave for a "0" bit and two 2400 Hz waves for a "1" bit are used, resulting in a time of 1/1200 seconds for each bit. A pause longer than 1/1800 seconds between waves marks the beginning of a byte, making the following wave the start bit. After the start bit and before the eight data bits is another pause of at least 1/1800 seconds. A 2400 Hz signal with a length of five seconds marks the beginning of a transmission and is used for synchronization of the reading program. At the end of the transmission, a 2400 Hz signal with a length of one second is sent.
The theoretical data rate
of this format is 1200 bits per second. Considering the transmission of three additional bits per data byte and the pauses before and after the start bit, this results in a usable data rate of 102 bytes per second, and about 6 kilobytes per minute.
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....
programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
. BASIC was available on many popular home computer
Home computer
Home computers were a class of microcomputers entering the market in 1977, and becoming increasingly common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, were intended for the use of a single nontechnical user...
s, but there were countless variants that were mostly incompatible
Computer compatibility
A family of computer models is said to be compatible if certain software that runs on one of the models can also be run on all other models of the family. The computer models may differ in performance, reliability or some other characteristic...
with each other. The project was initiated in 1980 by Hobbyscoop, a radio program off the Netherlands
Netherlands
The Netherlands is a constituent country of the Kingdom of the Netherlands, located mainly in North-West Europe and with several islands in the Caribbean. Mainland Netherlands borders the North Sea to the north and west, Belgium to the south, and Germany to the east, and shares maritime borders...
broadcasting organisation Nederlandse Omroep Stichting
Nederlandse Omroep Stichting
The Nederlandse Omroep Stichting , English: Netherlands Broadcasting Foundation, is one of the broadcasters in the Netherlands Public Broadcasting system...
(NOS).
The basic implementation were architecture-specific utility applications that executed calls of subroutines for text, audio and sound defined in the BASICODE language standard according to the abilities of the computer in question. These applications, called Bascoders, also enabled the sharing of data and programs across different computer platforms by defining a data format for the compact audio cassettes that were regularly used as storage media in the 1980s. A BASICODE program stored on cassette could be loaded and run on any computer supporting the language. BASICODE was often called "Esperanto
Esperanto
is the most widely spoken constructed international auxiliary language. Its name derives from Doktoro Esperanto , the pseudonym under which L. L. Zamenhof published the first book detailing Esperanto, the Unua Libro, in 1887...
for computers" for that reason.
The situation at the beginning of the 1980s
From the late 1970s to the late 1980s home computers based on 8 bit processors were very popular. Among the most well-known models were the TRS-80TRS-80
TRS-80 was Tandy Corporation's desktop microcomputer model line, sold through Tandy's Radio Shack stores in the late 1970s and early 1980s. The first units, ordered unseen, were delivered in November 1977, and rolled out to the stores the third week of December. The line won popularity with...
by Tandy
Tandy
Tandy is the title of a short story by Sherwood Anderson.Tandy is also a name which can refer to:-Tandy Corporation:* Tandy Corporation - a leather supply company which subsequently became the RadioShack Corporation...
, the PET 2001, VIC-20, C64
Commodore 64
The Commodore 64 is an 8-bit home computer introduced by Commodore International in January 1982.Volume production started in the spring of 1982, with machines being released on to the market in August at a price of US$595...
, C128
Commodore 128
The Commodore 128 home/personal computer was the last 8-bit machine commercially released by Commodore Business Machines...
and the Plus/4
Commodore Plus/4
The Commodore Plus/4 was a home computer released by Commodore International in 1984. The "Plus/4" name refers to the four-application ROM resident office suite ; it was billed as "the productivity computer with software built-in"...
by Commodore
Commodore International
Commodore is the commonly used name for Commodore Business Machines , the U.S.-based home computer manufacturer and electronics manufacturer headquartered in West Chester, Pennsylvania, which also housed Commodore's corporate parent company, Commodore International Limited...
, the Atari
Atari
Atari is a corporate and brand name owned by several entities since its inception in 1972. It is currently owned by Atari Interactive, a wholly owned subsidiary of the French publisher Atari, SA . The original Atari, Inc. was founded in 1972 by Nolan Bushnell and Ted Dabney. It was a pioneer in...
400/800 (XL/XE)
Atari 8-bit family
The Atari 8-bit family is a series of 8-bit home computers manufactured from 1979 to 1992. All are based on the MOS Technology 6502 CPU and were the first home computers designed with custom coprocessor chips...
, the Sinclair Research computers (ZX80
Sinclair ZX80
The Sinclair ZX80 is a home computer brought to market in 1980 by Science of Cambridge Ltd. . It is notable for being the first computer available in the United Kingdom for less than a hundred pounds...
, ZX81
Sinclair ZX81
The ZX81 was a home computer produced by Sinclair Research and manufactured in Scotland by Timex Corporation. It was launched in the United Kingdom in March 1981 as the successor to Sinclair's ZX80 and was designed to be a low-cost introduction to home computing for the general public...
, ZX Spectrum
ZX Spectrum
The ZX Spectrum is an 8-bit personal home computer released in the United Kingdom in 1982 by Sinclair Research Ltd...
) and the KC85 family
KC 85
The KC 85 were models of microcomputers built in East Germany, first in 1984 by Robotron and later by VEB Mikroelektronik "Wilhelm Pieck" Mühlhausen ....
popular in the German Democratic Republic
German Democratic Republic
The German Democratic Republic , informally called East Germany by West Germany and other countries, was a socialist state established in 1949 in the Soviet zone of occupied Germany, including East Berlin of the Allied-occupied capital city...
. All these computers had a CPU of the MOS Technology 6502
MOS Technology 6502
The MOS Technology 6502 is an 8-bit microprocessor that was designed by Chuck Peddle and Bill Mensch for MOS Technology in 1975. When it was introduced, it was the least expensive full-featured microprocessor on the market by a considerable margin, costing less than one-sixth the price of...
or Zilog Z80
Zilog Z80
The Zilog Z80 is an 8-bit microprocessor designed by Zilog and sold from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes...
type, 16 to 64 kilobyte
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
RAM, connectors for a cassette drive or a built-in one for data storage, and finally a BASIC
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....
interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...
that was generally stored in ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...
. The flat learning curve of BASIC, which had been designed with newcomers to programming in mind, and the instant availability of the language on all these computers led to many users writing and sharing their own programs.
A problem was that sharing programs and data across computers by different manufacturers was difficult because the various BASIC dialects were totally incompatible in some areas. They used different BASIC commands to make the same action (like clearing the screen, drawing a pixel or playing a sound), so that a BASIC program written for the C64 did not work on an Atari XL without modification and vice versa. Another difficulty was the fact that while these computers were similar, they still differed in key hardware aspects like screen resolution, available color palette or audio abilities. Finally, the data formats used for storing data on cassette were incompatible as well.
The first standard
Around 1980 the Netherlands broadcaster NOS began transmitting computer programs by radio. Because programs and data were stored as audio on compact cassettes, it was possible to record such a broadcast on tape and load it into the computer later. However, because of the problems mentioned earlier, the program had to be adapted for nearly all popular types of computers and broadcasted multiple times as well. Because the compact cassette has a very low data density compared to today's storage media, the recording of the programs took quite a long time, and only a limited number of programs could be broadcast per show. So, the additional broadcasting of different versions of the same programs was a great inconvenience.In 1982 the executives at NOS decided to develop a unified data format. An application that was specific for each computer model, called Bascoder, managed the recall and storage of programs and data in this unified format from tape. The Bascoders were broadcast by NOS as well, but could also be bought from NOS on cassette and shared among friends and acquaintances. The format, which was very well-protected against interference, could be read and written by all popular home computer hardware. The robustness of the format also made broadcasting via mediumwave
Mediumwave
Medium wave is the part of the medium frequency radio band used mainly for AM radio broadcasting. For Europe the MW band ranges from 526.5 kHz to 1606.5 kHz...
radio possible, which increased the range and in turn the number of potential users. For example, data broadcast by the Netherlands station TROS (Televisie en Radio Omroep Stichting, also known as Radio Hilversum) could be received in large parts of the German Democratic Republic
German Democratic Republic
The German Democratic Republic , informally called East Germany by West Germany and other countries, was a socialist state established in 1949 in the Soviet zone of occupied Germany, including East Berlin of the Allied-occupied capital city...
.
BASICODE 2
The standard solved one of the aforementioned problems, the incompatible data formats. However, programs still had to be adapted to each computer's BASIC dialect and hardware capabilities. Limiting the programs to only use instructions common across all dialects meant big limitations in terms of functionality, for example completely refraining from using graphics and sound and only uncomfortable methods to input data using the keyboard and to control character output on the screen. For this reasons, in 1984 the enhanced standard BASICODE 2 was created. Bascoders using this standard did not only contain routines for input and output of data to tape. In addition to a set of about 50 BASIC commands, functions and operators that were common across all BASIC dialects, the language standard of BASICODE 2 defined a library of subroutines that emulated the same capabilities across all supported computers.To achieve this, all program lines below 1000 were reserved for the Bascoder, and BASICODE programs could only start at line number 1000. The subroutines of the Bascoder in the lines below 1000 were called with a GOSUB
GOSUB
GOSUB is a command in many versions of the BASIC computer programming language. A GOSUB statement jumps to a line elsewhere in the program. That line and the following lines up to a RETURN are used as a simple kind of a subroutine without parameters or local variables.The GOSUB command may be used...
command. Necessary arguments were passed to the Bascoder by using special predefined variables that were reserved for use by the Bascoder. The standard contained a number of additional rules that were made necessary by the limitations of some computer models. For example, on the ZX-81 a line of code could only contain a single BASIC command, a behaviour that almost no other computer shared. On a KC series computer, a line of code could not be longer than 60 characters. These limitations had to be enforced for all BASICODE programs to guarantee platform independence, because the Bascoder was interpreted by the same computer specific BASIC interpreter as the BASICODE program itself.
Thus, the Bascoders were loaded on the various computers like normal programs and provided the additional routines for the common standard and cassette I/O afterwards. Programs written in BASICODE were only usable after the Bascoder had been loaded and started. However, on some computers the BASICODE programs could be merged with the routines of the Bascoders and saved in the native data format. The resulting program was not platform independent any longer, but due to the higher data density of most native formats it could be loaded much faster than the same program in BASICODE format. Also, because it was not necessary to load the complete Bascoder to run the program, more RAM remained available at run time.
There were BASICODE 2 Bascoders for the Exidy Sorcerer
Exidy Sorcerer
The Sorcerer was one of the early home computer systems, released in 1978 by the videogame company, Exidy. It was comparatively advanced when released, especially when compared to the contemporary more commercially-orientated Commodore PET and TRS-80, but due to a number of problems including a...
, Colour Genie
Colour Genie
The EACA EG2000 Colour Genie was a computer produced by Hong Kong-based manufacturer EACA and introduced in Germany in August 1982. It followed their earlier Video Genie I and II computers and was released around the same time as the business-oriented Video Genie III.The BASIC was compatible with...
, Commodore PET
Commodore PET
The Commodore PET was a home/personal computer produced from 1977 by Commodore International...
, VIC-20
Commodore VIC-20
The VIC-20 is an 8-bit home computer which was sold by Commodore Business Machines. The VIC-20 was announced in 1980, roughly three years after Commodore's first personal computer, the PET...
, C64
Commodore 64
The Commodore 64 is an 8-bit home computer introduced by Commodore International in January 1982.Volume production started in the spring of 1982, with machines being released on to the market in August at a price of US$595...
, Amiga
Amiga
The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...
, Sinclair ZX81
Sinclair ZX81
The ZX81 was a home computer produced by Sinclair Research and manufactured in Scotland by Timex Corporation. It was launched in the United Kingdom in March 1981 as the successor to Sinclair's ZX80 and was designed to be a low-cost introduction to home computing for the general public...
, ZX Spectrum
ZX Spectrum
The ZX Spectrum is an 8-bit personal home computer released in the United Kingdom in 1982 by Sinclair Research Ltd...
, QL
Sinclair QL
The Sinclair QL , was a personal computer launched by Sinclair Research in 1984, as the successor to the Sinclair ZX Spectrum...
, Acorn Atom
Acorn Atom
The Acorn Atom was a home computer made by Acorn Computers Ltd from 1980 to 1982 when it was replaced by the BBC Micro and later the Acorn Electron....
, Micro
BBC Micro
The BBC Microcomputer System, or BBC Micro, was a series of microcomputers and associated peripherals designed and built by Acorn Computers for the BBC Computer Literacy Project, operated by the British Broadcasting Corporation...
, Electron
Acorn Electron
The Acorn Electron is a budget version of the BBC Micro educational/home computer made by Acorn Computers Ltd. It has 32 kilobytes of RAM, and its ROM includes BBC BASIC along with its operating system....
, Tandy TRS-80
TRS-80
TRS-80 was Tandy Corporation's desktop microcomputer model line, sold through Tandy's Radio Shack stores in the late 1970s and early 1980s. The first units, ordered unseen, were delivered in November 1977, and rolled out to the stores the third week of December. The line won popularity with...
, MSX
MSX
MSX was the name of a standardized home computer architecture in the 1980s conceived by Kazuhiko Nishi, then Vice-president at Microsoft Japan and Director at ASCII Corporation...
, Oric Atmos, P2000T, Grundy NewBrain
Grundy NewBrain
The Grundy NewBrain was a microcomputer sold in the early 1980s by Grundy Business Systems Ltd of Teddington and Cambridge, England.- Beginnings :...
, Amstrad CPC
Amstrad CPC
The Amstrad CPC is a series of 8-bit home computers produced by Amstrad between 1984 and 1990. It was designed to compete in the mid-1980s home computer market dominated by the Commodore 64 and the Sinclair ZX Spectrum, where it successfully established itself primarily in the United Kingdom,...
, IBM PC
IBM PC
The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...
, Apple II
Apple II
The Apple II is an 8-bit home computer, one of the first highly successful mass-produced microcomputer products, designed primarily by Steve Wozniak, manufactured by Apple Computer and introduced in 1977...
, Texas Instruments TI-99/4A
Texas Instruments TI-99/4A
The Texas Instruments TI-99/4A was an early home computer, released in June 1981, originally at a price of USD $525. It was an enhanced version of the less-successful—and quite rare—TI-99/4 model, which was released in late 1979 at a price of $1,150...
, Mattel Aquarius
Mattel Aquarius
Aquarius is a home computer designed by Radofin and released by Mattel in 1983. It features a Zilog Z80 microprocessor, a rubber chiclet keyboard, 4K of RAM, and a subset of Microsoft BASIC in ROM. It connects to a television set and uses a cassette tape recorder for secondary data storage...
and others. Additionally, advanced users were able to write their own Bascoder for their system of choice, since the language standard and data format were open and well-documented. The BASICODE 2 standard made the development of platform independent programs with advanced capabilities (for the time) possible. In addition, BASICODE was used to transmit and share information like computer scene news via radio in the form of so-called "journals". A BASICODE coding tutorial and other documentation was transmitted this way as well.
BASICODE 3 / 3C
In 1986, the new BASICODE 3 standard was developed. The most important additions were routines for simple monochromeMonochrome
Monochrome describes paintings, drawings, design, or photographs in one color or shades of one color. A monochromatic object or image has colors in shades of limited colors or hues. Images using only shades of grey are called grayscale or black-and-white...
graphics, reading and writing data from within programs and sound output. BASICODE 3 made BASICODE popular in the computer scene of the GDR, and from 1989 onward BASICODE programs were transmitted via radio throughout the GDR. Also, a book was published which included a vinyl record with Bascoders for all computers common in the GDR. The last revision of BASICODE, which featured color graphics, was released as BASICODE 3C in 1991.
The end of BASICODE
From about 1990 onward the popularity of BASICODE declined rapidly due to the rise of 16- and 32-bit computers, especially IBM-PC variants and compatible systems. Even though there were Bascoders for these machines, BASICODE was too limited to make use of the resources that that generation of computers provided. Additionally, because of the much fewer common architectures in the 16- and 32-bit era, the main reason for the development and use of BASICODE became moot. As the hardware and software of the new systems became more and more complex, most users became unable or disinclined to write programs. The rise of graphical user interfaces contributed to the decline in popularity of 8-bit computers and consequently BASICODE as well.The successor of the GDR's state broadcaster, the Deutschlandsender Kultur
Deutschlandsender
Deutschlandsender is one of the longest-established radio station names in German. It was used between 1926 and the end of 1993 to denote a number of powerful stations designed to achieve all-Germany coverage .-1926—1945:The first Deutschlandsender, broadcasting from a powerful transmitter...
(which later became part of the new Deutschlandradio
Deutschlandradio
Deutschlandradio is a national German public broadcasting radio broadcaster. It operates four national networks, Deutschlandfunk, Deutschlandradio Kultur, Dokumente und Debatten and DRadio Wissen....
), continued to broadcast BASICODE programs until about 1992. A planned standard called BASICODE 4 never became reality, because NOS stopped supporting the project shortly after BASICODE 3C was released. BASICODE is still used by enthusiasts, in particular 8-bit computer fans, for nostalgic value, but is not of any practical relevance.
Historical significance
BASICODE was an early attempt at creating a standard for the exchange of programs and data across mutually incompatible home computer architectures. It is roughly contemporary to the MSXMSX
MSX was the name of a standardized home computer architecture in the 1980s conceived by Kazuhiko Nishi, then Vice-president at Microsoft Japan and Director at ASCII Corporation...
standard developed by Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
, which specified a shared hardware platform in addition to a common BASIC dialect. These computers were sold by multiple companies and directly competed with other popular home computers. MSX was successful mostly in the home markets of the manufacturers, for example Japan
Japan
Japan is an island nation in East Asia. Located in the Pacific Ocean, it lies to the east of the Sea of Japan, China, North Korea, South Korea and Russia, stretching from the Sea of Okhotsk in the north to the East China Sea and Taiwan in the south...
, South Korea
South Korea
The Republic of Korea , , is a sovereign state in East Asia, located on the southern portion of the Korean Peninsula. It is neighbored by the People's Republic of China to the west, Japan to the east, North Korea to the north, and the East China Sea and Republic of China to the south...
, the Netherlands
Netherlands
The Netherlands is a constituent country of the Kingdom of the Netherlands, located mainly in North-West Europe and with several islands in the Caribbean. Mainland Netherlands borders the North Sea to the north and west, Belgium to the south, and Germany to the east, and shares maritime borders...
and Brasil. Unlike MSX, BASICODE defined no hardware, but a language standard for the programming language BASIC, which was near-ubiquitous in home computers, plus a data format for Compact Cassette
Compact Cassette
The Compact Cassette, often referred to as audio cassette, cassette tape, cassette, or simply tape, is a magnetic tape sound recording format. It was designed originally for dictation, but improvements in fidelity led the Compact Cassette to supplant the Stereo 8-track cartridge and reel-to-reel...
s which could be read and written on all computers for which BASICODE was available. As a result, the implementation of BASICODE was exclusively dependent on additional software and thus was not limited to computers by specific manufacturers. The installed base
Installed base
Installed base or installed user base is a measure of the number of units of a particular type of system—usually a computing platform—actually in use, as opposed to market share, which only reflects sales over a particular period. Because installed base includes machines that may have been in use...
of BASICODE is hard to estimate, because both the Basicoders and the programs written in BASICODE were freely available. There was a Bascoder for nearly every home computer sold during this era. Commercially, BASICODE was of no importance because it was always shared for free.
It must be stated that BASICODE was, by design, unable to use the capabilities of the host computers to their full extent. The language standard defined by BASICODE was the lowest common denominator of all relevant computer systems. This concept was partially abandoned only with BASICODE3/3C, as some computers or computer variants like the ZX80/ZX81 and the KC87 were not capable of graphics and color and the new sections of BASICODE using these capabilities were not usable on them. Especially for applications that relied on timing and graphics or sound, for example computer games
Computer Games
"Computer Games" is a single by New Zealand group, Mi-Sex released in 1979 in Australia and New Zealand and in 1981 throughout Europe. It was the single that launched the band, and was hugely popular, particularly in Australia and New Zealand...
, BASICODE was clearly inferior to programs written in "native" BASIC or machine code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...
. The strengths of BASICODE were in the areas of application design, education software and data sharing. The BASICODE format was also used for 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...
programs. Pascal was a much more consistent language across systems, but compilers were available only for very few types of home computers.
The underlying concept of BASICODE, which is the definition of a language standard for platform-independent software development and the implementation of said standard as system-specific runtimes (Bascoder) was later revisited in the programming language Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, in the form of the operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
-specific Java Virtual Machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
s which execute Java programs. Additionally, the distribution of data and information in the BASICODE data format is reminiscent of current platform-agnostic document types like the Portable Document Format
Portable Document Format
Portable Document Format is an open standard for document exchange. This file format, created by Adobe Systems in 1993, is used for representing documents in a manner independent of application software, hardware, and operating systems....
(PDF) and the PDF reader applications it necessitates.
The BASICODE data format
In the BASICODE format, the recording of programs is analogous to the recording of data. So, when recording programs, the commands are not read and written in the form of single byteByte
The byte is a unit of digital information in computing and telecommunications that most commonly consists of eight bits. Historically, a byte was the number of bits used to encode a single character of text in a computer and for this reason it is the basic addressable element in many computer...
units (tokens), but character by character.
A data block begins with the character 02 (STX, start of text), and ends with the character 03 (ETX, end of text). After ETX, a check byte made up of the previous bytes including STX and ETX by binary addition (XOR), is transmitted. A 0D character (decimal 13) marks the end of a line during transmission. Data files created by programs are able to use all characters as data and must contain no control characters. They are read and written in blocks of 1024 bytes.
Each byte is transmitted in the sequence "1 start bit - 8 data bits - 2 stop bits". The data bits are little-endian ordered. The resulting redundancy
Redundancy (information theory)
Redundancy in information theory is the number of bits used to transmit a message minus the number of bits of actual information in the message. Informally, it is the amount of wasted "space" used to transmit certain data...
is intended for maximising compatibility with different computers. Bit 7 is always 0, which is especially useful when transmitting ASCII
ASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
characters, because these always have bit 7 set to 0.
For the audio signals, square waves in the form of a 1200 Hz
Hertz
The hertz is the SI unit of frequency defined as the number of cycles per second of a periodic phenomenon. One of its most common uses is the description of the sine wave, particularly those used in radio and audio applications....
wave for a "0" bit and two 2400 Hz waves for a "1" bit are used, resulting in a time of 1/1200 seconds for each bit. A pause longer than 1/1800 seconds between waves marks the beginning of a byte, making the following wave the start bit. After the start bit and before the eight data bits is another pause of at least 1/1800 seconds. A 2400 Hz signal with a length of five seconds marks the beginning of a transmission and is used for synchronization of the reading program. At the end of the transmission, a 2400 Hz signal with a length of one second is sent.
The theoretical data rate
Data rate
Data rate can refer to:* Bit rate, or data transfer rate* Data signaling rate* Data rate units-See also:* Baud rate* Channel capacity* Throughput* Bandwidth everything in this page is falsified...
of this format is 1200 bits per second. Considering the transmission of three additional bits per data byte and the pauses before and after the start bit, this results in a usable data rate of 102 bytes per second, and about 6 kilobytes per minute.
See also
- hardware abstraction layer
- library (computer science)Library (computer science)In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....
- virtual machineVirtual machineA virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...
- Kansas City standardKansas City standardThe Kansas City Standard , or Byte standard, is a digital data format for audio cassette drives. Byte magazine sponsored a symposium in November 1975 in Kansas City, Missouri to develop a standard for storage of digital computer data on inexpensive consumer quality cassettes, at a time when...
Further reading
Michael Wiegand, Manfred Fillinger: BASICODE. Mit Programmkassette. Ravensburger Buchverlag, Ravensburg 1986, ISBN 3-473-44010-8 Hermine Bakker, Jaques Haubrich (authors), Stichting BASICODE (publisher): Het BASICODE-3 boek. 3. Auflage. Kluwer Technische Boeken B.V., Deventer/ Antwerpen 1988, ISBN 90-201-2111-1 Horst Völz: Basicode mit Programmen auf Schallplatte für Heimcomputer. Verlag Technik, Berlin 1990, ISBN 3-341-00895-0External links
Official Dutch Hobbyscoop-site , the original development group of BASICODE- BASICODE: an example of Dutch computer folklore - Historical information BasiCode – Software für alle - Information about history and programming
- BASICODE: still active within a Yahoo e-group