Login

Subversion Repositories NedoOS

Rev

Rev 126 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

; test include paths on command line and their priorities, there are multiple steps:
; luainc.asm       = no extra include path, should include from working directory
; luaincS.asm      = +include paths "luaincSSSS_v"
; luaincSS.asm     = +include paths "luaincSSSS_i"
; luaincSSS.asm    = +include paths "luaincSSSS_v", "luaincSSSS_i"
; luaincSSSS.asm   = +include paths "luaincSSSS_i", "luaincSSSS_v"

; The following code is intentionally mischievous and damaging assembling process, and
; the results of the assembling will very likely change in the future, as the work
; on consolidation of sjasmplus will continue, this is NOT example how to use lua scripts!
; it's more like anti-example, how to NOT use it.

    LUA PASS1
        pass = 0
    ENDLUA
    LUA ALLPASS
        pass = pass + 1
        if pass == 1 or pass == 3 then
          sj.warning('Pass updated to ' .. pass .. ', device: ' .. sj.get_device())
        end
    ENDLUA

    DEVICE ZXSPECTRUM1024

    ORG     $8000

    INCLUDELUA luaincSSSS.lua   ; this will load local version (defining two functions)

    INCLUDELUA <luaincSSSS.lua> ; this may load "system" version depending on -I options

loopyLoop:

    call    forwardyLabelo

    LUA ALLPASS
    inc_ld_local('A', pass + 10)    -- defined only in local LUA script (never changes)
    ENDLUA

    LUA ALLPASS
    inc_ld_system('A', pass)        -- defined in all includes, the one with priority wins
    ENDLUA

    jr  loopyLoop

forwardyLabelo:
    rst 0

    ds  stretchItEvenMore-forwardyLabelo-1, 201

    ALIGN 256
stretchItEvenMore:
    rst 16