!!!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|https://en.wikipedia.org/wiki/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.

[{TableOfContents}]

!!!Disk versions

%%(float:right)[{Image src='MAC65-Disk.jpg' width=200 caption='MAC/65 disk from OSS in 1982' link='attach/Mac65/MAC65-Disk.jpg'}]%%

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|BUG65], developed by McStuff Company. The disk also contained a DOS; initially it was [OS/A+|OSS OS-A+], later replaced with [DOS XL|OSS DOS XL].

!!MAC/65 2.00 (1982)

This is the first disk version, released in 1982.

[{Image src='MAC-65-2.0.jpg' width=372 caption='MAC/65 2.00 start screen'}]

!Disk images
* [MAC/65 disk - 3 versions with DOS XL 2.30|MAC65_2.00_and_4.20_with_Bug65_2.0_and_DOS_XL_2.30.atr] - contains MAC/65 2.00, 4.20 and FTe 4.20, and three versions of BUG/65

!!MAC/65 4.20 (1982)

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

[{Image src='MAC65_4.20.jpg' width=367 caption='MAC/65 4.20 start screen'}]

!Disk images
* MAC/65 4.20 disk with DOS 2.5 - contains BUG/65 2.00 and some sample source files:
** [Side A|Mac 65 4.2 A.atr]
** [Side B|Mac 65 4.2 B.atr]
* [MAC/65 4.20 disk with DOS XL 2.30|Mac_65_4.20_with_Bug-65_and_DOS_XL_2.30.atr] - contains BUG/65 2.00 and some sample source files
* MAC/65 4.20 disk with SpartaDOS 3.2g:
** [180K disk (SS/DD)|Mac-65_SpartaDOS_3.2g_180K.atr]
** [360K disk (DS/DD)|Mac-65_SpartaDOS_3.2g_360K.atr]
** [720K disk (DS/QD)|Mac-65_SpartaDOS_3.2g_720K.atr][1]

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

[{Image src='MAC-65_Shareware.jpg' width=373 caption='MAC/65 4.20 - FTe re-release start screen'}]

[{Image src='MAC-65_Shareware-Info.jpg' width=406 caption='MAC/65 4.20 - FTe re-release info document' }]

!Disk images
* [MAC/65 4.20 FTe shareware disk|MAC-65_Shareware.atr] - with TURBO-DOS XE 2.1

!!Manual scans
* MAC/65 and BUG/65 manual Rev. 1.0
** [High quality|http://data.atariwiki.org/DOC/MAC-65_and_BUG-65_Rev._1.0-OSS-Print.pdf] - size: 61.1 MB; high quality, suitable for printing
** [Small size with OCR|http://data.atariwiki.org/DOC/MAC-65_and_BUG-65_Rev._1.0-OSS-OCR.pdf] - size: 9.3 MB; suitable for viewing on screen
* MAC/65 and BUG/65 manual Rev. 1.1
** [High quality|http://data.atariwiki.org/DOC/MAC-65_and_BUG-65_Rev._1.1-OSS-Print.pdf] - size: 63.3 MB ; suitable for printing
** [Small size with OCR|http://data.atariwiki.org/DOC/MAC-65_and_BUG-65_Rev._1.1-OSS-OCR.pdf] ; size: 4.1 MB ; suitable for viewing on screen

!!Patches from OSS Newsletter

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

%%(float:left)[{Image src='MAC-65-patches-Summer-1983-1.jpg' width=200 caption='Newsletter patches - page 1' link='attach/Mac65/MAC-65-patches-Summer-1983-1.jpg'}]%%
%%(float:left)[{Image src='MAC-65-patches-Summer-1983-2.jpg' width=200 caption='Newsletter patches - page 2' link='attach/Mac65/MAC-65-patches-Summer-1983-2.jpg'}]%%

!!!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)
%%(float:right)[{Image src='Cart.jpg' height=250 caption='MAC/65 cartridge from 1984 - orange case (earlier)' link='attach/Mac65/Cart.jpg'}]
[{Image src='Mac-65 orange 1.jpg' height=250 caption='MAC/65 cartridge from 1984 - orange case (earlier)' link='attach/Mac65/Mac-65 orange 1.jpg'}]
[{Image src='Mac-65_y-b.jpg' height=250 caption='MAC/65 cartridge from 1984 - black case (later)' link='attach/Mac65/Mac-65_y-b.jpg'}]%%
The first cartridge version, numbered 1.00, was released in 1984.

[{Image src='MAC-65-Version 1.00.gif' width=384 caption='MAC/65 1.00 start screen'}]

!Cartridge images
* MAC/65 1.00 with DDT - two-chip cartridge (043M bank order): [BIN image|MAC-65-Version 1.00.rom], [CAR image|MAC-65-Version 1.00.car]

!!MAC/65 1.01 (1984)
Soon after, OSS released version 1.01, with some bugfixes.

[{Image src='MAC-65-Version 1.01.gif' width=384 caption='MAC/65 1.01 start screen'}]

!Cartridge images
*  MAC/65 1.01 with DDT - one-chip cartridge (M091 bank order): [BIN image|MAC 65 1.01.rom], [CAR image|MAC 65 1.01 with DDT.car]

!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.01 sources from ICD 1988|Mac65.zip]
* [Helper package to assemble the ICD sources using ca65|mac65-ca65.zip]

!!MAC/65 1.02 (1984)
Version 1.02 followed still in the same year, with yet more bugfixes and a slightly-darkened background colour.

[{Image src='MAC-65-Version 1.02.gif' width=384 caption='MAC/65 1.02 start screen'}]

!Cartridge images
* MAC/65 1.02 with DDT - two-chip cartridge (034M bank order): [BIN image|MAC-65-Version 1.02.rom], [CAR image|MAC-65-Version 1.02.car]

!!Manual scans
* [Mac/65 Manual Rev. 1.2 - original scan|Mac-65 Rev. 1.2 Manual.pdf] ; size: 2 MB
* [Mac/65 with DDT manual - good quality|Mac-65 with DDT manual (p. 108)-Rev 1.2.pdf] ; size: 25.4 MB
* [Optimized Systems Software, Inc. - SOFTWARE LICENSE AGREEMENT|Optimized_Systems_Software_Software_License_Agreement.pdf]

!!Images

* Photos of Fred Meijer's MAC/65 1.02 cartridge:
%%(float:left)[{Image src='mac65_102_1.jpg' height=250 caption='Front view' link='attach/Mac65/mac65_102_1.jpg'}]%%
%%(float:left)[{Image src='mac65_102_2.jpg' height=250 caption='Back view' link='attach/Mac65/mac65_102_2.jpg'}]%%
%%(float:left)[{Image src='mac65_102_3.jpg' width=200 caption='Top view' link='attach/Mac65/mac65_102_3.jpg'}]%%
%%(float:left)[{Image src='mac65_102_4.jpg' height=250 caption='Internal view' link='attach/Mac65/mac65_102_4.jpg'}]%%
%%(float:left)[{Image src='mac65_102_5.jpg' height=250 caption='Internal view, with removed labels' link='attach/Mac65/mac65_102_5.jpg'}]%%
\\

!!!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
* [MAC/65 ToolKit|Mac_65_Toolkit.atr]

!!Manual scans
* [Mac/65 ToolKit manual|MAC-65_ToolKit_Manual.pdf]; size: 7 MB

!!!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
* MAC/65 1.01 (1986) source code (See [A call for help|Mac65#ACallForHelp] below):
** [Disk 1 (master)|mac-xl-master-icd.atr]
** [Disk 2 (slave)|mac-xl-slave-icd.atr]

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/65 1.01 (1986) - two-chip cartridge:
** 043M bank order: [BIN image|MAC-65_v1.01_(1984)(OSS)(Lawrow,_Stephen_D.)(US)(043M).bin], [CAR image|MAC-65_v1.01_(1984)(OSS)(Lawrow,_Stephen_D.)(US)(043M).car]
** 034M bank order: [BIN image|MAC-65_v1.01_(1984)(OSS)(Lawrow,_Stephen_D.)(US)(034M).bin], [CAR image|MAC-65_v1.01_(1984)(OSS)(Lawrow,_Stephen_D.)(US)(034M).car]
* MAC/65 1.01 (1986) - one-chip cartridge: [BIN image|MAC-65_v1.01_(1984)(OSS)(Lawrow,_Stephen_D.)(US)(M091).bin], [CAR image|MAC-65_v1.01_(1984)(OSS)(Lawrow,_Stephen_D.)(US)(M091).car]

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

The "slave" source disk of MAC/65 v. 3.6 (described in a [later section|Mac65#MAC653.619880107]) 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.

[{Image src='MAC_XE_3.4i.jpg' width=440 caption='MAC XE v.3.4i start screen'}]

This version is identical to the "Assembler v. 3.4" version (described in the [next section|Mac65#Assembler3.419871221]), 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.

* MAC XE 3.4i with DDT - two-chip cartridge
** 043M bank order: [BIN image|MAC_XE_v3.4i_(1986-02-11)(Lawrow,_Stephen_D.)(US)(043M).bin], [CAR image|MAC_XE_v3.4i_(1986-02-11)(Lawrow,_Stephen_D.)(US)(043M).car]
** 034M bank order: [BIN image|MAC_XE_v3.4i_(1986-02-11)(Lawrow,_Stephen_D.)(US)(034M).bin], [CAR image|MAC_XE_v3.4i_with_DDT-034M.car]
* MAC XE v3.4i with DDT - one-chip cartridge: [BIN image|MAC_XE_v3.4i_(1986-02-11)(Lawrow,_Stephen_D.)(US)(M091).bin], [CAR image|MAC_XE_v3.4i_(1986-02-11)(Lawrow,_Stephen_D.)(US)(M091).car]

!! Assembler 3.4 (1987-12-21)

!Source code
* Assembler 3.4 source code (See [A call for help|Mac65#ACallForHelp] below):
** [Disk 1 (master)|mac-xl-1.atr]
** [Disk 2(slave)|mac-xl-2.atr]

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|Mac65#MACXE3.4i19860211], 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.

* Assembler 3.4 with DDT - two-chip cartridge
** 043M bank order:  [BIN image|Assembler_v3.4_(1987-12-21)(Lawrow,_Stephen_D.)(US)(043M).bin], [CAR image|Assembler_v3.4_(1987-12-21)(Lawrow,_Stephen_D.)(US)(043M).car]
** 034M bank order: [BIN image|Assembler_v3.4_(1987-12-21)(Lawrow,_Stephen_D.)(US)(034M).bin], [CAR image|Assembler_v3.4_(1987-12-21)(Lawrow,_Stephen_D.)(US)(034M).car]
* Assembler 3.4 with DDT - one-chip cartridge: [BIN image|Assembler_v3.4_(1987-12-21)(Lawrow,_Stephen_D.)(US)(M091).bin], [CAR image|Assembler_v3.4_(1987-12-21)(Lawrow,_Stephen_D.)(US)(M091).car]

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

!Source code
* MAC/65 3.6. source code (See [A call for help|Mac65#ACallForHelp] below):
** [Disk 1 (master)|mac-xl-master-3.6-1988.atr]
** [Disk 2 (slave)|mac-xl-slave-3.6-1988.atr]

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.

[{Image src='MAC-65_3.6.jpg' width=442 caption='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|Mac65#MACXE3.4i19860211]).

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

* [MAC/65 3.6 assembly printout|MAC_XL_CARTRIDGE_©_1985_Stephen_D._Lawrow.txt] ; size: 660 KB ; generated while assembling the sources. Please check to build a new manual with the new function, thank you

!Cartridge images
Here are cartridge images created by building the sources.

* MAC/65 3.6 with DDT - two-chip cartridge
** 043M bank order: [BIN image|MAC-65_v3.6_(1988-01-07)(Lawrow,_Stephen_D.)(US)(043M).bin], [CAR image|MAC-65_v3.6_(1988-01-07)(Lawrow,_Stephen_D.)(US)(043M).car]
** 034M bank order: [BIN image|MAC-65_v3.6_(1988-01-07)(Lawrow,_Stephen_D.)(US)(034M).bin], [CAR image|MAC-65_3.6_with_DDT-034M.car]
*** a hack with black-on-white letters: [CAR image|MAC-65_3.6_with_DDT_S-W-034M.CAR]
* MAC/65 3.6 with DDT - one-chip cartridge: [BIN image|MAC-65_v3.6_(1988-01-07)(Lawrow,_Stephen_D.)(US)(M091).bin], [CAR image|MAC-65_v3.6_(1988-01-07)(Lawrow,_Stephen_D.)(US)(M091).car]

!!!Other resources

!!ATR-Images
* [Floating Point Package A.atr|Floating_Point_Package_A.atr]
* [Floating Point Package B.atr|Floating_Point_Package_B.atr] ; Manual for the Floating Point Package on diskette
* [MAC/65 De-Tokenizer from ANALOG|M65-Token-Converter.atr] ; [(C) 1987 ANALOG COMPUTING & CHARLES BACHAND|http://joyfulcoder.net/atari/analog/?f=198805p27.html]
* [MAC/65 Token Converter|MAC-65 Token Converter.atr]
* [MAC/65 Dissassembler|Mac 65 Dissassembler.atr]

!!Manuals
* [Mac/65 Manual-ABBUC version 2006|MAC65 Assembler.pdf] ; ABBUC version 2006 by Andreas Bertelmann ; size: 176 KB
* [Mac/65 Handbook|Mac65Handbook]
* [Mac/65 Manual|http://www.mixinc.net/atari/mac65.htm] by Nick Kennedy (highly recommended!)
* [MAC/65 De-Tokenizer from ANALOG|MAC-65 Token Converter.pdf]
* MAC/65 Bug Sheet [TXT|MAC-65_BUG_SHEET_1.txt][PDF|MAC65 BUG SHEET 1.pdf]
* Bug sheet of 01/07/94 version 1.02 [Scan|mac_65_bug_sheet.pdf] [PDF|MAC65 BUG SHEET 01-07-1997.pdf]

!!Examples - MAC/65 source files
* [Floating Point ROM Library]
* [Copy OS ROM to RAM]
* [CX85 Keyboard Handler]
* [MOUSE ROUTINE IN AN INTERRUPT]
* [RAF Commander] - a Norton Commander Clone for the 8bit Atari
* [Sweet16Mac65] a virtual 16bit machine for the 8bit ATARI
* [MAC/65 Text Generator v 1.0 (Basic)|MAC-65_Text_Generator_v1.0_(1988)(Amte)(-)[BASIC).atr]

[{Image src='Mac 65 Dissassembler.jpg' width=497 caption='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:

* [MAC/65 1.01 (1986)|Mac65#MAC651.011986]
* [Assembler 3.4|Mac65#Assembler3.41987-12-21]
* [MAC/65 3.6|Mac65#MAC653.61988-01-07]

Comparing source codes of these versions to each other, and to the [source code of the released version 1.01|Mac65#SourceCode], 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:

* Alfred from AtariAge - Giga-thanks for releasing the ICD sources of MAC/65 1.01[2]; we miss you!
* An anonymous contributor - thank you for providing microfilms with the source codes of WIP version of MAC/65 1.01 (1986), Assembler 3.4, and MAC/65 3.6.
* Atarimania - thanks for providing the scans of the Optimized Systems Software Software License Agreement.
* Allan Bushman - Thank you so much for scanning and saving the Rev. 1.0 and 1.1 manuals for MAC/65 disk versions. Greatly appreciated! :-)
* A good soul from AtariAge - for creating ROM images of MAC XE 3.4i and MAC/65 3.6 two-chip cartridge (034M bank order); thank you so much good soul! :-)))
* A good soul from Germany - for creating the MAC/65 3.6 one-chip cartridge images; thank you so much good soul! :-)))
* Tomasz 'Kr0tki' Krasuski - for assembling source codes and creating cartridge images of MAC/65 1.01 (1986), MAC XE 3.4i, Assembler 3.4, and MAC/65 3.6, we owe you so much. :-)))
* Fred Meijer from the [Atarimuseum in the Netherlands|http://www.atarimuseum.nl] - Thank you so much for providing photos of an ultra rare MAC/65 1.02 cartridge.
* Wade Ripkowski - thank you for presenting the instructions to prepare a 720K SpartaDOS disk with MAC/65[1]; great work Wade, thank you very much! :-)

!!!References
* [#1] Wade Ripkowski, ["MAC/65 with SpartaDOS|https://unfinishedbitness.info/2014/04/19/mac65-with-spartados/]
* [#2] ["MAC/65 Source Code" post #1, AtariAge forums|https://atariage.com/forums/topic/270944-mac65-source-code/]
* [#3] ["OSS-D-Day part 2-MAC/65 >1.02-cart&source now in PD" post #1, AtariAge forums|https://atariage.com/forums/topic/257025-oss-d-day-part-2-mac65-102-cartsource-now-in-pd/]
* [#4] ["OSS-D-Day part 2-MAC/65 >1.02-cart&source now in PD" post #33, AtariAge forums|https://atariage.com/forums/topic/257025-oss-d-day-part-2-mac65-102-cartsource-now-in-pd/?do=findComment&comment=3595454]
* [#5] ["OSS-D-Day part 2-MAC/65 >1.02-cart&source now in PD" post #22, AtariAge forums|https://atariage.com/forums/topic/257025-oss-d-day-part-2-mac65-102-cartsource-now-in-pd/?do=findComment&comment=3594656]