MAC/65

Last updated
MAC/65
Mac65scr2.png
Screenshot of cartridge version
Original author(s) Steven D. Lawrow
Developer(s) Optimized Systems Software
Initial release1982;39 years ago (1982)
Final release
4.20 / 1994;27 years ago (1994)
Platform Atari 8-bit family
Size 16 KB
Type Assembler
License Proprietary software

MAC/65 is a 6502 assembler written by Stephen D. Lawrow for the Atari 8-bit family of home computers. MAC/65 was first released on disk by Optimized Systems Software in 1982, with the program requiring 16 KB RAM. A bank switched "SuperCartridge" from OSS followed in January 1984 for US$99, [1] occupying only 8 KB.

Contents

MAC/65 is structured similarly to the Atari Assembler Editor cartridge, combining a line editor, assembler, and debugger into a single package. Its reputation was based on being much faster than either the Assembler Editor or the standalone Atari Macro Assembler. Brian Moriarty of Infocom wrote, "No assembler [at the time] on the C64 even comes CLOSE to MAC/65. Take it from someone who looked for one." [2] It was used to write numerous commercial games and applications, and the majority of assembly language listings in ANALOG Computing were written with MAC/65.

According to Lawrow, MAC/65 was used to compile not only itself, but BASIC XL and BASIC XE.

Overview

Like Atari BASIC, source code in MAC/65 uses line numbers and is tokenized as it is entered. The entry scanner converts the line number to a 16-bit integer, converts the assembly mnemonic to an 8-bit code, and then replaces any constants or variable references with their value or address. As part of this process, any syntax errors are immediately found and reported, and as multi-character keywords and names are replaced by a single byte, the code is much smaller in memory.

The main advantage to this approach, however, is that "compiling" the program is a simplified task of copying out the tokens at the correct starting address, as the tokens are the ultimate instruction opcodes. This makes the entire compiling process dramatically faster than a system that has to parse the code from its original text format. Source files can be saved and loaded in either tokenized format or as text files.

Unlike the Atari Assembler Editor, MAC/65 provides macro processing and conditional assembly.

The cartridge version added 65C02 opcode support as well as a condensed version of Dunion's Debugging Tool (DDT) by Jim Dunion, the full version of which was originally sold through the Atari Program Exchange. [3] DDT replaced the BUG/65 debugger which shipped with the disk version of MAC/65.

MAC/65 ToolKit

The ToolKit was a floppy diskette filled with source code and examples for use with the MAC/65 assembler. The ToolKit required an Atari 8-bit with 48K of memory, a disk drive and the MAC/65 cartridge.

The following is example code for Hello World! using the MAC/65 ToolKit:

0100.OPTNOLIST0110;0120; HELLO.M650130; ---------0140;0150; THE HELLO WORLD TEST USING0160; THE MAC/65 TOOLKIT0170;0180RUNAD=$02E0; RUN ADDRESS0190EOL=$9B; END-OF-LINE0200*=$40000210;0220MSG.BYTE"HELLO WORLD!",EOL0230;0240.INCLUDE#D:KERNEL.M650250;0260START0270PRINT0,MSG; CHANNEL 00280RTS; RETURN TO DOS0290;0300*=RUNAD0310.WORDSTART0320.ENDASM,,#D:HELLO.COMDOSHELLO.COM

Legacy

MAC/65 along with other OSS products became part of ICD's catalog of Atari products in January 1988. In 1994, Fine Tooned Engineering obtained limited rights to ICD's 8-bit products, including MAC/65. [4]

The open source ATasm project was written as a MAC/65-compatible cross assembler. [5]

Related Research Articles

MOS Technology 6502 8-bit microprocessor

The MOS Technology 6502 is an 8-bit microprocessor that was designed by a small team led by Chuck Peddle for MOS Technology. The design team had formerly worked at Motorola on the Motorola 6800 project; the 6502 is essentially a simplified, less expensive and faster version of that design.

Atari 8-bit family Series of home computers introduced in 1979

The Atari 8-bit family is a series of 8-bit home computers introduced by Atari, Inc. in 1979 as the Atari 400 and Atari 800 and manufactured until 1992. All of the machines in the family are technically similar and differ primarily in packaging. They are based on the MOS Technology 6502 CPU running at 1.79 MHz, and were the first home computers designed with custom coprocessor chips. This architecture enabled graphics and sound more advanced than contemporary machines, and gaming was a major draw. First-person space combat simulator Star Raiders is considered the platform's killer app. The systems launched with plug-and-play peripherals using the Atari SIO serial bus, an early analog of USB.

Atari BASIC

Atari BASIC is an interpreter for the BASIC programming language that shipped with the Atari 8-bit family of 6502-based home computers. Unlike most BASICs of the home computer era, Atari BASIC is not a derivative of Microsoft BASIC and differs in significant ways. It includes keywords for Atari-specific features and lacks support for string arrays, for example.

Atari XEGS 1987 video game console

The Atari XE Video Game System is an industrial redesign of the Atari 65XE home computer and the final model in the Atari 8-bit family. It was released by Atari Corporation in 1987 and marketed as a home video game console alongside the Nintendo Entertainment System, Sega's Master System, and Atari's own Atari 7800. The XEGS is compatible with existing Atari 8-bit family hardware and software. Without keyboard, the system operates as a stand-alone game console. With the keyboard, it boots identically to the Atari XE computers. Atari packaged the XEGS as a basic set consisting of only the console and joystick, and as a deluxe set consisting of the console, keyboard, CX40 joystick, and XG-1 light gun.

The Atari Microsoft BASIC and Atari Microsoft BASIC II variants of the 6502-version of Microsoft BASIC ported to the Atari 8-bit machines. The first version, released 1981, required 32 kB of RAM and was supplied on floppy disk. The second version, released the next year, had most of the code on a ROM cartridge with additional functions on an optional floppy.

BASIC A+ was developed by Optimized Systems Software of Cupertino, California, United States, to provide the Atari 8-bit family with an extended BASIC compatible with the simpler ROM-based Atari BASIC. This interpreter was developed by the same team that developed Atari BASIC. While Atari BASIC came on an 8 KB ROM cartridge, BASIC A+ was delivered on floppy disk and uses 15 KB of the computer's RAM, leaving 23 KB available for user programs in a 48 KB Atari 800. Being an extension of Atari BASIC, BASIC A+ came with a supplement to the former's reference manual as its documentation. In addition to being faster than its ROM-bound counterpart, BASIC A+ provides extra commands for DOS operations, player/missile graphics, and debugging.

cc65

cc65 is a cross development package for 6502 and 65C02 targets, including a macro assembler, a C cross compiler, linker, librarian and several other tools.

Action! (programming language) Atari 8-bit family programming language

Action! is a procedural programming language and integrated development environment written by Clinton Parker for the Atari 8-bit family. The language, which is similar to ALGOL, compiled to high-performance code for the MOS Technologies 6502 of the Atari computers. Action! was distributed on ROM cartridge by Optimized Systems Software starting in 1983. It was one of the company's first bank-switched "Super Cartridges", with a total of 16 kB of code.

Atari DOS

Atari DOS is the disk operating system used with the Atari 8-bit family of computers. Operating system extensions loaded into memory were required in order for an Atari computer to manage files stored on a disk drive. These extensions to the operating system added the disk handler and other file management features.

Optimized Systems Software (OSS) was a company that produced disk operating systems, programming languages with integrated development environments, and applications primarily for the Atari 8-bit family of home computers. OSS was best known for their enhanced versions of Atari BASIC and the MAC/65 assembler, both of which are much faster than Atari's products, and the Action! programming language. OSS also sold some products for the Apple II.

DOS XL

DOS XL is a discontinued Disk Operating System (DOS) written by Paul Laughton, Mark Rose, Bill Wilkinson, and Mike Peters and published by Optimized Systems Software for the Atari 8-bit family of home computers. It was designed to be compatible with Atari DOS which came shipped with Atari, Inc.'s disk drives.

Atari Assembler Editor is a ROM cartridge-based development system released by Atari, Inc. in 1981. It is used to edit, assemble, and debug 6502 programs for the Atari 8-bit family of home computers. It was programmed by Kathleen O'Brien of Shepardson Microsystems, the company which wrote Atari BASIC, and Assembler Editor shares many design concepts with that language.

Parallel Bus Interface

The Parallel Bus Interface, or PBI, is a 50-pin port found on some Atari 8-bit XL computers. It provides unbuffered, direct connection to the system bus lines, running at the same speed as the 6502 CPU. The 600XL and 800XL computers, along with the unreleased 1400XL and 1450XLD had a PBI interface.

Synapse Software Corporation was an American video game development and publishing company founded in 1981. They initially focused on the Atari 8-bit family, then later developed for the Commodore 64 and other systems. Synapse was founded by Ihor Wolosenko and Ken Grant. The company was purchased by Broderbund in late 1984, and the Synapse label retired in 1985.

Atari 8-bit family software

This article is an overview of programs available for the Atari 8-bit family of home computers. Software was sold both by Atari, Inc. and third parties. Atari also distributed software through the Atari Program Exchange from 1981 to 1984. After APX folded, many titles were picked up by Antic Software.

<i>De Re Atari</i> Book by Chris Crawford

De Re Atari, subtitled "A Guide to Effective Programming," is a book written by Atari, Inc. employees in 1981 and published by the Atari Program Exchange in 1982 as an unbound, shrink-wrapped set of three-holed punched pages. Targeted at developers, it documents the advanced features of the Atari 8-bit family of home computers and includes ideas for how to use them in applications. The information in the book was not available in a single, collected source at the time of publication.

Cosmos (operating system) Toolkit for building operating systems

C# Open Source Managed Operating System (Cosmos) is a toolkit for building operating systems, written mostly in the programming language C# and small amounts of a high level assembly language named X#. Cosmos is a backronym, in that the acronym was chosen before the meaning. It is open-source software released under a BSD license.

SpartaDOS X

SpartaDOS X is a disk operating system for the Atari 8-bit family of computers that closely resembles MS-DOS. It was developed and sold by ICD, Inc. in 1987-1993, and many years later picked up by the third-party community SpartaDOS X Upgrade Project, which still maintains the software.

Happy drives are series of disk drive enhancements for the Atari 8-bit and Atari ST computer families produced by a small company Happy Computers. Happy Computers is most noted for the add-in boards for the Atari 810 and Atari 1050 disk drives, which achieved a tremendous speed improvement for reading and writing, and for the ability to "back up" floppies. Happy's products were among the most popular Atari computer add-ons. They were still in use and active in the aftermarket as of 2009.

The Infineon XE166 family is a 16-bit microcontroller family, first introduced in 2007. The XE166 can be found in applications like servo drivers, appliance motors, industrial pumps, transportation and power supplies.

References

  1. "OSS Newsletter". archive.org. January 1984.
  2. "INFOCOM On Line: Transcript with Brian Moriarty".
  3. "Dunion's Debugging Tool". Atari Mania.
  4. "Fine Tooned Engineering".
  5. "ATasm: 6502 cross-assembler".