buonasera , chiedevo perche nell eseguire il programma essso funziona solo se inserisco rts(RETURN) alla fine del programma , e funziona parzialmente se lo inserito dopo la fine della subroutina , dove credo che sia giusto che venga messo ,
; 10 SYS (4096)
*=$0801
BYTE $0E, $08, $0A, $00, $9E, $20, $28, $34, $30, $39, $36, $29, $00, $00, $00
;-----------------------------------------------------------------
; UTILIZzo UNA SOTTOPROCEDURA(SUBROUTINE ) IN L.M:
;1° (assegna i colori al bordo e allo sfondo)
;2° (salta alla :dho:gosub come in basic)
;3° con rts conclude il programma
;-----------------------------------------------------------------
*=$1000
;---------------------------------------------------------------
;1° ad essere eseguito salta alla sobrutina con Gosub (come il Basic)
jsr gosub ;
;---------------------------------------------------------------
lda#$07 ;7 = colore giallo
sta$d020 ;Poke53280,7 (colora il bordo di giallo)
lda#$02 ;2 = colore rossso
sta$d021 ;Poke53281,2 (colora òo sfondo di rosso)
;----------------------------------------------------------------
;2° ad essere eseguito
;----------------------------------------------------------------
gosub lda#32 ;32 = SPACE (cancella le prime 255 locazioni )
ldx#$00 ;x=0
go sta$0400,x ;Poke1024+x,32
inx ;X=x+1
cpx#250 ;confronta X con 250
bne go ;if <=250 vai al go altrimenti segui il flusso dopo rts
; rts (RETURN) finita la sobrutina dovrebbe proseguire il programma , ma non mi
;funziona se attivo questo rts
;----------------------
;3° ad essere eseguito
;----------------------
lda#$04 ;7 = colore giallo
sta$0400 ;Poke53280,7 (colora il bordo di giallo)
lda#$03 ;2 = colore rossso
sta$d800 ;Poke53281,2 (colora òo sfondo di rosso)
rts ;SE INSERITO SOLO QUA IL PROGRAMMA FUNZIONA CORRETTAMENTE