MAC/65

MAC/65

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.

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.

Example Code

The following is example code for Hello World! written in "MAC/65":

10 ; HELLO.ASM20 ;30 ; THIS SIMPLE MAC/65 DEMO WILL40 ; PRINT THE "HELLO WORLD"50 ; MESSAGE TO THE SCREEN60 ;0100 ; = CIO EQUATES =

0110 *= $0340 ;START OF IOCB0120 IOCB0130 ;0140 ICHID *= *+1 ;DEVICE HANDLER0150 ICDNO *= *+1 ;DEVICE NUMBER0160 ICCOM *= *+1 ;I/O COMMAND0170 ICSTA *= *+1 ;I/O STATUS0180 ICBAL *= *+1 ;LSB BUFFER ADDR0190 ICBAH *= *+1 ;MSB BUFFER ADDR0200 ICPTL *= *+1 ;LSB PUT ROUTINE0210 ICPTH *= *+1 ;MSB PUT ROUTINE0220 ICBLL *= *+1 ;LSB BUFFER LEN0230 ICBLH *= *+1 ;MSB BUFFER LEN0240 ICAX1 *= *+1 ;AUX BYTE 10250 ICAX2 *= *+1 ;AUX BYTE 10260 ;0270 GETREC = 50280 PUTREC = 90290 ;0300 CIOV = $E4560310 ;0320 RUNAD = $02E0 ;RUN ADDRESS0330 ;0340 ; = SETUP FOR CIO =

0350 ;0360 *= $06000370 START LDX #0 ;IOCB 00380 LDA #PUTREC ;WANT OUTPUT0390 STA ICCOM,X ;ISSUE CMD0400 LDA #MSG&255 ;LOW BYTE OF MSG0410 STA ICBAL,X ; INTO ICBAL0420 LDA #MSG/256 ;HIGH BYTE0430 STA ICBAH,X ; INTO ICBAH0440 LDA #0 ;LENGTH OF MSG0450 STA ICBLH,X ; HIGH BYTE0460 LDA #$FF ;255 CHAR LENGTH0470 STA ICBLL,X ; LOW BYTE0480 ;0490 ; = CALL CIO TO PRINT =

0500 ;0510 JSR CIOV ;CALL CIO0520 RTS ;EXIT0530 ;0540 ; = OUR MESSAGE =

0550 ;0560 MSG .BYTE "HELLO WORLD!",$9B0570 ;0580 ; = INIT RUN ADDRESS =

0590 *= RUNAD0600 .WORD START

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.

Add-ons

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.

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.

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

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

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. [http://www.atariarchives.org/roots/]
* Chasin, Mark (1984). "Assembly Language Programming for the Atari Computers". Byte Books, McGraw-Hill Paperbacks. ISBN 0-07-010679-7. [http://www.atariarchives.org/alp/]
* Chadwick, Ian (1985). "Mapping the Atari Revised Edition". COMPUTE! Publications, Inc. ISBN 0-87455-004-1. [http://www.atariarchives.org/mapping/]
* 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. [http://www.atariarchives.org/mlb/]
* Mansfield, Richard (1984). "The Second Book of Machine Language". COMPUTE! Publications, Inc. ISBN 0-942386-53-1. [http://www.atariarchives.org/2bml/]
* 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"

External links

* [http://retrobits.net retrobits.net] Dan's OSS Supercart Page
* [http://www.atariage.com/software_page.html?SoftwareLabelID=2674 AtariAge - Atari 800/XL/XE] MAC/65 (OSS)
* [http://www.8bitclassics.com/product_info.php?products_id=525 8-bit Classics] - MAC/65 Assembler Cartridge (manual)
* [http://www.atarimagazines.com/compute/issue43/177_1_REVIEWS_MAC_65.php Compute! Magazine] - Review: MAC/65, Issue 43, Dec 1983
* [http://www.atarimagazines.com/v2n7/nightmare.html Antic Vol. 2, No. 7 - Oct 1983] Nightmare Mission - MAC's the one for the job (Atari assemblers review)
* [http://www.atarimagazines.com/v4n1/product_reviews.html Antic Vol. 4, No. 1 - May 1985] Product Review - MAC/65 Toolkit
* [http://www.ifarchive.org/if-archive/infocom/info/moriarty-online.txt INFOCOM Online Transcript] Interview with Brian Moriarty, talks briefly about MAC/65
* [http://atari.ksiders.tzo.com/a8programming.html Programming tools] Ken's Atari 8-bit Zone


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Mac OS X — Parte de la familia BSD[1] [2] [3] …   Wikipedia Español

  • Mac-OS X — Bildschirmfoto Logo von Mac OS X Basisdaten Entwickler …   Deutsch Wikipedia

  • Mac OS 10 — Mac OS X Bildschirmfoto Logo von Mac OS X Basisdaten Entwickler …   Deutsch Wikipedia

  • Mac OS X — Basisdaten Entwickler Apple …   Deutsch Wikipedia

  • Mac OS X 10.0 — Mac OS X Mac OS X Famille BSD Type de noyau …   Wikipédia en Français

  • Mac OS X 10.1 — Mac OS X Mac OS X Famille BSD Type de noyau …   Wikipédia en Français

  • Mac Os X — Famille BSD Type de noyau …   Wikipédia en Français

  • Mac os x — Famille BSD Type de noyau …   Wikipédia en Français

  • Mac OS — (del inglés Macintosh Operating System, en español Sistema Operativo de Macintosh) es el nombre del sistema operativo creado por Apple para su línea de computadoras Macintosh. Es conocido por haber sido el primer sistema dirigido al gran público… …   Wikipedia Español

  • Mac os 9 — Sorti fin 1999, Mac OS 9 est la dernière révision majeure du premier système d exploitation des ordinateurs Apple Macintosh. Sommaire 1 Description 2 Principales nouveautés 3 Historique des mises à jour …   Wikipédia en Français

  • Mac OS — (pour Macintosh Operating System) est le nom du système d exploitation d Apple pour ses ordinateurs Macintosh. Il est surtout connu pour être un des premiers systèmes grand public ayant une interface graphique, inspiré de Xerox Alto, et basée sur …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”