Commodore 64 > Programmazione, Grafica e Musica

Ottimizzazione Dei Programmi Basic

<< < (2/7) > >>

Alberto:
 
--- Citazione ---sarebbe utile analizzare alcuni programmi scritti in maniera non ottimizzata e cercare di capire come fare per ripulirli.
--- Termina citazione ---
Il tutorial sui dischi contiene un paio di consistenti listati Basic non ottimizzati...
La stessa Guida del programmatore ne contiene parecchi...

--- Citazione ---Sicuramente non si farà avanti nessuno...
--- Termina citazione ---
Perchè questo pessimismo? :mellow:
   

Alberto:
 
--- Citazione ---Questi accorgimenti sono utili quando vuoi, per tua soddisfazione e/o divertimento, spingere il BASIC oltre i suoi limiti.
--- Termina citazione ---
Certo,è una gran bella cosa ;)

--- Citazione ---Io ad esempio ho scritto un programma che realizza un semplice scrolling fluido in puro BASIC
--- Termina citazione ---
Perchè non lo pubblichi? :fagiano:

--- Citazione ---A me è sempre piaciuto cercare di spingere il BASIC al massimo... semplicemente perché "it can be done"
--- Termina citazione ---
Ottima filosofia...
Ciao
Alberto  

MarC=ello:
 Sì, penso che prima o poi lo pubblicherò...   ;)  

MarC=ello:
 
--- Citazione ---La stessa Guida del programmatore ne contiene parecchi...
--- Termina citazione ---

Sì, infatti. Questo perché è stata messa come prioritaria la chiarezza dei programmi. Un programma "compattato" è più difficilmente leggibile di uno non compattato. Inoltre, sui programmi non compattati si possono inserire agevolmente dei commenti (REM) esplicativi.

 

iAN CooG:
 Questi cicli da basic ci impiegano sempre troppo.
Se proprio vogliamo andare veloci come razzi eccovi una routinetta:

--- Codice: ---;fill routine da Basic
;[iAN CooG/HokutoForce]
;uso: SYS820,8192,16384,0

*=$0334
    JSR $AEFD ; salta la virgola
    JSR $A96B ; leggi un intero in $14/$15
    lda $14
    ldx $15
    sta $fb   ; indirizzo di partenza
    stx $fc
    JSR $AEFD
    JSR $A96B
    lda $14    
    ldx $15
    sta $fd   ; indirizzo di fine
    stx $fe
    JSR $AEFD
    JSR $A96B
    lda $14   ; valore di riempimento
    ldy #$00
lp  sta ($fb),y
    ldx $fe
    cpx $fc
    bne inc1
    ldx $fb
    cpx $fd
    beq exit

inc1
    inc $fb
    bne lp
    inc $fc
    jmp lp
exit
    rts

--- Termina codice ---

e per implementarlo in un listato basic


--- Codice: ---10 forx=820to881:ready:pokex,y:next
15 sys820,8192,16191,0
20 end
90 data 032,253,174,032,107,169,165,020,166,021,133,251,134,252,032,253
91 data 174,032,107,169,165,020,166,021,133,253,134,254,032,253,174,032
92 data 107,169,165,020,160,000,145,251,166,254,228,252,208,006,166,251
93 data 228,253,240,009,230,251,208,238,230,252,076,090,003,096

--- Termina codice ---

anche se io sono per il link diretto delle routines senza usare READ/DATA che occupano tempo e *tanto* spazio inutilmente. Ma forse questo risultera' arabo per la maggior parte dei niubbi  :overkiller:  

Navigazione

[0] Indice dei post

[#] Pagina successiva

[*] Pagina precedente

Vai alla versione completa