content:retrocomputing:assembly
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| content:retrocomputing:assembly [2024/07/14 10:42] – [Indirizzamento Indirect] admin | content:retrocomputing:assembly [2024/09/10 21:27] (current) – [Sintassi] admin | ||
|---|---|---|---|
| Line 214: | Line 214: | ||
| - può essere implementato, | - può essere implementato, | ||
| - | <note tip>Un indirizzamento di tipo //absolute indexed mode// è limitato a soli 256 byte; per incrementare questo limite si può usare un tipo di indirizzamento // | + | <note tip>Un indirizzamento di tipo //absolute indexed mode// è limitato a soli 256 byte (il valore del registro X o Y); per incrementare questo limite si può usare un tipo di indirizzamento // |
| Le righe $0345 e $0347 possono essere spiegate così: **CPX** (//' | Le righe $0345 e $0347 possono essere spiegate così: **CPX** (//' | ||
| + | |||
| + | Il //branch// è sempre // | ||
| Il **//flag Carry//**, oltre che dalle operazioni aritmetiche, | Il **//flag Carry//**, oltre che dalle operazioni aritmetiche, | ||
| Line 600: | Line 602: | ||
| JMP ($380) | JMP ($380) | ||
| | | ||
| - | dove $380 non è la destinazione del //jump//, come nel caso usuale per questa istruzione; in $380 è contenuto il LSB della destinazione vera e propria (e nel successivo $381 c'è il MSB). In sostanza | + | dove $380 non è la destinazione del //jump//, come nel caso usuale per questa istruzione; in $380 è contenuto il LSB della destinazione vera e propria (e nel successivo $381 c'è il MSB). $380 è un **// |
| - | {{: | + | {{: |
| Il programma completo: | Il programma completo: | ||
| Line 639: | Line 641: | ||
| {{: | {{: | ||
| + | <note tip> | ||
| ==== Indirizzamento Indirect, Indexed ==== | ==== Indirizzamento Indirect, Indexed ==== | ||
| - | L' | + | L' |
| + | Il problema è che la //Zero Page// è preziosa e ci sono pochissimi indirizzi che possono essere usati senza problemi, ad es. il range da $FC a $FF, che consente l' | ||
| + | |||
| + | Di seguito un esempio che **cancella lo schermo**; usa lo //screen code// dello ' | ||
| + | |||
| + | < | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | .C: | ||
| + | </ | ||
| + | |||
| + | <note tip> | ||
| + | Il metodo di indirizzamento di tipo **// | ||
| + | </ | ||
| + | |||
| + | In realtà le locazioni della //screen RAM// sono solo 1000, quindi il codice sopra non è ottimizzato, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | {{: | ||
| ==== Start & End of Basic ==== | ==== Start & End of Basic ==== | ||
| Line 686: | Line 719: | ||
| Quindi, nella posizione $801 viene inserito il programma 10 SYS2064, che quindi rimanderà alla locazione 2064 ($810), dove sarà presente il codice //main://. | Quindi, nella posizione $801 viene inserito il programma 10 SYS2064, che quindi rimanderà alla locazione 2064 ($810), dove sarà presente il codice //main://. | ||
| + | ===== Turbo Macro Pro ===== | ||
| + | |||
| + | **Turbo Macro Pro (TMP)** è un altro assembler/ | ||
| + | |||
| + | ==== Avvio ==== | ||
| + | |||
| + | * effettuare un //Attach// del disco .d64 scaricato sopra | ||
| + | * dare LOAD " | ||
| + | * dare LOAD "TMP ...non REU", | ||
| + | * eseguirlo con SYS 32768 | ||
| + | |||
| + | TMP si avvierà: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== Sintassi ==== | ||
| + | |||
| + | Sembra sia fondamentale che, in questa versione, i comandi siano scritti in **minuscolo**, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Per **assemblare** si usa la "< | ||
| + | |||
| + | {{: | ||
| + | |||
| + | e poi " | ||
| + | |||
| + | Nel caso specifico si esegue il programma con 'SYS 4096' (che è pari a $1000) per ottenere: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Per ritornare all' | ||
| + | SYS 32768 | ||
| ===== VIC 20 ===== | ===== VIC 20 ===== | ||
content/retrocomputing/assembly.1720946551.txt.gz · Last modified: by admin
