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.
Table of Contents
- MAC/65 Macro Assembler; Copyright Stephen D. Lawrow; OSS, Inc.; ICD, Inc. & FTe
- Disk versions
- MAC/65 2.00 (1982)
- Disk images
- MAC/65 4.20 (1982)
- Disk images
- MAC/65 4.20 - FTe re-release (1994)
- Disk images
- Manual scans
- Patches from OSS Newsletter
- Cartridge versions
- MAC/65 1.00 (1984)
- Cartridge images
- MAC/65 1.01 (1984)
- Cartridge images
- Source code
- MAC/65 1.02 (1984)
- Cartridge images
- Manual scans
- Images
- MAC/65 ToolKit
- Disk images
- Manual scans
- Later work-in-progress versions
- MAC/65 1.01 (1986)
- Source code
- Cartridge images
- MAC XE 3.4i (1986-02-11)
- Cartridge images
- Assembler 3.4 (1987-12-21)
- Source code
- Cartridge images
- MAC/65 3.6 (1988-01-07)
- Source code
- Cartridge images
- Other resources
- ATR-Images
- Manuals
- Examples - MAC/65 source files
- A call for help
- Special thanks
- References
Disk versions#
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.
Disk images#
- MAC/65 disk - 3 versions with DOS XL 2.30 - 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.
Disk images#
- MAC/65 4.20 disk with DOS 2.5 - contains BUG/65 2.00 and some sample source files:
- MAC/65 4.20 disk with DOS XL 2.30 - contains BUG/65 2.00 and some sample source files
- MAC/65 4.20 disk with SpartaDOS 3.2g:
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.
Disk images#
- MAC/65 4.20 FTe shareware disk - with TURBO-DOS XE 2.1
Manual scans#
- MAC/65 and BUG/65 manual Rev. 1.0
- High quality - size: 61.1 MB; high quality, suitable for printing
- Small size with OCR - size: 9.3 MB; suitable for viewing on screen
- MAC/65 and BUG/65 manual Rev. 1.1
- High quality - size: 63.3 MB ; suitable for printing
- Small size with OCR ; 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:
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)#
Cartridge images#
MAC/65 1.01 (1984)#
Soon after, OSS released version 1.01, with some bugfixes.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.Cartridge images#
Manual scans#
- Mac/65 Manual Rev. 1.2 - original scan ; size: 2 MB
- Mac/65 with DDT manual - good quality ; size: 25.4 MB
- Optimized Systems Software, Inc. - SOFTWARE LICENSE AGREEMENT
Images#
- Photos of Fred Meijer's MAC/65 1.02 cartridge:
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#
- Mac/65 ToolKit manual; 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 below):
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:
- MAC/65 1.01 (1986) - one-chip cartridge: BIN image, CAR image
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.
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.- MAC XE 3.4i with DDT - two-chip cartridge
- MAC XE v3.4i with DDT - one-chip cartridge: BIN image, CAR image
Assembler 3.4 (1987-12-21)#
Source code#
- Assembler 3.4 source code (See A call for help below):
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.- Assembler 3.4 with DDT - two-chip cartridge
- Assembler 3.4 with DDT - one-chip cartridge: BIN image, CAR image
MAC/65 3.6 (1988-01-07)#
Source code#
- MAC/65 3.6. source code (See A call for help below):
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.
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).
- MAC/65 3.6 assembly printout ; 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
- MAC/65 3.6 with DDT - one-chip cartridge: BIN image, CAR image
Other resources#
ATR-Images#
- Floating Point Package A.atr
- Floating Point Package B.atr ; Manual for the Floating Point Package on diskette
- MAC/65 De-Tokenizer from ANALOG ; (C) 1987 ANALOG COMPUTING & CHARLES BACHAND
- MAC/65 Token Converter
- MAC/65 Dissassembler
Manuals#
- Mac/65 Manual-ABBUC version 2006 ; ABBUC version 2006 by Andreas Bertelmann ; size: 176 KB
- Mac/65 Handbook
- Mac/65 Manual by Nick Kennedy (highly recommended!)
- MAC/65 De-Tokenizer from ANALOG
- MAC/65 Bug Sheet TXTPDF
- Bug sheet of 01/07/94 version 1.02 Scan 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)
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:
- 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 - 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
- [#2] "MAC/65 Source Code" post #1, AtariAge forums
- [#3] "OSS-D-Day part 2-MAC/65 >1.02-cart&source now in PD" post #1, AtariAge forums
- [#4] "OSS-D-Day part 2-MAC/65 >1.02-cart&source now in PD" post #33, AtariAge forums
- [#5] "OSS-D-Day part 2-MAC/65 >1.02-cart&source now in PD" post #22, AtariAge forums