This page (revision-62) was last changed on 03-Feb-2023 15:21 by Roland B. Wassenberg 

This page was created on 24-Feb-2014 22:30 by Roland B. Wassenberg

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
62 03-Feb-2023 15:21 16 KB Roland B. Wassenberg to previous
61 23-Jun-2021 00:43 16 KB Roland B. Wassenberg to previous | to last

Page References

Incoming links Outgoing links
Atari Assembler Editor

Version management

Difference between version and

At line 1 changed 7 lines
!!!Atari Assembler Editor ; Copyright (C) 1980 Atari, Inc. & Kathleen Ann O'Brien
[{TableOfContents }]\\
\\
[{Image src='Der Atari Assembler Cover.jpg' width=300 height=400 }]
Atari Assembler Editor Box Cover\\
\\
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 Ann O'Brien of Shepardson Microsystems, Inc., later founding member of OSS, Inc.. It was the first commercially available assembler for the Atari 8-bit computers ever. And yes, it was programmed by a woman. Showing once more, how far ahead of time SMI and OSS were. The program was a two-pass 6502 assembler, in an 8 KB cartridge. With the command __SIZE__, the user gets the info, how much space is free and the command __DOS__, exits the cartridge and jumps into the Disk Operationg System (DOS). There are rumors of a __LOMEM__ command, but AtariWiki couldn't verify this.
!!!Atari Assembler Editor
Copyright (C) 1980 Atari, Inc. & Kathleen Ann O'Brien
At line 4 added 14 lines
[{TableOfContents }]
!Background
Atari hired Shepardson Microsystems to write [Atari BASIC] for the 8-bit line. Shepardson developed it using a cross-compiler, but took the opportunity to begin writing their own assembler for the Atari platform as well. This was released by Atari in ROM cartridge form in 1980.
Atari Assembler Editor shared many components with Atari BASIC, notably the screen editor which used the same line-number based system as BASIC. However, it added several editing commands, including a RENumber and DELete, which, perhaps surprisingly, could also be used to edit BASIC programs.
The system ran entirely in RAM, meaning that both the source code and resulting machine code had to be able to fit in memory at the same time. This could be a significant limitation in many situations. Additionally, it did not include the ability to link multiple files together into a single larger program, which put further limits on the sort of programs that could be developed with it. [Eastern Front 1941], which was about 12 to 16k of machine code, required the source to be broken into six modules and then linked together by hand using DOS. Significant effort was needed to ensure that the memory references in the six files were correct, as they referred to code in other modules who's position changed as they were recompiled.
For larger programs, Atari also sold the [Atari Macro Assembler and Program-Text Editor CX8121|Atari Macro Assembler], which used a separate full-screen editor, saved files to disk, and included a linker. This was, however, both slow and expensive. As a result, many programmers were left wanting something more powerful than Assembler Editor (notably with macro support, which it lacked) but faster and less expensive than Macro Assembler. This led to a thriving market for 3rd party assemblers on the Atari platform.
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 Ann O'Brien of Shepardson Microsystems, Inc., later founding member of OSS, Inc.. It was the first commercially available assembler for the Atari 8-bit computers ever. And yes, it was programmed by a woman. Showing once more, how far ahead of time SMI and OSS were. The program was a two-pass 6502 assembler, in an 8 KB cartridge. With the command __SIZE__, the user gets the info, how much space is free and the command __DOS__, exits the cartridge and jumps into the Disk Operating System (DOS).
At line 58 added one line
* [ATARI Assembler Editor User's Manual with OCR|ATARI Assembler Editor User-s Manual-OCR.pdf] ; size: 5.8 MB ; good quality
At line 51 changed one line
* [ATARI Assembler Editor User's Manual Errata|Atari_Assembler_Editor_cartridge_manual_errata.pdf] ; size: 238 KB
* [ATARI Assembler Editor User's Manual Errata 1|Atari_Assembler_Editor_User_s_Manual_Errata.pdf] ; size: 20.6 MB ; Many thanks to Atarimania!
* [ATARI Assembler Editor User's Manual Errata 2|Atari_Assembler_Editor_cartridge_manual_errata.pdf] ; size: 238 KB
At line 73 added 12 lines
!!Hint
If the user intends to resize the used memory, the command: 'LOMEM xxxx' must be the very first command after booting. Please see page 7 in the manual for further info. Otherwise the user will get an error:\\
[{Image src='LOMEM-SIZE-2.png' width=606 height=317 }]
LOMEM command - correct use\\
\\
[{Image src='LOMEM-SIZE-1.png' width=611 height=296 }]
LOMEM command - incorrect use\\
\\
Thanks to Sijmen Schouten for the hint. :-)
At line 70 changed one line
Assembler Editor Cartridge - Revision A?\\
Assembler Editor Cartridge - Revision A\\
At line 73 changed one line
Assembler Editor Cartridge - Revision B?\\
Assembler Editor Cartridge - Revision B\\
At line 95 changed 2 lines
[{Image src='Change Editor Color.jpg' width=263 height=473 }]
Assembler Editor Cartridge - Revision B?\\
[{Image src='Change Editor Color.jpg' width=234 height=554 }]
Assembler Editor Cartridge - changing the editor's color and background to user desired colors for better editing
At line 98 removed one line
At line 268 added 84 lines
!!Atari Assembler Editor Mnemonics
{{{
ADC Add Memory to Accumulator with Carry
AND AND Accumulator with Memory
ASL Shift Left (Accumulator or Memory)
BCC Branch if Carry Clear
BCS Branch if Carry Set
BEQ Branch if Result = Zero
BIT Test Memory Against Accumulator
BMI Branch if Minus Result
BNE Branch if Result ≠ Zero
BPL Branch on Plus Result
BRK Break
BVC Branch if V Flag Clear
BVS Branch if V Flag Set
CLC Clear Carry Flag
CLD Clear Decimal Mode Flag
CLI Clear Interrupt Disable flag (Enable Interrupt)
CLV Clear V Flag
CMP Compare Accumulator and Memory
CPX Compare Register X and Memory
CPY Compare Register Y and Memory
DEC Decrement Memory
DEX Decrement Register X
DEY Decrement Register Y
EOR Exclusive-OR Accumulator with Memory
INC Increment Memory
INX Increment Register X
INY Increment Register Y
JMP Jump to New Location
JSR Jump to Subroutine
LDA Load Accumulator
LDX Load Register X
LDY Load Register Y
LSR Shift Right (Accumulator or Memory)
NOP No Operation
ORA OR Accumulator with Memory
PHA Push Accumulator on Stack
PHP Push Processor Status Register (P) onto Stack
PLA Pull Accumulator from Stack
PLP Pull Processor Status Register (P) from Stack
ROL Rotate Left (Accumulator or Memory)
ROR Rotate Right (Accumulator or Memory)
RTI Return from Interrupt
RTS Return from Subroutine
SBC Subtract Memory from Accumulator with Borrow
SEC Set Carry Flag
SED Set Decimal Mode Flag
SEI Set Interrupt Disable Flag (Disable Interrupt)
STA Store Accumulator
STX Store Register X
STY Store Register Y
TAX Transfer Accumulator to Register X
TAY Transfer Accumulator to Register Y
TSX Transfer Register SP to Register X
TXA Transfer Register X to Accumulator
TXS Transfer Register X to Register SP
TYA Transfer Register Y to Accumulator
}}}
!!Instruction Set (Operation Codes)
[{Image src='Instruction Set (Operation Codes)-1.png' width=1089 height=824 }]
[{Image src='Instruction Set (Operation Codes)-2.png' width=1134 height=686 }]
Instruction Set (Operation Codes)
!!Commands and error codes
[{Image src='Editor.jpg' width=818 height=755 }]
Atari Assembler Editor - Editor commands\\
\\
[{Image src='Assembler.jpg' width=733 height=853 }]
Atari Assembler Editor - Assembler commands\\
\\
[{Image src='Debugger.jpg' width=841 height=669 }]
Atari Assembler Editor - Debugger commands\\
\\
[{Image src='Assembler Editor Error Codes 001-139.jpg' width=847 height=949 }]
Atari Assembler Editor - Error Codes 001-139\\
\\
[{Image src='Assembler Editor Error Codes 140-165.jpg' width=681 height=237 }]
Atari Assembler Editor - Error Codes 140-165\\
\\
[{Image src='Error Codes 2-171.jpg' width=782 height=895 }]
Atari Assembler Editor - Error Codes 2-171