    DEVICE ZXSPECTRUM48
    org     $8000
    ; 17 bytes block of "default" memory values
    db      "ABCDEFGHIJKLMNOPZ"

    ALIGN   0       ; error
    ALIGN   1,-1    ; error
    ALIGN   1,256   ; error
    ALIGN   3       ; error
    ALIGN   5,10    ; error
    ALIGN   $10000  ; error

    ; re-run over the initial values again with different ALIGN directives
    org     $8000
    db      'a'     ; [8000] = 'a'
    ALIGN   1       ; effective nothing should happen here
    ALIGN   1, '!'  ; and neighter here
    ALIGN   2       ; this should advance to $8002 + preserve memory
    ALIGN   4, 'b'  ; [8002] = [8003] = 'b'
    ALIGN   7, '!'  ; error
    ALIGN   8       ; advance to 8008, preserve memory
    ALIGN   16, 'c' ; [8008..800F] = 'c'
    ALIGN           ; should not make any difference (already at MOD 4 address)

    ; the final result should be "aBbbEFGHccccccccZ"

    SAVEBIN "dir_align.bin", $8000, 17  ; modified area is saved into BIN file

    ALIGN   1,      ; error
