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