|
|
|
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.
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.
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
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)
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
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 |