setup_and_run sei jsr init ; commenting this row out should make the assembler throw an error and refuse to compile, now it happens all the time? - lda #$fb cmp $d012 bne *-3 jsr routine jmp - init .proc initiated = 1 ; do stuff rts .pend use_initiated_memory_area .proc ; using init.initiated instead of gives a duplicate definition error, why, the scopes are different and they are not strongly defined i several places .weak initiated = 0 ; default to 0 .endweak .if initiated = 0 .error "you must call init" .fi ; do stuff rts .endp routine jsr use_initiated_memory_area rts