Commodore 64 > Programmazione, Grafica e Musica
Ottimizzazione Dei Programmi Basic
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
Vai alla versione completa