Skip to content

Category: Atari

Atari 800 XL Assembler – Update

Added a new example to the repo called dli7 that creates a display list interrupt that manipulates the standard basic DL to display different background colors per textline. There is also a new python script in the repo to generate a Basic program that pokes the ML binary into memory and excutes it using USR(STARTADDRESS).
In the .asm file we ORG the binary to $4000 and in Basic we can excute it then using USR(16384).

This is the DLI asm

    run     start
    org     $4000

WSYNC       = $d40a
VCOUNT      = $d40b
COLPF2      = $d018
DL          = $cc

    lda     $0230
    sta     DL
    lda     $0231
    sta     DL+1
    lda     #<dli
    sta     $0200
    lda     #>dli
    sta     $0201

    ldy     #3
    lda     (DL),y
    eor     #128
    sta     (DL),y
    ldy     #8
    lda     (DL),y
    eor     #128
    sta     (DL),y
    cpy     #29
    bne     dlloop
    lda     #192
    sta     $d40e

    lda     #$ff
    sta     $02fc
    ldx     $02fc
    cpx     #$ff
    bne     exit
    jmp     loop

    lda     VCOUNT
    sta     WSYNC
    sta     COLPF2

Now you can assemble your code:
mads -l -t dli7.asm

And convert the .obx binary to basic program
python --filename dli7.obx --start-addr 16384 --strip-header 12

This will generate a basic file dli.bas from the .obx

20 FOR X=16384 TO 16457
40 POKE X, D
60 Z = USR(16384)
70 DATA 173,48,2,133,204,173,49,2
80 DATA 133,205,169,62,141,0,2,169
90 DATA 64,141,1,2,160,3,177,204
100 DATA 73,128,145,204,160,8,177,204
110 DATA 73,128,145,204,200,192,29,208
120 DATA 245,169,192,141,14,212,169,255
130 DATA 141,252,2,174,252,2,224,255
140 DATA 208,3,76,51,64,96,72,173
150 DATA 11,212,141,10,212,141,24,208
160 DATA 104,64

Now you can run the basic program
atari800 -pal -xl -basic -xlxe_rom ${ATARI_PATH}/roms/ATARIXL.ROM -basic_rom ${ATARI_PATH}/roms/ATARIBAS.ROM dli7.bas

Comments closed

Learning Atari 800 XL Assembler

I revisted my Atari code snippets that i collected over the last 2 years to learn Atari 800 XL assember. I created a Github repo to make it easy yo access them.

Hello World DLI

Weganoid Game


  1. Install mads assembler into your path
  2. Install atari800 emulator into your path
  3. Create helper scripts into your path to start the emulator
${ATARI_PATH}/bin/atari800 -pal -xe -xlxe_rom ${ATARI_PATH}/roms/ATARIXL.ROM -video-accel -win-width 800 -win-height 600 "$1"
  1. Build and run an example
cd hello 
make all


  • mads – MADS multi-pass crossassembler
  • atari800 – Atari800 portable and free Atari 8-bit emulator
  • sample code – Atari 800 XL code samples
Comments closed

AspeQt for OS X El Capitan

I updated and compiled AspeQt with QT 5.5.1 and made a build for OS X El Capitan. This has been requested for a while, but i never came around to install latest QT and get it working again. So here we go….

Download for OS X

AspeQt on OS X El Capitan
AspeQt on OS X El Capitan
1 Comment

AspeQt for OSX

2 years ago i started to transfer my old Atari 800 XL software from the 28 years old “5,25 disk to ATR images on my laptop. But i was never happy with the setup using a windows program in a vm to do the transfer. I found [AspeQt]( which is opensource, but it did not support OSX. So i started to add an serial driver with OSX support to it. And then forget about it. Till recently when i got an email from the AspeQt maintainer Ray who asked about the state of my [github repo]( Since i want OSX support in the mainline, i picked the lastest version of AspeQt to update my repo, which already got a little stale. Then i found out that is a pain in the ass to run QT4.8 on Maverick, there is no offical package and building from source you end up in patch hell.

So i decided to move my branch of AspeQt to QT5.2, which was pretty straight forward.

QtCreator is not a great editor but does the job


AspeQt on OSX

AspeQt on OSX
AspeQt on OSX

Found some cool stuff on my disks

Software from the 80ies
Software from the 80ies