HELLO-WORLD-ATARI-ASSEMBLER -------------------------------------------------------------------------------------------------- TOOL: ATARI SynAssembler {ATARI-800XL} Language: SynAssembler by Synapse Extra: - Author: Misel Zivanovic Note: (C) 18th DEC 2025 - www.lived.ch, mzretro.ch --------------------------------------------------------------------------------------------------- I almost forgot this mandatory one. The most difficult thing was to get the screen address here. So what i did was POKING around until something appeared on the screen! Now tell me how clever that was! Haha... Don't think how this code requires any extra explanations. 00010 .OR $3000 00020 .LI OFF 00030 LDY #0 00040 LOOP LDA HELLO,X 00050 STA $9C4D,X 00060 INX 00070 CPX #12 00080 BNE LOOP 00090 GO LDA $2FC 00100 CMP #$0C ;ENTER TO QUIT 00110 BEQ QUIT 00120 JMP GO 00130 QUIT RTS 00140 HELLO .AT "HELLO WORLD!" ASM {and press ENTER to assemble} RUN $3000 {and press ENTER to execute} --------------------------------------------------------------------------------------------------- 23:58 18.12.2025 Couldn't resist not to take a look at the ATARI SCREEN START ADDRESS mystery and see there, that really depends on many things! ------------------------------------------------------------------------------ With ATARI DOS 2.5 and SynAssembler inserted, the SCREEN START ADRESS was at location 40000 In other words: lda #20: sta $9c40 brought @ on the screen, left upper corner. ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ With Turbo-BASIC 1.5 XL {.crt image} The SCREEN START ADDRESS moved to another location, namely 48192, hex $bc40 Meaning: lda #32: sta $bc40 is now to use to show @ in the left upper corner ------------------------------------------------------------------------------ CONCLUSION: I did not try more, but it is obvious how the START ADDRESS of the SCREEN depends on what's inserted and used with ATARI-800XL and also how much memory your ATARI has! And that was now only for the GRAPHICS 0 {TEXT} It is getting to be interesting! The addresses 88 and 89 were used here to find out the correct start address {SCREEN} DISPLAY LIST: ` I want to explore DisplayList as next and i already smell the problems! Haha... There is a magic formula existing to get the start address of DL: "You can also find the address of the DL by PEEKing one byte above the top of free memory:" PRINT PEEK(741) + PEEK(742) * 256 + l. When i do that, i get 48160 Now i just need to find out what to put in there to get some results! And since it is a DisplayList it will sure have more than one entry! WELL, WE INDEED LEARNED SOMETHING!