Il 02/09/2016 18:34, Luca Alimandi ha scritto:
Certo... ma nel caso tu avessi a che fare con un 128K devi essere ben certo che la ROM paginata sia quella giusta!
In realtà c'è anche un furbo trucchetto che sfrutta il fatto che la fine della ROM dello Spectrum è occupata da una lunga serie di byte con valore FF (255)...
In questo modo la tabella, già bella e pronta in ROM, fa saltare sempre a 65535. In questa locazione si deve porre un byte di valore 195 (è l'istruzione JP), dopo di che i due byte successivi (agli indirizzi 0 e 1, sempre della ROM) determinano dove va a parare il processore, ossia all'indirizzo 243 + 175 x 256 = 45043.
In pratica permette di risparmiare i 257 byte della tabella e il pezzettino di codice per crearla. Di contro costringe a posizionare la routine di gestione dell'interrupt nella posizione fissa 45043. Però in caso di estrema necessità di spazio è una soluzione molto intelligente! ;-)