MAC/65
From Wikipedia, the free encyclopedia
MAC/65 | |
Developer: | Optimized Systems Software |
Latest Release: | 4.20 / 1994 |
Release date: | 1982 |
Platform: | Atari 400/800/XL/XE |
Genre: | Assembler |
Media: | floppy disk, cartridge |
License: | Copyright © 1994 Fine Tooned Engineering |
MAC/65 was an assembler produced by Optimized Systems Software for the Atari 8-bit family of microcomputers. It was a direct descendant of OSS's EASMD. Much like the Atari Assembler Editor cartridge, MAC/65 combined a line editor, assembler, and debugger into a single package. MAC/65 was notable for being significantly faster than the assemblers produced by Atari. It was used to write numerous commercial games and program listings for magazines such as ANALOG Computing.
MAC/65 was written by Stephen D. Lawrow and was first released on disk in 1982. A cartridge version came later.
Contents |
[edit] Features
MAC/65 featured two-pass compiling, with a third-pass for macros. Object code was generated in memory only when explicitly declared, unlike the Atari Assembler Editor cartridge. Source was either MAC/65 token format or text files. Editing source required line numbers otherwise MAC/65 would treat lines as commands. MAC/65 also did syntax checking in EDIT mode. MAC/65 converted all strings to uppercase unless they were embedded with double quotes.
Much like Atari BASIC, source code in MAC/65 was tokenized as it was entered. This resulted in smaller data sizes (important when both the source and object code were in memory) and shorter assembly times.
Unlike the Atari Assembler Editor, MAC/65 provided true macro processing and conditional assembly.
The cartridge version added 65C02 op-code support as well as Dunion's Debugging Tool (DDT) by Jim Dunion, of APX fame. Dunion later wrote EXDDT (EXtended DDT) for ANTIC Software.
[edit] Example Code
The following is example code for Hello World! written in MAC/65:
10 ; HELLO.ASM 20 ; 30 ; THIS SIMPLE MAC/65 DEMO WILL 40 ; PRINT THE "HELLO WORLD" 50 ; MESSAGE TO THE SCREEN 60 ; 0100 ; === CIO EQUATES === 0110 *= $0340 ;START OF IOCB 0120 IOCB 0130 ; 0140 ICHID *= *+1 ;DEVICE HANDLER 0150 ICDNO *= *+1 ;DEVICE NUMBER 0160 ICCOM *= *+1 ;I/O COMMAND 0170 ICSTA *= *+1 ;I/O STATUS 0180 ICBAL *= *+1 ;LSB BUFFER ADDR 0190 ICBAH *= *+1 ;MSB BUFFER ADDR 0200 ICPTL *= *+1 ;LSB PUT ROUTINE 0210 ICPTH *= *+1 ;MSB PUT ROUTINE 0220 ICBLL *= *+1 ;LSB BUFFER LEN 0230 ICBLH *= *+1 ;MSB BUFFER LEN 0240 ICAX1 *= *+1 ;AUX BYTE 1 0250 ICAX2 *= *+1 ;AUX BYTE 1 0260 ; 0270 GETREC = 5 0280 PUTREC = 9 0290 ; 0300 CIOV = $E456 0310 ; 0320 RUNAD = $02E0 ;RUN ADDRESS 0330 ; 0340 ; === SETUP FOR CIO === 0350 ; 0360 *= $0600 0370 START LDX #0 ;IOCB 0 0380 LDA #PUTREC ;WANT OUTPUT 0390 STA ICCOM,X ;ISSUE CMD 0400 LDA #MSG&255 ;LOW BYTE OF MSG 0410 STA ICBAL,X ; INTO ICBAL 0420 LDA #MSG/256 ;HIGH BYTE 0430 STA ICBAH,X ; INTO ICBAH 0440 LDA #0 ;LENGTH OF MSG 0450 STA ICBLH,X ; HIGH BYTE 0460 LDA #$FF ;255 CHAR LENGTH 0470 STA ICBLL,X ; LOW BYTE 0480 ; 0490 ; === CALL CIO TO PRINT === 0500 ; 0510 JSR CIOV ;CALL CIO 0520 RTS ;EXIT 0530 ; 0540 ; === OUR MESSAGE === 0550 ; 0560 MSG .BYTE "HELLO WORLD!",$9B 0570 ; 0580 ; === INIT RUN ADDRESS === 0590 *= RUNAD 0600 .WORD START
[edit] Bugs
There is a bug in the MAC/65 cartridge which gives an error on a JSR
or JMP
to a zero page address. A temporary fix would be to use macros in the source code. As examples, try these:
1000 .MACRO @JSR 1010 .BYTE $20 1020 .WORD %1 1030 .ENDM
1040 .MACRO @JMP 1050 .BYTE $4C 1060 .WORD %1 1070 .ENDM
To invoke the macro, type @JSR
(or @JMP
) in place of the JSR
or JMP
instruction, and the proper hex code will be generated.
[edit] Add-ons
[edit] MAC/65 Toolkit
This was a disk filled with source code and examples for use with the MAC/65 assembler. Available on disk, required 40K of memory.
[edit] DDT
Dunion's Debugging Tool (DDT) was built into the cartridge version of MAC/65. Based on the original Atari Program Exchange software, DDT provided monitoring of program code while keeping as much of the display screen intact. The version that was supplied with MAC/65 was a condensed version of the APX original.
[edit] Trivia
- According to Matthew J. Ratcliff of ANALOG Computing, MAC/65 was used by C64 programmers to assemble C64 projects on Atari computers.
- According to Stephen D. Lawrow, MAC/65 was used to compile not only itself, but BASIC XL and BASIC XE.
[edit] Aftermath
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 the rights to ICD's 8-bit products, including MAC/65.
[edit] References
- A reference manual for MAC/65 by OSS, Rev. 1.2. 1983
- Atari Home Computer System - Technical Reference Notes. Atari, Inc. C016555 REV A.
- Andrews, Mark (1984). Atari Roots: A Guide to Atari Assembly Language. DATAMOST, Inc. ISBN 0-88190-171-7. [1]
- Chasin, Mark (1984). Assembly Language Programming for the Atari Computers. Byte Books, McGraw-Hill Paperbacks. ISBN 0-07-010679-7. [2]
- Chadwick, Ian (1985). Mapping the Atari Revised Edition. COMPUTE! Publications, Inc. ISBN 0-87455-004-1. [3]
- Leventhal, Lance A. (1986). 6502 Assembly Language Programming 2nd Edition. Osborne/McGraw-Hill. ISBN 0-07-881216-X.
- Leventhal, Lance A. (1982). 6502 Assembly Language Subroutines. Osborne/McGraw-Hill. ISBN 0-931988-59-4.
- Mansfield, Richard (1983). Machine Language for Beginners. COMPUTE! Publications, Inc. ISBN 0-942386-11-6. [4]
- Mansfield, Richard (1984). The Second Book of Machine Language. COMPUTE! Publications, Inc. ISBN 0-942386-53-1. [5]
- Zaks, Rodnay (1983). Programming the 6502 (Fourth Edition). Sybex, Inc. ISBN 0-89588-135-7.
- Zaks, Rodnay (1982). Advanced 6502 Programming. Sybex, Inc. ISBN 0-89588-089-X.
- OSS Newsletter - Spring 1984
- OSS Newsletter - October 1984
[edit] External links
- retrobits.net Dan's OSS Supercart Page
- AtariAge - Atari 800/XL/XE MAC/65 (OSS)
- 8-bit Classics - MAC/65 Assembler Cartridge (manual)
- Compute! Magazine - Review: MAC/65, Issue 43, Dec 1983
- Antic Vol. 2, No. 7 - Oct 1983 Nightmare Mission - MAC's the one for the job (Atari assemblers review)
- Antic Vol. 4, No. 1 - May 1985 Product Review - MAC/65 Toolkit
- INFOCOM Online Transcript Interview with Brian Moriarty, talks briefly about MAC/65
- Programming tools Ken's Atari 8-bit Zone