Atari Assembler Editor ; Copyright (C) 1980 Atari, Inc. & Kathleen Ann O'Brien#
Table of Contents
- Atari Assembler Editor ; Copyright (C) 1980 Atari, Inc. & Kathleen Ann O'Brien
- Info, description and findings
- Assembler Editor - revision A & B cartridges - outlook for revision C and maybe D
- CAR images
- ROM images
- BIN images
- ATR images
- XEX files
- Manuals
- Pictures
- References
- Hello Wolrd! Source Code for the Atari Assembler Editor
|  | 
Info, description and findings#
Commands: SIZE, DOS, LOMEM?Assembler Editor - revision A & B cartridges - outlook for revision C and maybe D#
After more than three decades, another different version of the cartridge was discovered and could be verified, please see the md5 checksum below. AtariWiki dares to define them as revision A and B in analogy to the Atari Basic cartridge, which was delivered in three different versions. It is easy to find out, which version one has, just type in ASM and hit RETURN. If you have a revision A cartridge, no error message is shown, in case you have a revision B cartridge, the amount of errors are shown. Please see the two pictures below:|  | 
|  | 
In the future all bugs shoud be collected and if they can be fixed, a revision C is thinkable. If we go far ahead of this, then even an interbreed with the TURBO-BASIC XL source code
 is thinkable. In 1985 this was done for the Atari Basic cartridge by Frank Ostrowski and because of many code routines are similar, there is great chance to achieve this. Of course, even a renaming of the cartrige is possible, AtariWiki suggest to call it: 'Atari Turbo-Assembler Editor'. ;-)
 is thinkable. In 1985 this was done for the Atari Basic cartridge by Frank Ostrowski and because of many code routines are similar, there is great chance to achieve this. Of course, even a renaming of the cartrige is possible, AtariWiki suggest to call it: 'Atari Turbo-Assembler Editor'. ;-)
CAR images#
ROM images#
- Assembler Editor - Revision A.rom ; md5 checksum: 13b6dfbcad3ee35f511209b790e04675 ; md5 checksum: 13b6dfbcad3ee35f511209b790e04675
- Assembler Editor - Revision B.rom ; md5 checksum: aaf134cca657e21e2ad692b03a3233e0 ; md5 checksum: aaf134cca657e21e2ad692b03a3233e0
BIN images#
ATR images#
- Atari Assembler Editor with DOS 2.0S.atr ; Assembler Editor - Revision A ; Assembler Editor - Revision A
- Atari Assembler Editor with OSS DOS XL 2.30p Color.atr ; Assembler Editor - Revision A ; Assembler Editor - Revision A
- Hello_World_Source_Code_Atari_Assembler-Editor_with_DOS_2.0S_SD.atr  
- Hello_World_Source_Code_Atari_Assembler-Editor_with_DOS_2.75_SD.atr  
XEX files#
- Assembler Editor - Revision A.xex ; Assembler Editor - Revision A execution file ; Assembler Editor - Revision A execution file
- Assembler Editor - Revision B.xex ; Assembler Editor - Revision B execution file ; Assembler Editor - Revision B execution file
Manuals#
- ATARI Assembler Editor User's Manual  
- ATARI Assembler Editor User's Manual Update  
- ATARI Assembler Editor User's Manual Errata ; size: 238 KB ; size: 238 KB
- ATARI Assembler Editor Reference Card  
- ATARI Assembler Editor Command Summary  
- The Atari Assembler Editor Reference.rtf ; The Atari Assembler Editor Reference by Matthew J. W. Ratcliff ; The Atari Assembler Editor Reference by Matthew J. W. Ratcliff
- The Atari Assembler Editor bug list.rtf ; List of known bugs in the program, with description, solution, work around and source ; List of known bugs in the program, with description, solution, work around and source
|  | 
- The Atari Atari Assembler Editor-Don Inman, Kurt Inman ; Mega-Thanks to Atarimania for hosting!!! ; Mega-Thanks to Atarimania for hosting!!!
|  | 
- Der Atari Atari Assembler Editor-Don Inman, Kurt Inman ; Mega-Thanks to Atarimania for hosting!!! ; Mega-Thanks to Atarimania for hosting!!!
Pictures#
|  | 
|  | 
|  | 
|  | 
|  | 
|  | 
References#
- http://ataripodcast.libsyn.com/antic-interview-21-the-atari-8-bit-podcast-kathleen-obrien-oss ; ANTIC Interview 22 - The Atari 8-bit Podcast - with Kathleen Ann O'Brien from OSS, Inc. ; ANTIC Interview 22 - The Atari 8-bit Podcast - with Kathleen Ann O'Brien from OSS, Inc.
- https://computingpioneers.com/index.php/Kathleen_O%27Brien ; transcript of the interview above ; transcript of the interview above
- http://a8preservation.com/#/software/title/%2Fapi%2Ftitles%2F587 ; Atari Assembler Editor on a8preservation.com ; Atari Assembler Editor on a8preservation.com  
- http://www.atarimagazines.com/hi-res/v1n1/advanceduser.php ; Atari Assembler Editor in comparison to other assemblers by Russ Wetmore ; Atari Assembler Editor in comparison to other assemblers by Russ Wetmore
- http://open-source.ma.web.id/IT/1634-1523/Atari-Assembler-Editor_5818_open-source-ma.html ; good info page about the Atari Assembler Editor including the Hello World! source code ; good info page about the Atari Assembler Editor including the Hello World! source code
- Atari Assembler Editor discussion on AtariAge ; discussion on AtariAge about the Atari Assembler Editor ; discussion on AtariAge about the Atari Assembler Editor
Hello Wolrd! Source Code for the Atari Assembler Editor#
This is the Hello World! source code:
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
This is the Hello World! source code in assembled form:
            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 ; ===========
0000        0120        *=   $0340     ;START OF IOCB
            0130 IOCB
            0140 ;
0340        0150 ICHID  *=   *+1       ;DEVICE HANDLER
0341        0160 ICDNO  *=   *+1       ;DEVICE NUMBER
0342        0170 ICCOM  *=   *+1       ;I/O COMMAND
0343        0180 ICSTA  *=   *+1       ;I/O STATUS
0344        0190 ICBAL  *=   *+1       ;LSB BUFFER ADDR
0345        0200 ICBAH  *=   *+1       ;MSB BUFFER ADDR
0346        0210 ICPTL  *=   *+1       ;LSB PUT ROUTINE
0347        0220 ICPTH  *=   *+1       ;MSB PUT ROUTINE
0348        0230 ICBLL  *=   *+1       ;LSB BUFFER LEN
0349        0240 ICBLH  *=   *+1       ;MSB BUFFER LEN
034A        0250 ICAX1  *=   *+1       ;AUX BYTE 1
034B        0260 ICAX2  *=   *+1       ;AUX BYTE 1
            0270 ;
0005        0280 GETREC =    5         ;GET TEXT RECORD
0009        0290 PUTREC =    9         ;PUT TEXT RECORD
            0300 ;
E456        0310 CIOV   =    $E456     ;CIO ENTRY VECTOR
02E0        0320 RUNAD  =    $02E0     ;RUN ADDRESS
009B        0330 EOL    =    $9B       ;END OF LINE
            0340 ;
            0350 ; SETUP FOR CIO
            0360 ; -------------
034C        0370        *=   $0600     
0600 A200   0380 START  LDX  #0        ;IOCB 0
0602 A909   0390        LDA  #PUTREC   ;WANT OUTPUT
0604 9D4203 0400        STA  ICCOM,X   ;ISSUE CMD
0607 A91F   0410        LDA  #MSG&255  ;LOW BYTE OF MSG
0609 9D4403 0420        STA  ICBAL,X   ; INTO ICBAL
060C A906   0430        LDA  #MSG/256  ;HIGH BYTE
060E 9D4503 0440        STA  ICBAH,X   ; INTO ICBAH
0611 A900   0450        LDA  #0        ;LENGTH OF MSG
0613 9D4903 0460        STA  ICBLH,X   ; HIGH BYTE
0616 A9FF   0470        LDA  #$FF      ;255 CHAR LENGTH
0618 9D4803 0480        STA  ICBLL,X   ; LOW BYTE
            0490 ;
            0500 ; CALL CIO TO PRINT
            0510 ; -----------------
061B 2056E4 0520        JSR  CIOV      ;CALL CIO
061E 60     0530        RTS            ;EXIT TO DOS
            0540 ;
            0550 ; OUR MESSAGE
            0560 ; -----------
061F 48     0570 MSG    .BYTE "HELLO WORLD!",EOL
0620 45
0621 4C
0622 4C
0623 4F
0624 20
0625 57
0626 4F
0627 52
0628 4C
0629 44
062A 21
062B 9B
            0580 ;
            0590 ; INIT RUN ADDRESS
            0600 ; ----------------
062C        0610        *=   RUNAD     
02E0 0006   0620        .WORD START    
02E2        0630        .END           
0 ERRORS