Atari Assembler Editor
Original author(s) | Kathleen O'Brien |
---|---|
Developer(s) | Shepardson Microsystems |
Stable release | 1.0 / 1981 |
Platform | Atari 400/800/XL/XE |
Size | 8KB |
Type | Assembler |
License | Copyright © 1981 Atari Corp. Proprietary software |
The Atari Assembler Editor is a cartridge-based development system used to edit, assemble, and debug 6502 programs for the Atari 8-bit computers. It was programmed by Kathleen O'Brien of Shepardson Microsystems, Inc.
Atari recommended the Assembler Editor as a tool for writing subroutines to speed up BASIC,[1] primarily because assembly times were extremely slow for anything but the smallest programs. The Atari Macro Assembler (AMAC) was offered by Atari to provide better performance and more powerful features, such as macros, but AMAC was disk-based, copy-protected, and it did not include an editor or debugger.
Details
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
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 numeric error codes.
Code was assembled by typing in the ASM
command.
Debug
The debugger, really a monitor, was entered by typing in the command BUG
at the prompt. The debugger allowed the viewing and changing of registers and memory locations, code tracing, single-step and disassembly.
The programmer went back to the EDIT mode by typing X
at the command prompt.
Example Code
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 ASM BUG G600 X
Legacy
Optimized Systems Software purchased the original rights to the Atari Assembler Editor from Shepardson Microsystems and released an improved version as EASMD, which was superseded by MAC/65 in 1982. The Assembler Editor continued to be available from Atari and increased in popularity as the price dropped to US$10 or $5 in the latter half of the 1980s.[2]
References
- ↑ Atari Assembler Editor User Manual. p. 63.
- ↑ Ratcliff, Matthew J. W. (November 20, 1989). "Atari Assembler Editor Reference".
External links
- AtariAge - Atari 800/XL/XE Atari Assembler Editor CXL4003
- Hi-Res Vol. 1, No. 1 - November 1983 Advanced User Forum by Russ Wetmore (Assemblers Reviewed)
- AMAC Info Atari Macro Assembler Info