MLX (software) Contents First version Improved version See also References External links Navigation...


Apple II softwareCommodore VIC-20 softwareAtari 8-bit family softwareCommodore 64 softwareMachine code


machine languagetype-inCommodore 64PETVIC-20Atari 8-bit familyApple IICommodore 64Atari 8-bit familyVIC-20Kdecimalchecksumnumeric keypadSpeedScriptBASIC loadersRAMApple IIhexadecimalbackported




MLX is a series of machine language entry utilities published by the magazines COMPUTE! and COMPUTE!'s Gazette, as well as books from COMPUTE! Publications. These programs were designed to allow relatively easy entry of the type-in machine language listings that were often included in these publications. Versions were available for the Commodore 64, PET,[citation needed]VIC-20, Atari 8-bit family, and Apple II.




Contents






  • 1 First version


  • 2 Improved version


  • 3 See also


  • 4 References


  • 5 External links





First version


MLX was introduced in the December 1983 issue of COMPUTE!, with versions for the Commodore 64 and Atari 8-bit family.[1] This was followed in the January 1984 issue of COMPUTE!'s Gazette by a version for the VIC-20 with 8K expansion,[2] and in the March 1984 issue by Tiny MLX, a version for the unexpanded VIC-20.[3]


These versions of MLX shared a format consisting of six data bytes in decimal format, 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. In the Commodore version, beginning in the May 1984 issue of COMPUTE!, several keyboard keys were redefined to create a makeshift numeric keypad.[4]


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 used DATA statements to POKE the code into memory.




An example of MLX type-in program code from COMPUTE!'s Gazette.


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 POKEd 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.



Improved version


A new version of MLX was introduced for the Apple II in the June 1985 issue.[5] This version used an 8-byte-per-line hexadecimal format. A more sophisticated hash algorithm was implemented to catch errors overlooked by the original, only failing to notice a substitution of 0xFF and 0x00.


The same improved layout and hashing was then backported to the Commodore 64. This version also added an editor buffer located at a single location in memory, removing the need to POKE memory locations at startup. The new version, known on the title screen as "MLX II", but otherwise simply as "the new MLX", first appeared in the December 1985 issue of COMPUTE!.[6] It appeared in COMPUTE!'s Gazette the following month.[7] This replacement version of MLX continued to be used until COMPUTE!'s Gazette switched over to a disk-only format in December 1993.



See also



  • The Automatic Proofreader – COMPUTE!'s checksum utility for BASIC programs


References





  1. ^ Charles Brannon, "MLX: Machine Language Entry Program For Atari And Commodore 64", COMPUTE!, December 1983, p. 216


  2. ^ Brannon, Charles (January 1984). "MLX Machine Language Entry Program For Commodore 64 And VIC-20". COMPUTE!'s Gazette. Greensboro, North Carolina: COMPUTE! Publications. p. 171. Retrieved 2018-03-26..mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"""""""'""'"}.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Lock-gray-alt-2.svg/9px-Lock-gray-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Lock-red-alt-2.svg/9px-Lock-red-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/12px-Wikisource-logo.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:inherit;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}


  3. ^ Brannon, Charles (March 1984). "Notes on VIC Tiny MLX". COMPUTE!'s Gazette. Greensboro, North Carolina: COMPUTE! Publications. p. 48. Retrieved 2018-03-26.


  4. ^ Brannon, Charles (May 1984). "MLX Machine Language Entry Program For Commodore 64". COMPUTE!'s Gazette. Greensboro, North Carolina: COMPUTE! Publications. p. 181. Retrieved 2018-03-26.


  5. ^ Tim Victor, "Apple MLX: Machine Language Entry Program", COMPUTE!, June 1985, p. 114


  6. ^ Ottis Cowper, "The New MLX: Enhanced Machine Language Editor for the Commodore 64", COMPUTE!, December 1985, p. 74


  7. ^ Cowper, Ottis. "The New MLX: Enhanced Machine Language Editor for the Commodore 64". COMPUTE!'s Gazette. Greensboro, North Carolina: COMPUTE! Publications. p. 42. Retrieved 2018-03-27.




External links


  • Machine Language Editor for Atari and Commodore



Popular posts from this blog

Why do type traits not work with types in namespace scope?What are POD types in C++?Why can templates only be...

Will tsunami waves travel forever if there was no land?Why do tsunami waves begin with the water flowing away...

Should I use Docker or LXD?How to cache (more) data on SSD/RAM to avoid spin up?Unable to get Windows File...