Mac65

MAC/65 Macro Assembler; Copyright Stephen D. Lawrow; OSS, Inc.; ICD, Inc. & FTe#

MAC/65 is a 6502 macro assembler written by Stephen D. Lawrow and originally sold by Optimized Systems Software for the Atari 8-bit computers. It was first released on disk in 1982, then later on a 16 KiB bank-switched 'SuperCartridge'.

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

Disk versions#

MAC/65 disk from OSS in 1982

MAC/65 was initially developed as a disk-based program. It replaced an earlier assembler, EASMD, in OSS's product portfolio. The first version, 2.00, was released in 1982.

The MAC/65 disk also included a debugger, BUG/65, developed by McStuff Company. The disk also contained a DOS; initially it was OS/A+, later replaced with DOS XL.

MAC/65 2.00 (1982)#

This is the first disk version, released in 1982.

MAC/65 2.00 start screen

Disk images#

MAC/65 4.20 (1982)#

This is the second disk version, released later in 1982.

MAC/65 4.20 start screen

Disk images#

MAC/65 4.20 - FTe re-release (1994)#

After Fine Tooned Engineering obtained rights to MAC/65 from ICD, they re-released version 4.20 in 1994, as shareware to be used exclusively with the PC Xformer emulator. The disk contained additional documentation files and the program had modified copyright text, but was otherwise identical.

MAC/65 4.20 - FTe re-release start screen

MAC/65 4.20 - FTe re-release info document

Disk images#

Manual scans#

Patches from OSS Newsletter#

MAC/65 4.20 was not without bugs. OSS published a few patches for it in their Summer 1983 newsletter:

Newsletter patches - page 1
Newsletter patches - page 2

Cartridge versions#

After version 4.20, Lawrow rewrote MAC/65 for cartridge medium. It utilized OSS's own "SuperCartridge" - a 16 KB bankswitched cartridge that occupied only 8 KB of Atari memory, and could be disabled or enabled at will. It provided much more comfortable experience than the disk version. MAC/65 cartridges were produced using both two-chip and one-chip variants of the SuperCartridge.

The cartridge version replaced BUG/65 with another debugger - DDT (Dunion's Debugging Tool) developed by James J. Dunion.

MAC/65 1.00 (1984)#

MAC/65 cartridge from 1984 - orange case (earlier)
MAC/65 cartridge from 1984 - orange case (earlier)
MAC/65 cartridge from 1984 - black case (later)
The first cartridge version, numbered 1.00, was released in 1984.

MAC/65 1.00 start screen

Cartridge images#

MAC/65 1.01 (1984)#

Soon after, OSS released version 1.01, with some bugfixes.

MAC/65 1.01 start screen

Cartridge images#

Source code#

In 2017 AtariAge user Alfred published source code for MAC/65 1.01 that he had obtained from ICD back in the day.[2] Dated 1988, the sources are in the format of Mike Gustafson's cross-assembler that was used internally at ICD. When ICD bought the rights to OSS portfolio, they apparently converted the sources from their original MAC/65 syntax to ICD's cross-assembler.

MAC/65 1.02 (1984)#

Version 1.02 followed still in the same year, with yet more bugfixes and a slightly-darkened background colour.

MAC/65 1.02 start screen

Cartridge images#

Manual scans#

Images#

Front view
Back view
Top view
Internal view
Internal view, with removed labels

MAC/65 ToolKit#

OSS offered a companion disk to MAC/65. MAC/65 ToolKit was sold either separately or in bundle with MAC/65, and contained a collection of helpful macros and routines implementing various common operations. The ToolKit supported both disk and cartridge versions of MAC/65.

Disk images#

Manual scans#

Later work-in-progress versions#

Although version 1.02 was the last one published commercially, Stephen Lawrow continued development of MAC/65 - he kept fixing bugs and adding new features, all ultimately unpublished.

In 2016, the AtariWiki team received a set of microfilms from an anonymous source,[3][4] that contained hex printouts of source listings of 3 different versions of MAC/65. Through the painstaking process of digitizing the microfilms, the team managed to recover the original files, and combined them into ATR images provided below.

Note: while source files and binary images in the provided ATR images were restored from microfilms, the other contents of the disk images - e.g. DOS files - were added by the AtariWiki team for convenience.[5]

MAC/65 1.01 (1986)#

Source code#

This version, despite identifying itself as MAC/65 1.01 on the title screen, is actually a later development; comments in the master source file (NEWMAIN) identify this version interchangeably as "MAC XE" and "MAC XL", with the copyright year of 1986. This version is different than the commercially-released v. 1.01 (or any released version, actually), although the actual functional differences are yet to be investigated.

The sources are in MAC/65 format; they may be built using MAC/65 1.02. Two disk drives are needed. The master diskette should be placed in the D1: disk drive, and the slave diskette in D2:. The master source file is D2:NEWMAIN. Change RAM to 0 and EPROM to 1 in D2:NEWMAIN (lines 190-200) and then assemble from RAM to disk, by entering:

LOAD #D2:NEWMAIN
ASM ,,#D2:NEWMAIN.OBJ

The resulting file NEWMAIN.OBJ is a binary DOS file that loads itself into the $3000-$6fff area; these are the 16 KB ROM data for the two-chip variant of the OSS SuperCartridge. To build a ROM image for the one-chip variant, additionally change BANK2 to $D509 and BANK3 to $D501 in D1:EQUATE.INC (lines 180-190).

Cartridge images#

Here are cartridge images created by building the sources.

MAC XE 3.4i (1986-02-11)#

The "slave" source disk of MAC/65 v. 3.6 (described in a later section) contains a file named MACXE.EPR, which is an assembled binary of a version of MAC/65 that identifies itself as "MAC XE version 3.4i" with the date 2/11/86.

MAC XE v.3.4i start screen

This version is identical to the "Assembler v. 3.4" version (described in the next section), the only difference being the text on the start screen. To build a version that is identical to MACXE.EPR, take the sources of Assembler 3.4 and change the lines 40-70 of D1:COPY:

40 MES .BYTE $7D,"MAC XE",TAB,TAB
50 .CBYTE "Version 3.4i"
60 MES1 .BYTE "(c) 1985 Stephen D. Lawrow"
70 .CBYTE " 2/11/86 ",TAB

Cartridge images#

The following cartridge images were created by building the Assembler 3.4 sources after modifying them as described above.

Assembler 3.4 (1987-12-21)#

Source code#

This version of MAC/65 presents itself on the title screen as "Assembler version 3.4" with date "12/21/87". It is currently unknown what are the functional differences between this version and the other ones.

The sources are in MAC/65 format; they may be built using MAC/65 1.02. Two disk drives are needed. The master diskette should be placed in the D1: disk drive, and the slave diskette in D2:. The master source file is D1:MASTER. Change RAM to 0 and EPROM to 1 in D1:MASTER (lines 190-200) and then assemble from RAM to disk, by entering:

LOAD #D1:MASTER
ASM ,,#D1:MASTER.OBJ

The resulting file MASTER.OBJ is a binary DOS file that loads itself into the $3000-$6fff area; these are the 16 KB ROM data for the two-chip variant of the OSS SuperCartridge. To build a ROM image for the one-chip variant, additionally change BANK2 to $D509 and BANK3 to $D501 in D1:EQUATE.INC (lines 180-190).

As noted in the previous section, the resulting file MASTER.OBJ differs from the MAC XL 3.4i binary (found on the MAC/65 v. 3.6 source disks) only in the copyright text.

Cartridge images#

Here are cartridge images created by building the sources.

MAC/65 3.6 (1988-01-07)#

Source code#

This version of MAC/65 presents itself on the title screen as "MAC/65 version 3.6" with date "01/07/88". Judging from the dates in the source code, this is chronologically the last known version of MAC/65. It is currently unknown what are the functional differences between this version and the other ones.

MAC/65 v. 3.6 start screen

The "slave" source disk also contains a file named MACXE.EPR, which is an assembled binary of MAC XE 3.4i (described in an earlier section).

The sources are in MAC/65 format; they may be built using MAC/65 1.02. Two disk drives are needed. The master diskette should be placed in the D1: disk drive, and the slave diskette in D2:. The master source file is D1:MASTER. Change RAM to 0 and EPROM to 1 in D1:MASTER (lines 190-200) and then assemble from RAM to disk, by entering:

LOAD #D1:MASTER
ASM ,,#D1:MASTER.OBJ

The resulting file MASTER.OBJ is a binary DOS file that loads itself into the $3000-$6fff area; these are the 16 KB ROM data for the two-chip variant of the OSS SuperCartridge. To build a ROM image for the one-chip variant, additionally change BANK2 to $D509 and BANK3 to $D501 in D1:EQUATE.INC (lines 180-190).

Cartridge images#

Here are cartridge images created by building the sources.

Other resources#

ATR-Images#

Manuals#

Examples - MAC/65 source files#

MAC/65-Dissassembler start menu

A call for help#

The source files of the work-in-progress versions of MAC/65 have not yet been analysed. It is unknown what are the new features introduced in each of the following versions:

Comparing source codes of these versions to each other, and to the source code of the released version 1.01, would allow to discover the new features and document them. Yotta-thanks to all who help us here.

Special thanks#

The AtariWiki team would like to thank the following individuals for their invaluable contributions to preservation of the history of MAC/65:

References#