Atari Assembler Editor

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Atari Assembler Editor
Original author(s) Kathleen O'Brien
Developer(s) Shepardson Microsystems
Discontinued 1.0 / 1981; 33 years ago (1981)
Platform Atari 400/800/XL/XE
Size 8KB
Type Assembler
License Copyright © 1981 Atari Corp. Proprietary software

The Atari Assembler Editor cartridge was a program used to edit, compile and debug assembly language programs for the Atari 8-bit computers. It was programmed by Kathleen O'Brien of Shepardson Microsystems, Inc.

Details[edit]

The program was a two-pass 6502 assembler, in an 8KB cartridge. It was the first commercially available assembler for the Atari 8-bit computers.

Edit[edit]

Upon bootup, the cartridge started up in EDIT mode. The programmer would enter assembly source into the editor using the full-screen features on the Atari. All source had to be prefixed with a line number, or it would be interpreted as a command. Due to limited cartridge space, errors were reported with error codes.

Finally, the code was assembled by typing in the ASM command.

Debug[edit]

The Atari Assembler Editor featured a debugger. This mode was entered by typing in the command BUG at the prompt. The debugger allowed the viewing and changing of registers and memory locations, perform a trace, single-step and disassembly.

The programmer went back to the EDIT mode by typing X at the command prompt.

Limitations[edit]

Disadvantages of Atari Assembler Editor were speed, bugs, lack of macros and awkward conditional assembly features. Unfortunately, the program used the Atari's floating point routines for arithmetic calculations, greatly impacting performance. The debugger was really a monitor, limited in power and flexibility. Nonetheless, it was the only available Atari assembler for many programmers.

Example Code[edit]

The following is example code for Hello World! written in Atari assembly language:

10 ; HELLO.ASM
20 ; ---------
30 ;
40 ; THIS ATARI ASSEMBLY PROGRAM
50 ; WILL PRINT THE "HELLO WORLD"
60 ; MESSAGE TO THE SCREEN
70 ;
0100 ; CIO EQUATES
0110 ; ===========
0120     *=  $0340   ;START OF IOCB
0130 IOCB
0140 ;
0150 ICHID *= *+1    ;DEVICE HANDLER
0160 ICDNO *= *+1    ;DEVICE NUMBER
0170 ICCOM *= *+1    ;I/O COMMAND
0180 ICSTA *= *+1    ;I/O STATUS
0190 ICBAL *= *+1    ;LSB BUFFER ADDR
0200 ICBAH *= *+1    ;MSB BUFFER ADDR
0210 ICPTL *= *+1    ;LSB PUT ROUTINE
0220 ICPTH *= *+1    ;MSB PUT ROUTINE
0230 ICBLL *= *+1    ;LSB BUFFER LEN
0240 ICBLH *= *+1    ;MSB BUFFER LEN
0250 ICAX1 *= *+1    ;AUX BYTE 1
0260 ICAX2 *= *+1    ;AUX BYTE 1
0270 ;
0280 GETREC = 5      ;GET TEXT RECORD
0290 PUTREC = 9      ;PUT TEXT RECORD
0300 ;
0310 CIOV =  $E456   ;CIO ENTRY VECTOR
0320 RUNAD = $02E0   ;RUN ADDRESS
0330 EOL   = $9B     ;END OF LINE
0340 ;
0350 ; SETUP FOR CIO
0360 ; -------------
0370     *= $0600
0380 START LDX #0    ;IOCB 0
0390     LDA #PUTREC ;WANT OUTPUT
0400     STA ICCOM,X ;ISSUE CMD
0410     LDA #MSG&255 ;LOW BYTE OF MSG
0420     STA ICBAL,X ; INTO ICBAL
0430     LDA #MSG/256 ;HIGH BYTE
0440     STA ICBAH,X ; INTO ICBAH
0450     LDA #0      ;LENGTH OF MSG
0460     STA ICBLH,X ; HIGH BYTE
0470     LDA #$FF    ;255 CHAR LENGTH
0480     STA ICBLL,X ; LOW BYTE
0490 ;
0500 ; CALL CIO TO PRINT
0510 ; -----------------
0520     JSR CIOV    ;CALL CIO
0530     RTS         ;EXIT TO DOS
0540 ;
0550 ; OUR MESSAGE
0560 ; -----------
0570 MSG .BYTE "HELLO WORLD!",EOL
0580 ;
0590 ; INIT RUN ADDRESS
0600 ; ----------------
0610     *=  RUNAD
0620     .WORD START
0630     .END

AMAC[edit]

The Atari Macro Assembler (AMAC) was offered by Atari to provide better performance and more powerful features, such as macros. AMAC was disk-based, and it did not include an editor or debugger. The program was copy-protected. Atari positioned AMAC as a tool for professional development and the Assembler Editor for small projects and learning.

Optimized Systems Software purchased the original rights to the Atari Assembler Editor from Shepardson Microsystems and released improved versions, including EASMD. The Assembler Editor continued to be available from Atari.

References[edit]

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

External links[edit]