- MLX (software)
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.Commodore versions of MLX
[
Hexadecimal data being entered with the new MLX] MLX was initially written for the Commodore8-bit series of computers. It was first introduced inDecember 1983 for theCommodore 64 [http://www.devili.iki.fi/pub/Commodore/docs/magazines/gazette/MLX/dec83-MLX1A.jpg] [http://www.devili.iki.fi/pub/Commodore/docs/magazines/gazette/MLX/dec83-MLX1B.jpg] [http://www.devili.iki.fi/pub/Commodore/docs/magazines/gazette/MLX/dec83-MLX1C.jpg] . 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 loaders" that usedDATA
statements toPOKE
the code into memory.The initial Commodore versions of MLX accepted
decimal data. Each line of data contained six data bytes, plus a seventh byte which served as achecksum . 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 makeshiftnumeric keypad .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 itPOKE
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 (usingPOKE
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 tohexadecimal , 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 inDecember 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 family andApple 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 inJune 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.ources
* [http://www.atariarchives.org/2bml/appendix_c.php Machine Language Editor for Atari and Commodore]
Wikimedia Foundation. 2010.