Home
Inizio
Prima Prec Contenuti Prossima Ultima
Prima - Prec - Contenuti - Prossima - Ultima
English Deutsch Español
English - Deutsch - Español

Appendice D: C64 Chips Personalizzati

Questa sezione descrive le mappe registro dei Chips Personalizzati Commodore C64 . E' intenso per il programmatore interessato, che vuole analizzare i programmi C64 scritto di altri o addirittura scritti di suo. Se sei solo interessato a giocare il tuo preferito gioco, allora non hai bisogno di preoccuparti riguardo questi dettagli.

D.1 VIC 6567 (Video Controller) - D000-D02E

D000: Sprite#0 Posizione-X (Bits 7…0, Bit 8 è immagazzinato in D010)
D001: Sprite#0 Y-Posizione (Bits 7…0)
       L'angolo Alto/Sinistra dello Schermo ha coordinate X/Y 24/50.
D002/D003: come D000/D001, ma per Sprite#1
D004/D005: come D000/D001, ma per Sprite#2
D006…D00F: come D000/D001, ma per Sprites#3…7
D010: Sprite Posizione-X High Bits
       1 Bit per Sprite (Bit 0 per Sprite#0, Bit 1 per Sprite#1…)
D011: Control Res: 1
       Bit 7: Bit 8 per D012
       Bit 6: 1: Modalità Testo Colore Esteso
       Bit 5: 0: Modalità Testo     ~ 1: Modalità Bitmap
       Bit 4: 0: Schermo Disabilito ~ 1: Schermo Abilito
       Bit 3: 0: 24 Linee/Schermo ~ 1: 25 Linee/Schermo
       Bits 2…0: Scrolling Dolce Posizione-Y
D012: Lettura:  Linea Di Scansione Corrente (Bits 7…0, Bit 8 è disponibile in D011)
       Scrittura: Scanline che crea un'interruzione raster
D013: Penna Ottica Pos-X (Bits 8…1)
D014: Penna Ottica Pos-Y (Bits 7…0)
D015: Abilita Sprite (Bit 0 per Sprite#0, Bit 1 per Sprite#1…)
D016: Control Res: 2
       Bits 7…5: Non usato
       Bit 4: 1: Modalità Multi Colore
       Bit 3: 0: 38 Carat/Linea  ~ 1: 40 Carat/Linea
       Bits 2…0: scrolling Dolce Posizione-X
D017: Sprite Scale Doppia Larghezza
       1 Bit per Sprite (Bit 0 per Sprite#0, Bit 1 per Sprite#1…)
D018: Registro Indirizzo Video
       Bits 7…4: Bits 13…10 di VideoRAM Indir.
       Bits 3…1: Bits 13…11 di CharacterRAM Indir. in Modalità Testo
       Bits 3:   Bit 13 di Bitmap Addr in Modalità Bitmap
       Bit 0:    Non usato
       Bits 15…14 di ambedue valori sono immagazzinati (negati) in DD00 (CIA2).
       I bits  più bassi (9/10…0) sono sempre 0.
D019: Registro Interrupt Pendenti
       Bit 7: 1: Almeno 1 interruzione in attesa
       Bits 6…4: Non usato
       Bit 3: 1: Penna ottica interruzione in attesa
       Bit 2: 1: Sprite/Sprite Collision interruzione in attesa
       Bit 1: 1: Sprite/Sfondo Collision interruzione in attesa
       Bit 0: 1: Raster interruzione in attesa
D01A: Registro Interrupt Mask
       Bits 7…4: Non usato
       Bit 3: 1: Penna ottica interruzione abilitato
       Bit 2: 1: Collisione Sprite/Sprite interruzione abilitato (vedi D01E)
       Bit 1: 1: Collisione Sprite/Sfondo interruzione abilitato (vedi D01F)
       Bit 0: 1: Raster interruzione abilitato (vedi D012)
D01B: Priorità Sprite/Sfondo
       1 Bit per Sprite (Bit 0 per Sprite#0, Bit 1 per Sprite#1…)
       0: Lo Sprite è 'di fronte' lo sfondo
       1: Lo Sprite è 'dietro' lo sfondo
D01C: Sprite MultiColore (Bit 0 per Sprite#0, Bit 1 per Sprite#1…)
D01D: Scala Sprite Doppia Altezza
       1 Bit per Sprite (Bit 0 per Sprite#0, Bit 1 per Sprite#1…)
D01E: Rilevazione Collisione Sprite/Sprite
       1 Bit per Sprite (Bit 0 per Sprite#0, Bit 1 per Sprite#1…)
D01F: Rilevazione Collisione Sprite/Sfondo
       1 Bit per Sprite (Bit 0 per Sprite#0, Bit 1 per Sprite#1…)
D020: Border Colore
       Tutti i registro Colore usano solo bits 0…3; Bits 7…4 sono non usato.
D021: Colore Sfondo
D022: Colore Sfondo #1 per Multi Colore/Modalità Colore Estesa
D023: Colore Sfondo #2 per Multi Colore/Modalità Colore Estesa
D024: Colore Sfondo #3 per Modalità Testo Colore Estesa
D025: Sprite Multi Colore #0 per Sprites Multi Colore
D026: Sprite Multi Colore #1 per Sprites Multi Colore
D027: Colore Sprite per Sprite #0
D028: Colore Sprite per Sprite #1
D029…D02E: Colore Sprite per Sprites #2…7

I puntatori sono immagazzinati a VideoRAM+03F8…03FF; 1 Byte per Sprite per Bits 13…6. Bits 15…14 sono immagazzinati (invertiti) a DD00 Bits 1…0. Bits 5…0 sono sempre 0.

D.2 SID 6581 (Dispositivo di Interfaccia de Suono) - D400-D41C

D400: Oscillatore#1: Controllo Frequenza: Bits  7…0
D401: Oscillatore#1: Controllo Frequenza: Bits 15…8
       Per convertire il valore da Controllo Frequenza a Frequenza attuale
       multiplo di (Sistema Clock Rate / 2^24)
D402: Oscillatore#1: Larghezza Pulsazione per Onda Rettangolare: Bits  7…0
D403: Oscillatore#1: Larghezza Pulsazione per Onda Rettangolare: Bits 11…8
D404: Controllo Oscillatore#1
       Bits 7…4: Seleziona un il Forma d'onda. Solo 1 forma d'onda può essere
                 selezionato a qualsiasi tempo (no mix!)
                 Bit 7: Disturbo
                 Bit 6: Rettangolo
                 Bit 5: Dente
                 Bit 4: Trianglo
       Bit 3: Test Bit - 1: Bloca Oscillatore
       Bit 2: Ringmodulation
       Bit 1: Sincronizzazione
       Bit 0: Gate: Abilita Oscillatore
              Transizione 0->1 inizia Attack-Decay-Sustain-Cycle
              Transizione 1->0 inizia Release Phase
D405: Oscillatore#1: Forma di Inviluppo
       Bits 7…4: Velocità Attack
       Bits 3…0: Velocità Decay
D406: Oscillatore#1: Forma di Inviluppo
       Bits 7…4: Livello di Sostegno
       Bits 3…0: Velocità di Rilascio
D407…D40D: come D400…D406, ma per Oscillatore#2
D40E…D414: come D400…D406, ma per Oscillatore#3
D415: Filtro Controllo Freq.: Bits  2…0
D416: Filtro Controllo Freq.: Bits 10…3
       Per convertire da Controllo Valore Filtro Freq. in attuale
       Filtro Frequenza multipla di 5.8 e aggiungi 30 Hz.
D417: Controllo Filtro/Risonanza
       Bits 7…4: Intensità Risonanza
       Bit 3: 1: Filtro abilitato per segnale esterno
       Bit 2: 1: Filtro abilitato per Oscillatore#3
       Bit 1: 1: Filtro abilitato per Oscillatore#2
       Bit 0: 1: Filtro abilitato per Oscillatore#1
D418: Filtro Controlllo/Volume
       Bit 7: 1: Muta Oscillatore#3
       Bit 6: 1: Filtro agisce come filtro Passa-Alto
       Bit 5: 1: Filtro agisce come filtro Passa-Banda
       Bit 4: 1: Filtro agisce come filtro Passa-Basso
       Bits 3…0: Volume
D419: Posizione Paddle 1
D41A: Posizione Paddle 2
D41B: Stato Corrente dell'Oscillatore#3's Onda
D41C: Stato Corrente dell'Oscillatore#3's Inviluppo

D.3 CIA 6526 (Adattatore Interfaccia Complessa)
CIA1: DC00-DC0F / CIA2: DD00-DD0F

Dx00: Port A Registro Dati
Dx01: Registro Dati Porta B
Dx02: Registro Direzione Dati Porta A (0: Input ~ 1: Output)
Dx03: Registro Direzione Dati Porta B (0: Input ~ 1: Output)
Dx04: Timer A Bits  7…0
       Lettura:  Stato Corrente di Timer A
       Scrittura: Valore da essere caricato al prossimo avvio di Timer A
Dx05: Timer A Bits 15…8
       Lettura:  Stato Corrente di Timer A
       Scrittura: Valore da essere caricato al prossimo avvio di Timer A
Dx06: Timer B Bits  7…0
Dx07: Timer B Bits 15…8
Dx08: Tempo di Giorno/Sveglia 10mo Secondo
       Lettura:  Tempo del Giorno 10mo Secondo in Formato BCD (Bits 3…0)
       Scrivi e Controlla Ris: B Bit 7 = 0:
         Imposta Tempo del Giorno 10mo Secondo
       Scrivi e Controlla Ris: B Bit 7 = 1:
         Imposta Tempo Sveglia 10mo Secondo
Dx09: Tempo di Secondo Giorno/Sveglia (Formato BCD)
       Modi di accesso come Dx08
Dx0A: Tempo di Giorno/Sveglia Minuti (Formato BCD)
       Modi di accesso come Dx08
Dx0B: Tempo di Giorno/Sveglia Ore (Formato BCD)
       Bit 7: 0: AM ~ 1: PM
       Modi di accesso come Dx08
       Lettura Dx0B ritarda il Tempo del Giorno.
       Lettura Dx08 rilascia il Ritardo.
Dx0C: Registro Dati Seriale
Dx0D: Registro Controllo Interrupt
       Bit 7: Lettura: Almeno 1 origne interruzione è in attesa
                Leggendo la Ris. Controllo di Interrupt: pulisce tutti Bits.
              Scrittura: 0: Ogni 1 Bit pulisce il corrispondente Mask Bit
                        Gli altri Bits rimangono inalterati.
                     1: Ogni 1 Bit imposta il corrispondente Mask Bit
                        Gli altri Bits rimangono inalterati.
       Bits 6…5: Non usato (sempre 0)
       Bit 4: Segnale su Pin FLAG
       Bit 3: Ris. Dati Seriali: Pieno/Vuoto
       Bit 2: Il Tempo Sveglia eguaglia il Tempo del Giorno
       Bit 1: Timer B Sotto Flusso
       Bit 0: Timer A Sotto Flusso
       Leggendo la Ris. Controllo di Interruzione: pulisce tutti i Bits.
Dx0E: Registro Controllo A
       Bit 7: Velocità Innesco Tempo del Giorno: 0: 60 Hz ~ 1: 50 Hz
       Bit 6: Direzione Dati Seriali: 0: Input ~ 1: Output
       Bit 5: Fonte Innesco Timer A: 0: Sistema Clock ~ 1: CNT-Pin
       Bit 4: 1: Forza Carico di Timer A
       Bit 3: 0: Timer A Automaticalmente riparte dopo che il Conto alla Rovescia è
                 completo
              1: Timer A è fermo quando il Conto alla Rovescia è completo.
       Bit 2: 0: Ogni Sotto Flusso di Timer A causa Pin PB6 ad andare alto
                 per 1 ciclo di clock
              1: Ogni Sotto Flusso di Timer A sbarra il Pin PB6.
       Bit 1: Sotto Flusso di Timer A è indicato su Pin PB6.
       Bit 0: Timer A abilitato: 1: Go ~ 0: Stop
Dx0F: Registro Controllo B
       Bit 7: 0: Imposta Tempo del Giorno ~ 1: Imposta Tempo Sveglia
       Bits 6…5: Fonte Innesco Timer B
              00: Orologio Sistema     ~ 01: CNT-Pin
              10: Sotto Flusso Timer A ~ 11: Sotto Flusso Timer A se CNT=1
       Bits 4…0: come DC0E ma per Timer B e Pin PB7

DC00: CIA1 Porta A
       Bits 7…0: Unione Selezione Fila Tastiera
       Bits 7…6: Unione Selezione impostazione Paddle (solo 1 bit può essere attivo)
       Bit 4: Joystick#2 Fuoco
       Bit 3: Joystick#2 Destra
       Bit 2: Joystick#2 Sinistra
       Bit 1: Joystick#2 Giù
       Bit 0: Joystick#2 Su

DC01: CIA1 Porta B
       Bits 7…0: Risultato Colonna Tastiera
       Bit 4: Joystick#1 Fuoco
       Bit 3: Joystick#1 Destra
       Bit 2: Joystick#1 Sinistra
       Bit 1: Joystick#1 Giù
       Bit 0: Joystick#1 Su

DC0D: CIA1 Ris. Controllo Interr.:
       Bit 4 (FLAG Pin): Input Dati Nastro Dati

DD00: CIA2 Porta A
       Bit 7: IEC-Bus: DATA Input
       Bit 6: IEC-Bus: CLOCK Input
       Bit 5: IEC-Bus: DATA Output
       Bit 4: IEC-Bus: CLOCK Output
       Bit 3: IEC-Bus: ATN Output
       Bit 2: RS232: TXD (solo con Cartuccia RS232)
       Bit 1…0: Alta Ordine Bits (15…14) di Indir. Video (invertito)

DD01: CIA2 Porta B (solo con Cartuccia RS232)
       Bit 7: RS232: DSR (Data Set Ready)
       Bit 6: RS232: CTS (Clear to Send)
       Bit 4: RS232: DCD (Dati Carrier Detect)
       Bit 3: RS232: RI  (Ring Indicator)
       Bit 2: RS232: DTR (Dati Terminal Ready)
       Bit 1: RS232: RTS (Request to Send)
       Bit 0: RS232: RXD (Receive Data)

DD0D: CIA2 Ris. Controllo Interr.:
       Bit 4 (FLAG Pin): RS232: RXD (solo con RS232 Cartuccia)

D.4 Porta CPU 6510

0000: Registro Direzione Dati Porta CPU: 0: Input ~ 1: Output
0001: Registro Direzione Dati Porta CPU
       Bits 7…6: Non Implementato
       Bit 5: Nastro: Motore (invertito)
       Bit 4: Nastro: Pulsante Play
       Bit 3: Nastro: Dati Uscita
       Bits 2…0: Seleziona una Configurazione di Memoria
          Lettura:   $A000-BFFF  $D000-DFFF  $E000-FFFF
             000:     RAM         RAM         RAM
             001:     RAM         ROM         RAM
             010:     RAM         ROM         ROM
             011:     ROM         ROM         ROM
             100:     RAM         RAM         RAM
             101:     RAM         I/O         RAM
             110:     RAM         I/O         ROM
             111:     ROM         I/O         ROM

          Scrittura:  $A000-BFFF  $D000-DFFF  $E000-FFFF
             0xx:     RAM         RAM         RAM
             100:     RAM         RAM         RAM
             101:     RAM         I/O         RAM
             11x:     RAM         I/O         RAM
Home Prima Prec Contenuti Prossima Ultima Top of Page

Fonte: http://www.infinite-loop.at/Power64/Documentation/Power64-LeggiMi/AD-Chips_Personalizzati.html
Power64 Homepage: http://www.infinite-loop.at e http://www.salto.at - EMail:
© Roland Lieger, Goethegasse 39, A-2340 Mödling, Austria - Europe
Ultimo Cambiamento: 29. Febbraio 2008
Valid HTML 4.01!