Using the suggested code to develop a game i realized that a game that works perfectly on vice , it freeze itself at beginning on the real hardware and in some other emulators.
In this case the game is eligible for the cassette 50 compo?
I used the Shallan code against this emulator (but the problem is in the real hardware too) : https://lvllvl.com/c64/
Loading the generated prg it freeze and looking at the disassembly i see that the execution is in an infinite loop at $E5CD ,:
this is the pure Shallan code converted for cbm studio asm (DASM):
ENTRYM1 = Entry-1 ; Entry point minus one for the stack hacking
*= $120
Entry
ldx #$1F
txs ; Forzatura dello stack pointer per abbassarlo a $100-$11f
; ---------- Codice di partenza (205 bytes fino a $1ec)
Loop
inc $D020
jmp loop
; ---------- Fine codice di partenza --------------------
*=$01ED
; Quest’area di memoria può essere usata per le variabili a run time
; Una volta che il programma è caricato (1ed-1ff = 18 bytes)
; è stato sovrascritto dal processo di caricamento
*= $01F8 ; Sovrascrittura del vettore di ritorno nello stack
byte <ENTRYM1, >ENTRYM1 ; Stack hacking
* = $200
;143 free bytes here
byte $8f, 0
*=$028f
byte $48,$eb //Prevent keyboard jam
;131 free bytes here
byte $83, 0
*= $0314 ; Vettori per IRQ, BRK e NMI
byte $31,$ea,$66,$fe,$47,$fe
; Vanno mantenuti anche i seguenti Vettori
byte $4a,$f3,$91,$f2,$0e,$f2
byte $50,$f2,$33,$f3,$57,$f1,$c1,$f1
byte $ed,$f6 ; vettore di STOP - essenzialmente per evitare JAM nella memoria
; 3286 bytes liberi per tutto ciò che si desidera
bytes $00 * 3286 ; Riempito di zeri