MLX
Encyclopedia
MLX is a series of machine language
entry utilities published by COMPUTE! Publications for COMPUTE!
, COMPUTE!'s Gazette
, and various books. These programs were designed to allow relatively easy entry of the type-in
machine language listings that were often included in these publications.
8-bit
series of computers. It was first introduced in December 1983 for the Commodore 64
. The following month, a VIC-20
version ("Tiny MLX") was introduced. Generally, MLX listings were reserved for relatively long machine language programs such as SpeedScript
, while shorter programs were often printed in the form of BASIC loader
s that used
The initial Commodore versions of MLX accepted decimal
data. Each line of data contained six data bytes, plus a seventh byte which served as a checksum
. Although each line began with the memory address, and bytes were separated with commas, these did not have to be typed; the program auto-incremented the address and automatically printed the comma delimiters every three characters. Invalid keystrokes were filtered out. When a line was completely typed, it was automatically verified against the checksum value. If it matched, the user would be prompted for the next line. If not, a warning buzzer would sound and the invalid input would be discarded so that the user could retype the line. Several keyboard keys were redefined to create a makeshift numeric keypad
.
Although the original MLX was a more efficient entry method than BASIC loaders with
Because of these issues, a completely new version of MLX (written by Technical Editor Ottis R. Cowper) debuted in the December 1985 issue of COMPUTE!. It appeared in COMPUTE!'s Gazette the following month. The new version stored typed data in a buffer, thus eliminating the need to reconfigure memory. The data format changed from decimal to hexadecimal
, thus drastically reducing the number of keystrokes needed. Line length was increased from six bytes to eight, thereby reducing the checksum overhead. A more sophisticated hash algorithm was implemented to catch errors overlooked by the original, only failing to notice a substitution of 0xFF and 0x00 http://www.devili.iki.fi/pub/Commodore/docs/magazines/gazette/MLX/jan86-MLX2A.jpg http://www.devili.iki.fi/pub/Commodore/docs/magazines/gazette/MLX/jan86-MLX2B.jpg http://www.devili.iki.fi/pub/Commodore/docs/magazines/gazette/MLX/jan86-MLX2C.jpg. This replacement version of MLX was very successful, and continued to be used until COMPUTE!'s Gazette switched over to a disk-only format in December 1993.
and Apple II family. Atari MLX was based upon the earliest Commodore version and released alongside it in the December 1983 issue of COMPUTE! http://www.atarimagazines.com/compute/issue43/190_1_MLX.php. Like its Commodore counterparts, its lines consisted of six decimal numbers each plus a checksum. Apple MLX, introduced in June 1985 http://www.atarimagazines.com/compute/issue61/349_1_Apple_MLX.php, was the first MLX version to use the 8-byte-per-line hexadecimal listing format that would later be employed on the revised Commodore MLX. Although the lines appeared similar to those of their Commodore counterparts, the hash algorithms were different, presumably to prevent entry on the wrong system.
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...
entry utilities published by COMPUTE! Publications for COMPUTE!
COMPUTE!
Compute! was an American computer magazine that was published from 1979 to 1994, though it can trace its origin to 1978 in Len Lindsay's PET Gazette, one of the first magazines for the Commodore PET computer. In its 1980s heyday Compute! covered all major platforms, and several single-platform...
, COMPUTE!'s Gazette
COMPUTE!'s Gazette
COMPUTE!'s Gazette was a computer magazine of the 1980s, directed at users of Commodore's 8-bit home computers. Publishing its first issue in July 1983, the Gazette was a Commodore-only daughter magazine of the computer hobbyist magazine COMPUTE!....
, and various books. These programs were designed to allow relatively easy entry of the type-in
Type-in program
A type-in program, or just type-in, is a computer program listing printed in a computer magazine or book, meant to be typed in by the reader in order to run the program on a computer....
machine language listings that were often included in these publications.
Commodore versions of MLX
MLX was initially written for the CommodoreCommodore 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...
8-bit
8-bit
The first widely adopted 8-bit microprocessor was the Intel 8080, being used in many hobbyist computers of the late 1970s and early 1980s, often running the CP/M operating system. The Zilog Z80 and the Motorola 6800 were also used in similar computers...
series of computers. It was first introduced in December 1983 for the Commodore 64
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...
. The following month, a 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...
version ("Tiny MLX") was introduced. Generally, MLX listings were reserved for relatively long machine language programs such as SpeedScript
SpeedScript
SpeedScript was a type-in word processor for various home computers. Approximately 5 KB in length, it provided many of the same features as commercial word processing packages of the early 8-bit era, such as Easy Script and Bank Street Writer....
, while shorter programs were often printed in the form of BASIC loader
BASIC loader
A BASIC loader is a computer programming technique used with the BASIC programming language to POKE machine language opcodes into RAM. The technique was most prevalent in type-in program listings published for home computers of the 1980s as it allowed the publication of programs that gained the...
s that used
DATA
statements to POKEPEEK and POKEIn computing, PEEK is a BASIC programming language extension used for reading the contents of a memory cell at a specified address. The corresponding command to set the contents of a memory cell is POKE.-Statement syntax:...
the code into memory.The initial Commodore versions of MLX accepted decimal
Decimal
The decimal numeral system has ten as its base. It is the numerical base most widely used by modern civilizations....
data. Each line of data contained six data bytes, plus a seventh byte which served as a checksum
Checksum
A checksum or hash sum is a fixed-size datum computed from an arbitrary block of digital data for the purpose of detecting accidental errors that may have been introduced during its transmission or storage. The integrity of the data can be checked at any later time by recomputing the checksum and...
. Although each line began with the memory address, and bytes were separated with commas, these did not have to be typed; the program auto-incremented the address and automatically printed the comma delimiters every three characters. Invalid keystrokes were filtered out. When a line was completely typed, it was automatically verified against the checksum value. If it matched, the user would be prompted for the next line. If not, a warning buzzer would sound and the invalid input would be discarded so that the user could retype the line. Several keyboard keys were redefined to create a makeshift numeric keypad
Numeric keypad
A numeric keypad, numpad or tenkey for short, is the small, palm-sized, seventeen key section of a computer keyboard, usually on the very far right. The numeric keypad features digits 0 to 9, addition , subtraction , multiplication and division symbols, a decimal point and Num Lock and Enter keys...
.
Although the original MLX was a more efficient entry method than BASIC loaders with
DATA
statements, it had a number of issues. Foremost among them was that it POKE
d the data entered directly into the affected area of memory. Since many machine language programs were located partially or entirely in the BASIC RAM area, this meant that the user had to manually adjust the pointers to the top and bottom of BASIC RAM (using POKE
statements provided in the article) before running MLX to keep the entry program from encroaching on the code and vice versa. If a program was entered in multiple sittings, this had to be done each time. Also, decimal storage required seven keystrokes for each two bytes entered (taking into account the checksums). Furthermore, many transposition errors were overlooked by the original MLX's unsophisticated checksum algorithm.Because of these issues, a completely new version of MLX (written by Technical Editor Ottis R. Cowper) debuted in the December 1985 issue of COMPUTE!. It appeared in COMPUTE!'s Gazette the following month. The new version stored typed data in a buffer, thus eliminating the need to reconfigure memory. The data format changed from decimal to hexadecimal
Hexadecimal
In mathematics and computer science, hexadecimal is a positional numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0–9 to represent values zero to nine, and A, B, C, D, E, F to represent values ten to fifteen...
, thus drastically reducing the number of keystrokes needed. Line length was increased from six bytes to eight, thereby reducing the checksum overhead. A more sophisticated hash algorithm was implemented to catch errors overlooked by the original, only failing to notice a substitution of 0xFF and 0x00 http://www.devili.iki.fi/pub/Commodore/docs/magazines/gazette/MLX/jan86-MLX2A.jpg http://www.devili.iki.fi/pub/Commodore/docs/magazines/gazette/MLX/jan86-MLX2B.jpg http://www.devili.iki.fi/pub/Commodore/docs/magazines/gazette/MLX/jan86-MLX2C.jpg. This replacement version of MLX was very successful, and continued to be used until COMPUTE!'s Gazette switched over to a disk-only format in December 1993.
Other versions of MLX
Although they were not as widely used as the Commodore versions, COMPUTE! also released MLX for the Atari 8-bit familyAtari 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...
and Apple II family. Atari MLX was based upon the earliest Commodore version and released alongside it in the December 1983 issue of COMPUTE! http://www.atarimagazines.com/compute/issue43/190_1_MLX.php. Like its Commodore counterparts, its lines consisted of six decimal numbers each plus a checksum. Apple MLX, introduced in June 1985 http://www.atarimagazines.com/compute/issue61/349_1_Apple_MLX.php, was the first MLX version to use the 8-byte-per-line hexadecimal listing format that would later be employed on the revised Commodore MLX. Although the lines appeared similar to those of their Commodore counterparts, the hash algorithms were different, presumably to prevent entry on the wrong system.