Autore Topic: C64 I/o Expander  (Letto 1390 volte)

hiryu

  • Utente
  • **
  • Post: 649
    • http://hiryu.netsons.org/
  • Gioco Preferito: Wizard Of Wor
C64 I/o Expander
« il: 03 Agosto 2007, 02:25:47 »
 salve, qualcuno mi saprebbe spiegare a cosa serve questo:

http://www.zimmers.net/anonftp/pub/cbm/doc...IO-expander.zip

Trattasi del C64 I/O Expander, di Mager Valp, non ho mai capito la sua utilità... A suo tempo provai anche a scrivere all'autore, Mager Valp, appunto ma ricevetti email molto poco chiare con spiegazioni zero e tono piuttosto scocciato.

Grazie
Elwood: "E' partito un pistone"
Jake: "Poi torna?"
________________________________________________________
Hiryu @ http://hiryu.netsons.org | http://www.virb.com/hiryu

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
C64 I/o Expander
« Risposta #1 il: 04 Agosto 2007, 21:22:10 »
 Posto la discussione a riguardo avvenuta in chat, magari servira' a qualcuno d'altro.
Ovviamente se qualcuno vuole smentire o aggiungere qualcosa si faccia vivo.
Citazione
[20:50] ian: tu nn lo sai a che serve il C64 I/O Expander ??
[20:51] no, se no avrei risposto =)
[20:51] non sono hardwarista
[20:51] che ti rispose esattamente magervalp?
[20:51] pensavo che la tua onniscenza in materia C= poteva aiutare
[20:51] non so nulla su diodi e transistors
[20:52] nn ho le email, la sua risp risale a mooolto tempo fa
[20:52] a me interessa solo lda/sta
[20:52] =)
[20:52] ma da quel poco che riuscii a capire, mi ricordo qualcosa del tipo "non ho tempo per spiegartelo" etc
[20:52] lol
[20:53] gli chiesi dove dovevo collegare esattamente die piedini, perchè nn mi era chiaro lo schema
[20:53] googlando non si trova niente?
[20:53] e lui mi disse "nn dovrebbe essere difficile seguir eil mio disegno" o qualcosa del genere
[20:53] http://www.cling.gu.se/~cl3polof/IO/
[20:53] tipo questo
[20:54] In the C64 I/O space (D000-DFFF) there are several unused areas below D800 that are filled with mirror images of the VIC and SID registers. By adding a bit of logic to the address decoding done by the PLA it's possible to utilize the address space more efficiently
[20:54] magari serve per trasformare in RAM i bytes inutilmente mirrorati?
[20:54] quello e' preso paro-paro dal readme
[20:54] a suo tempo io usai proprio questa pagina
[20:55] il vic va da $d000 a $d03f, e nemmeno tutti sono usati, poi da $d040 a $d080 e cosi via ogni $40 bytes sono dei mirror degli stessi indirizzi
[20:55] fino a $d3ff
[20:56] http://www.paradroid.net/ioexpander/ per non scaricare lo zip
[20:56] a $d400-$d41f c'e' il sid, ogni $20 bytes mirrorati fino a $d7ff
[20:56] c'e' un gran spreco di spazio insomma
[20:56] quindi questo "coso" serve x riciclare quello spazio?
[20:57] vabe' che c'e' la ram sotto
[20:57] non so pero' come diavolo ci si possa scrivere quando e' attivo l'I/O
[20:57] ovvero
[20:58] se si vuole scrivere in RAM, I/O deve essere disattivato scrivendo #$04 in $01
[20:58] quando $01 vale $07, non si vede il banco di ram, ma appunto i registri dei 2 chip
[20:58] cosi' come la ram esterna in cui si mappano i colori (D800-DBE7)
[20:59] "If everything worked out OK you now have six free 256 byte areas in the I/O space."
[21:00] sembrerebbe interessante
[21:00] ma FREE in che senso?
[21:00] esatto ma come faccio  a sapere se tutto è andato ok
[21:00] ?
[21:00] per metterci altro hardware o per usarelo come ram?
[21:00] l'unica e' scrivere qualcosa a $d100 e vedere se ottieni il valore scritto
[21:01] ma soprattutto de D0 e D4 vanno ai CS del SID e del VIC, gli altri D dove vanno collegati?
[21:01] boh
[21:01] manco so cosa hai scritto :P
[21:02] dice "The /D0 and /D4 signals should be soldered to the /CS pins on the VIC and the SID, respectively"
[21:02] ah sono i pin
[21:02] però nn parla di dove collegare D1, D2, D3, D5, D6, D7
[21:02] forse a nulla, se non lo dice
[21:03] questa fu una delle domande che rivolsi a magervalp
[21:04] e anche se funzionasse non so dove diavolo finiscano i bytes scritti
[21:05] magari dove prima finivano gli indirizzi mirrorati...è possibile?
[21:05] mentre $d000-dfff e' attivo come i/o i bytes non finiscono nella ram sottostante
[21:05] il vic e il sid non sono ram
[21:05] quando le rom del basic $a000 e del kernal $e000 sono attive, se scrivi, il byte scritto finisce nella ram "sotto"
[21:06] e cosi' quando e' attiva la rom caratteri a $d000
[21:06] ma se scrivi a $d000-dfff quando l'i/o e' attivo no
[21:06] e dove va?
[21:06] finisce nei registri controllati dai chip vic/sid/cia1&2/eventuali cart a $de00/Df00 ma non nella ram
[21:07] se nella locazione scritta non c'e' nulla, e' perso
[21:07] semplicemente
[21:07] basta guardare con un monitor
[21:07] tutta la zona d000-dfff e' quasi un contenitore di valori random
[21:07] perche' non sono connessi a niente
[21:08] ma nn potrebbe essere che cn questo attrezzo si possano utilizzare quegli spazi cm ram aggiuntiva?
[21:08] d800-dbe7 e' una memoria esterna da 1024 NIBBLE, la parte alta di ogni byte e' sempre $f
[21:08] si, ma la ram andrebbe aggiunta
[21:08] oppure
[21:09] usare gli indirizzi liberati per altri hw, tipo il doppio sid
[21:09] alcuni 2sid sono a $d420 altri a $d500
[21:09] proprio perche' faranno un "truscio" del genere
[21:09] mi pare che anche la SCPU utilizzi simili indirizzi
[21:09] quindi questo coso nn fa che liberare spazio per indirizzarci qualche altra cosa?
[21:13] forse e' la base per costruire nuovi hw
[21:13] quindi da solo nn serve a nulla
[21:13] per me si
[21:14] senza un accrocchio del genere il 2sid non sarebbe possibile
[21:14] ma in se' non serve a molto, non si crea ram dal nulla =)
[21:15] però chi monta un secondo sid mica mette sto coso
[21:15] avra' in se' una cosa del genere?
[21:15] non so
[21:15] se no come lo vedrebbe il 2o sid a $d420?
[21:16] o va modificato anche il PLA assieme al 2sid?
[21:16] perche' e' il PLA che dice cosa c'e' ad un dato indirizzo
[21:17] nono il pla rimane quello che c'è
[21:17] credo ci sia qualcosa che liberi lo spazio x l'indirizzamento
[21:17] quindi va ingannato il sid in qualche modo
[21:17] se no a d420 vedresti lo stesso registro che c'e' a $d400
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -