Bin mal wieder in der Old Skool Ecke unterwegs:
Leider wird ROML beim C64 für RW low nur dann low, wenn der C64 im Ultimax Modus ist, also GAME auch auf low ist. Oder anders ausgedrückt, wie ich es eigentlich von
roml
Bin mal wieder in der Old Skool Ecke unterwegs:
Leider wird ROML beim C64 für RW low nur dann low, wenn der C64 im Ultimax Modus ist, also GAME auch auf low ist. Oder anders ausgedrückt, wie ich es eigentlich von
roml
Am 09.11.2013 15:06, schrieb Frank Buss:
7402, sofen die Gatterlaufzeiten kein Problem machen.Gruß Dieter
Danke, war eigentlich naheliegend, bin wohl noch nicht ganz wach :-)
Mit den Gatterlaufzeiten sollte gehen. Ein 74LS02 hätte maximal 15 ns Gatterlaufzeit, und der Takt im C64 ist 1 MHz, sodaß die benötigten zwei Gatter in Reihe für die OR-Funktion kein Problem sein sollten. Aber ich werde vorsichthalber nochmal die benötigten Setup/Hold Zeiten im C64 überprüfen.
-- Frank Buss, http://www.frank-buss.de electronics and more: http://www.youtube.com/user/frankbuss
Ja, denn Schreibbefehle gehen by default immer ins DRAM. Ausnahmen gibt es wenige und für ROMs aus naheliegenden Gründen schon mal gar nicht weil sonst die Datenleitungstreiber von CPU und ROM gegeneinander arbeiten.
74LS02, 4 x NOR.Ich denke aber nicht, daß das funktionieren wird weil die PLA im C64 ROML für Schreibzugriffe eben nicht low setzen wird solange du nicht im Ultimax-Modus bist. Schaltest du aber in diesen Modus um ist so ziemlich dein ganzes DRAM sofort weg (Zumindest aus Sicht der CPU, AFAIK bleiben
4 KB RAM ab $0000 übrig). Irgendwo musst du aber deine Daten, die ins Flash sollen, zwischenlagern und nebenher den Rechner am Laufen halten.Gerrit
Das sollte kein Problem sein. Im Ultimax-Modus habe ich folgendes Speicherlayout:
4K RAM von $0000-$0FFF 8K Cartridge ROM von $8000-$9FFF 4K I/O von $D000-$DFFF 8K Cartridge ROM von $E000-$FFFFDamit kann man einiges machen. Das aktuelle Filetransfer-Testprogramm ist 3 kB lang, und da ist verschwenderisch der Titelbildschirm einfach per 2 kB Charset/Color aus dem CBM Prg Studio Screen-Editor als .byte-Anweisungen mit enthalten.
Ich habe per MIDI 2 kB/s Nettoübertagungsrate (der Inhalt muß leider in Note-Off Nachrichten verpackt werden, da einige billige eBay-MIDI Adapter keine SysEx-Nachrichten länger 3 Bytes verschicken, sonst hätte ich über 3 kB/s), also 500 us pro Byte. Das Flash braucht maximal 20 us pro Byte zum Programmieren und man kann byteweise programmieren, daher muß ich nichts zwischenspeichern. Nur beim Start brauche ich 100 ms Pause, da das die maximal benötigte Zeit für ein Chip-Erase ist.
-- Frank Buss, http://www.frank-buss.de electronics and more: http://www.youtube.com/user/frankbuss
Frank Buss schrieb:
Wenn Du vom C64 sprichst, denkst Du aber schon daran, dass bei $0000-$0001 der Port der CPU liegt, auérdem die beiden ersten Speicherseiten für ZeroPage und Stack reserviert sind? In den restlichne 3,5kB magst Du Dich dann austoben.
-- Mit freundlichen Grüßen | /"\ ASCII RIBBON CAMPAIGN | Andreas Bockelmann | \ / KEIN HTML IN E-MAIL | F/V +49-3221-1143516 | X UND USENET-GRUPPEN | | / \ www.asciiribbon.org |
Du hast aber schon verifiziert, daß du, wegen Transfer ins Flash, im Ultimax-Mode dort auch wirklich schreiben kannst?
Gerrit
Wie meinst du das? Ich werde natürlich das Programm in den Bereich von $0000 bis $0FFF kopieren und von dort ausführen, sonst könnte ich auch nicht einfach ein Chip-Erase machen, sondern müsste was kompliziertes per Sector-Erase programmieren.
Man kann mit dem Kick Assembler den ich verwende sowas leicht machen: einfach einen Block per ".pseudopc" definieren, und es wird dann fortlaufend assembliert, aber so, als wäre der program counter da, wo er mit .pseudopc angegeben wurde. Verwende ich aktuell bereits für die PRG-Filetransfer Routine, da die aus dem EPROM Bereich ab $8000 nach $c000 kopiert wird, um vor dem Ausführend eines PRGs das EPROM ausschalten zu können.
-- Frank Buss, http://www.frank-buss.de electronics and more: http://www.youtube.com/user/frankbuss
Nein, ich meine, du hast verifiziert, daß du im Ultimax-Mode dein Flash-ROM bei R/_W=LOW auch wirklich ansprechen kannst?
Ich meine dabei nicht nach den im Netz zu findenden Gleichungen der PLA sondern per Oszi am lebenden System.
Gerrit
Nimm ein 4fach NOR: 7402...
1 NOR plus 1 NOR als Inverter gibt 1 OR bleiben noch 2 NOR als Inverter übrigBINGO
Saludos (an alle Vernünftigen, Rest sh. sig) Wolfgang
-- Wolfgang Allinger, anerkannter Trollallergiker :) reply Adresse gesetzt! Ich diskutiere zukünftig weniger mit Idioten, denn sie ziehen mich auf ihr Niveau herunter und schlagen mich dort mit ihrer Erfahrung! :p (lt. alter usenet Weisheit) iPod, iPhone, iPad, iTunes, iRak, iDiot
Frank Buss schrieb:
Das wäre dann der 7402, vierfach NOR mit je zwei Eingängen.
Holger
War etwas beschäftigt, aber habe jetzt Zeit gefunden das zu verifizieren. Sieht etwas abenteuerlich aus, aber den C64 stört scheinbar nicht, wenn etwas längere Drähte dranhängen:
Damit konnte ich dann vom C64 aus die ID des Flashs lesen, und den Flash löschen und neu beschreiben. Beim Beschreiben wurden allerdings manchmal ein paar Bytes verschluckt, aber ich hoffe das liegt am Aufbau und ist nicht noch irgendein fieses Timing-Problem.
Habe die Schaltung angepasst und neu geroutet (revision 0.2), die neuen Platinen sollten in ein paar Wochen da sein:
Da noch ein 74LS74 fehlte, um die Taktfrequenz für das MIDI-Interface einstellbar zu machen (es gibt welche mit 2 MHz und welche mit 500 kHz, aber gibt keine bezahlbaren 500 kHz Quarzoszillatoren in DIP-Bauform für
5V), wurde es schon ziemlich eng auf der Platine und ich habe ein klein wenig geschummelt und noch ein 5-Pin SMD-Oder-Gater auf die Rückseite platziert, denn ich hatte mich für den Ultimax-Modus vertan und habe es nicht mit weniger Gates hinbekommen, denn der ist aktiv, wenn nur GAME auf Low ist, und EXROM auf High, nicht wenn beides auf Low ist. Aber sonst ist es alles Retro-Style geblieben :-)So wird die neue Version aussehen:
-- Frank Buss, http://www.frank-buss.de electronics and more: http://www.youtube.com/user/frankbuss
In meinem aktuellen Testaufbau konnte ich alles ins RAM laden und dann das Programm irgendwo unterhalb von $1000 ablegen (in meinem Test bei $0900). Beim Flashen schalte ich dann jeweils zum Lesen eines neuen Bytes den Ultimax-Modus ab, lese das Byte aus dem RAM, schalte den Ultimax-Modus wieder an und brenne es ins Flash. Funktioniert prima. Es muß also im Prinzip nur die reine Flash-Schreibroutine irgendwo unterhalb $1000 liegen und die ist nur ein paar Bytes lang. Hier das schnell gehackte Testprogramm:
Aber ich hatte ja schon berechnet, daß man auch direkt beim Empfang der MIDI-Daten ohne Zwischenspeicherung brennen kann, z.B. wenn man die vollen 512 kB des Flashs programmieren will.
-- Frank Buss, http://www.frank-buss.de electronics and more: http://www.youtube.com/user/frankbuss
Als Taktteiler bevorzuge ich den 74LS93, deutlich einfacher zu beschalten. :)
Gerrit
Klar, ginge auch. Scheint aber langsam auszusterben, denn Reichelt hat den merkwürdigerweise nicht mehr. Den 74LS74 bekommt man da aber noch. Bei Farnell gibt es noch beides, aber der 74LS93 kostet satte 1,63 Euro, der 74LS74 nur 52 Cent. Logisch, im Zähler sind ja auch bestimmt mehr als dreimal soviel Flip-Flops drin :-)
-- Frank Buss, http://www.frank-buss.de electronics and more: http://www.youtube.com/user/frankbuss
Dann nimm den 74LS193. 26 Cent bei Reichelt. :)
Gerrit
Lag am Aufbau. Die neue Platine ist heute angekommen und gibt jetzt keine Flash-Schreibfehler mehr. Habe es auch in ein Gehäuse eingebaut:
-- Frank Buss, http://www.frank-buss.de electronics and more: http://www.youtube.com/user/frankbuss
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.