Atari Assembler Editor
Encyclopedia
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.
assembler, in an 8KB
cartridge. It was the first commercially available assembler for the Atari 8-bit computers.
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
. This mode was entered by typing in the command
and memory locations, perform a trace, single-step and disassembly.
The programmer went back to the EDIT mode by typing
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.
written in Atari assembly language:
.
Although superseded by Atari Macro Assembler (AMAC), the Atari Assembler Editor continued to be used by programmers. Plus, Optimized Systems Software
purchased the original rights from Shepardson Microsystems. OSS then came out with improved versions, one of which was EASMD.
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...
and debug
Debugging
Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware, thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge...
assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
programs for the Atari 8-bit
Atari 8-bit family
The Atari 8-bit family is a series of 8-bit home computers manufactured from 1979 to 1992. All are based on the MOS Technology 6502 CPU and were the first home computers designed with custom coprocessor chips...
computers. It was programmed by Kathleen O'Brien of Shepardson Microsystems
Shepardson Microsystems
Shepardson Microsystems, Inc. was a small company producing operating systems and programming languages for the Atari 8-bit and Apple II computer families...
, Inc.
Details
The program was a two-pass 6502MOS Technology 6502
The MOS Technology 6502 is an 8-bit microprocessor that was designed by Chuck Peddle and Bill Mensch for MOS Technology in 1975. When it was introduced, it was the least expensive full-featured microprocessor on the market by a considerable margin, costing less than one-sixth the price of...
assembler, in an 8KB
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
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 sourceSource code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
into the editor
Source code editor
A source code editor is a text editor program designed specifically for editing source code of computer programs by programmers. It may be a standalone application or it may be built into an integrated development environment ....
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
The Atari Assembler Editor featured a debuggerDebugging
Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware, thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge...
. This mode was entered by typing in the command
BUG
at the prompt. The debugger allowed the viewing and changing of registersProcessor register
In computer architecture, a processor register is a small amount of storage available as part of a CPU or other digital processor. Such registers are addressed by mechanisms other than main memory and can be accessed more quickly...
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
Disadvantages of Atari Assembler Editor were speed, bugs, lack of macros and awkward conditional assemblyConditional assembly language
A Conditional Assembly Language is that part of an Assembly Language used to write macros.- Example :In the IBM conditional assembly language, the most important statements are:-* MACRO and MEND - used to start and finish a macro...
features. Unfortunately, the program used the Atari's floating point
Floating point
In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...
routines for arithmetic calculations, greatly impacting performance. The debugger was really a monitor
Machine code monitor
A machine code monitor is software built into or separately available for various computers, allowing the user to enter commands to view and change memory locations on the machine, with options to load and save memory contents from/to secondary storage.Machine code monitors became something of a...
, limited in power and flexibility. Nonetheless, it was the only available Atari assembler for many programmers.
Example Code
The following is example code for Hello World!Hello world program
A "Hello world" program is a computer program that outputs "Hello world" on a display device. Because it is typically one of the simplest programs possible in most programming languages, it is by tradition often used to illustrate to beginners the most basic syntax of a programming language, or to...
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
Atari Macro Assembler
The Atari Macro Assembler (AMAC) and Program-Text Editor was offered by Atari to provide better performance and more powerful features, such as macros. This disk based assembler came with the software, manuals and reference card. The program was copy-protectedCopy protection
Copy protection, also known as content protection, copy obstruction, copy prevention and copy restriction, refer to techniques used for preventing the reproduction of software, films, music, and other media, usually for copyright reasons.- Terminology :Media corporations have always used the term...
.
Although superseded by Atari Macro Assembler (AMAC), the Atari Assembler Editor continued to be used by programmers. Plus, Optimized Systems Software
Optimized Systems Software
Optimized Systems Software was a small company producing operating systems and programming languages for the Atari 8-bit and Apple II computer families...
purchased the original rights from Shepardson Microsystems. OSS then came out with improved versions, one of which was EASMD.
External links
- AtariAge - Atari 800/XL/XE Atari Assembler Editor CXL4003
- TWiki, Infothek Atari Assembler Editor Documentation (PDF format)
- Hi-Res Vol. 1, No. 1 - November 1983 Advanced User Forum by Russ Wetmore (Assemblers Reviewed)
- AMAC Info Atari Macro Assembler Info