(Articolo di Phaze101)  I Registri della CPU I registri del 6510 Nella puntata precedente abbiamo visto che la CPU usa dei propri Registri, che non sono altro che locazioni di memoria usate dalla CPU stessa per eseguire le sue funzioni. Il 6510 ha tre Registri, chiamati A (abbreviazione di accumulatore), X e Y. Esiste anche un registro di stato “Status Register(SR)” ed un registro “Program Counter (PC)” oltre ovviamente al contatore dello stack, “Stack Pointer  (SP)”. L’accumulatore (A) E’ usato per memorizzare numeri ad 8 bit da 0 a 255 (o $FF). Vi si possono caricare valori della memoria, o direttamente indicando un valore. Possiamo anche trasferire il valore dell’Accumulatore in un indirizzo di memoria. E’ l’unico registro che può essere usato per operazione aritmetiche, come l’addizione e la sottrazione. I Registri X e Y Questi registri sono in un certo qual modo identici all’accumulatore. Possono memorizzare un valore ad 8 bit. E’ anche possibile spostare un

valore dalla memoria dei registri, o indicare direttamente un valore, ed infine copiare i loro valori in una locazione di memoria. Una funzione molto potente di questi registri, che verrà descritta più avanti quando affronteremo le modalità di indirizzamento, è quella che consente di usarli come indici. Il registro di Stato (SR) Il registro di stato contiene una serie di flag (bit) che avranno valore 0 o 1 a seconda delle operazioni che la CPU sta facendo, ed è lungo 8 bit. Ad esempio quando l’operazione ha come risultato zero, viene alzato il flag Zero. Ecco la lista di questi flag.   Lo Stack Pointer (SP) Questo registro controlla il puntatore allo stack. Questo può essere paragonato ad una pila di piatti. I piatti in cima sono sempre quelli presi per primi, e se vi aggiungo un piatto, andrà sempre messo in cima. Questo vuol dire che lo stack è una coda di tipo LIFO (Last In First Out) Lo stack è usato…

(Article by Phaze101) The CPU Registers The 6510 CPU Registers In the previous article it was shown that the CPU is using its own Registers which are just memory locations within the CPU, and these permit the CPU to perform its functions. The 6510 processor has 3 Registers. These are called the A register which is short for the Accumulator, the X register and the Y register. There is also the Status Register (SR) and the Program Counter (PC) plus the Stack Pointer (SP). The Accumulator (A) This is used to store an 8-bit number from 0 to 255 or $FF. You can load a value from memory to the Accumulator. It is also possible to load a number directly to the A register. We can also transfer the Accumulator register value to memory. The accumulator is the only register that can be used for arithmetic operations such as addition and subtraction. The X and Y Registers

These registers are in a way identical to the accumulator. They can hold an 8-bit value. It is also possible to load a value from memory and store it in these registers. Same thing as the Accumulator you can also load a number directly to them. You can also store the contents of the X and Y register into memory. The X and Y registers can also be used for indexing and this is a powerful feature of these registers. I will cover this in greater detail when I will be explaining the addressing modes. The Status Register (SR) The status register has a serious of flags which are flipped (switched on or off) according to the operations that the CPU performs. It is 8 bits wide. An example of this is when an operation results in a zero then the Zero flag is set. Here is a list of the Status Register flags The Stack Pointer (SP) The Stack Pointer controls the…

Sommario Un classico problema logico tratto da un best seller di enigmi e puzzle per C64. Viene proposta e sviluppata una soluzione molto più completa di quella fornita dal testo, applicabile ad una vastissima gamma di problemi analoghi ma anche ad innumerevoli situazioni di programmazione: dai gestionali all’automazione industriale, dai protocolli alla grafica. E' disponibile anche una versione PDF di quest'articolo ed i sorgenti presentati in formato ZIP. «È più facile quadrare un circolo che arrotondare un Matematico» (Augustus de Morgan, 1806-1871) 1 Introduzione. Scopo del presente articolo è l’illustrazione di un semplice problema che molti di noi «retroprogrammatori» si sono all’epoca divertiti a risolvere con l’ausilio del proprio PET preferito: una tipologia di problema che peraltro caratterizza anche molti rompicapo logici proposti dalle più note riviste di enigmistica. Il linguaggio è intenzionalmente informale, divulgativo e didascalico, scevro da particolari pretese di rigore, al fine di raggiungere il più vasto uditorio informatico possibile. L’articolo è organizzato in tre parti principali.

Nella prima parte si illustra il problema nella sua forma originale, proponendone anche una immediata traduzione dall’inglese. Nella seconda parte si presenta la scarna soluzione originale del testo. Nella terza e ultima parte si discute una soluzione completamente autonoma da parte del calcolatore, senza alcun passaggio manuale, rivelando la reale natura del problema e dell’algoritmo risolutivo, che si presta ad una scelta totalmente automatizzabile della soluzione corretta tra quelle potenzialmente valide. 2 Sarah’s Number. Il problema originale, a pagina 12 del testo [LS83], è caratterizzato dal numero progressivo 11. Eccone il testo completo: Last week while we were out sailing on the Henderson’s yacht, Julie, Ken, Liz, Morris and Naomi were trying to remember Sarah’s phone number. They all agreed on the prefix, but none of them could remember exactly the last four digits. They came up with these statements: Julie: There is a 9 in it. Ken: It is definitely higher than 5000. Liz: It is palindromic: it reads…