HARDWARE TIP: PIA an $D300 - $D303 ausdekodiert
von mega-hz » Mi 15. Mär 2006, 23:43Hallo,
mich hat es keine Ruhe gelassen, daß ATARI so verschwenderisch mit den Hardwareadressen umging, daher habe ich heute mal einen Versuch gestartet: Die PIA, die ja bekanntlich nur 4 Adressen belegt, exakt ausdecodiert! Also die PIA-Register findet man jetzt wirklich nur noch an $D300 bis $D303 wieder! Der Rest bis $D3FF ist auf FF, da ja unbenutzt. Ich habe mit dem BiboMon die Werte geändert, es klappt! Auch Programme wie Ramdisk-Test oder TurboBasic (welches ja den Speicher unterm OS benutzt, also die PIA schaltet) laufen gut. Leider habe ich in diesem Rechner noch keine Speichererweiterung drin, wird aber sicher auch funktionieren.
Wer hat mal Programme zum Testen da, die angeblich die gespiegelten PIA Adressen $D304-$D3FF benutzen?
Zur Schaltung: Einen 74688 (ist ein 8Bit Vergleicher) an die Adressleitungen A0 bis A7 gelötet, die Vergleichereingänge B0 und B1 an A0 und A1, B2 bis B7 auf LO und den /ENABLE Pin auf den $D3XX Ausgang des 74138 (nähe MMU). Er arbeit folgendermaßen: Der Vergleicher ist eingestellt auf "Wenn A2,A3,A4,A5,A6 und A7 auf LO sind und der Enable-Eingang durch das $D3XX-Signal freigeschaltet ist, ist der A=B Ausgang des Vergleichers LO. An diesem gehts dann zum CS der PIA (Pin23). Natürlich muss die Leiterbahn von PIA(23) zum 74138(12) aufgetrennt werden. Da ich die B0 und B1 Vergleichereingänge direkt auf A0 und A1 verbunden habe, ist der Zusatnd von A0 und A1 egal.
Ergebnis:
PORTA=$D300,
PORTB=$D301,
PACTL=$D302
PBCTL=$D303 und nicht mehr!
FREI = $D304 - $D3FF also 252 Adressen gewonnen!
Warum der Aufwand? Freie Adressen für freie Hardware!
Wer nen Bibomon z.B. hat, wird sehen, daß die großen Bereiche wie $D6XX und $D7XX von diesem belegt werden. Bleibt nur noch $D1XX für PBI-Erweiterungen. Wird aber sicher auch schon benutzt.
Sicher kann man die Schaltung auch für die anderen Chips noch ausweiten, ein GAL wäre da sicher ne elegante Lösung.
Gruß,
Wolfram.
mich hat es keine Ruhe gelassen, daß ATARI so verschwenderisch mit den Hardwareadressen umging, daher habe ich heute mal einen Versuch gestartet: Die PIA, die ja bekanntlich nur 4 Adressen belegt, exakt ausdecodiert! Also die PIA-Register findet man jetzt wirklich nur noch an $D300 bis $D303 wieder! Der Rest bis $D3FF ist auf FF, da ja unbenutzt. Ich habe mit dem BiboMon die Werte geändert, es klappt! Auch Programme wie Ramdisk-Test oder TurboBasic (welches ja den Speicher unterm OS benutzt, also die PIA schaltet) laufen gut. Leider habe ich in diesem Rechner noch keine Speichererweiterung drin, wird aber sicher auch funktionieren.
Wer hat mal Programme zum Testen da, die angeblich die gespiegelten PIA Adressen $D304-$D3FF benutzen?
Zur Schaltung: Einen 74688 (ist ein 8Bit Vergleicher) an die Adressleitungen A0 bis A7 gelötet, die Vergleichereingänge B0 und B1 an A0 und A1, B2 bis B7 auf LO und den /ENABLE Pin auf den $D3XX Ausgang des 74138 (nähe MMU). Er arbeit folgendermaßen: Der Vergleicher ist eingestellt auf "Wenn A2,A3,A4,A5,A6 und A7 auf LO sind und der Enable-Eingang durch das $D3XX-Signal freigeschaltet ist, ist der A=B Ausgang des Vergleichers LO. An diesem gehts dann zum CS der PIA (Pin23). Natürlich muss die Leiterbahn von PIA(23) zum 74138(12) aufgetrennt werden. Da ich die B0 und B1 Vergleichereingänge direkt auf A0 und A1 verbunden habe, ist der Zusatnd von A0 und A1 egal.
Ergebnis:
PORTA=$D300,
PORTB=$D301,
PACTL=$D302
PBCTL=$D303 und nicht mehr!
FREI = $D304 - $D3FF also 252 Adressen gewonnen!
Warum der Aufwand? Freie Adressen für freie Hardware!
Wer nen Bibomon z.B. hat, wird sehen, daß die großen Bereiche wie $D6XX und $D7XX von diesem belegt werden. Bleibt nur noch $D1XX für PBI-Erweiterungen. Wird aber sicher auch schon benutzt.
Sicher kann man die Schaltung auch für die anderen Chips noch ausweiten, ein GAL wäre da sicher ne elegante Lösung.
Gruß,
Wolfram.