MAC/65 explained

MAC/65
Author:Steven D. Lawrow
Developer:Optimized Systems Software
Discontinued:yes
Latest Release Version:4.20
Platform:Atari 8-bit
Size:16 KB
Genre:Assembler
License:Proprietary software

MAC/65 is a 6502 assembler written by Stephen D. Lawrow for Atari 8-bit 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.

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." 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.[2] 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 .OPT NO LIST0110 ;0120 ; HELLO.M650130 ; ---------0140 ;0150 ; THE HELLO WORLD TEST USING0160 ; THE MAC/65 TOOLKIT0170 ;0180 RUNAD = $02E0 ; RUN ADDRESS0190 EOL = $9B ; END-OF-LINE0200 *= $40000210 ;0220 MSG .BYTE "HELLO WORLD!",EOL0230 ;0240 .INCLUDE #D:KERNEL.M650250 ;0260 START0270 PRINT 0,MSG ; CHANNEL 00280 RTS ; RETURN TO DOS0290 ;0300 *= RUNAD0310 .WORD START0320 .END

ASM,,#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.[3]

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

External links

Notes and References

  1. Web site: OSS Newsletter. archive.org. January 1984.
  2. Web site: Dunion's Debugging Tool. Atari Mania.
  3. Web site: Fine Tooned Engineering. 24 March 2007 .
  4. Web site: ATasm: 6502 cross-assembler. 21 March 2021 .