Super Ram Disk - Utopie oder machbar?

1, 2, 3

von atarixle » Di 8. Aug 2006, 01:32
mega-hz hat geschrieben:...der 65816 unterstützt das! --->Apple ...


Apple, wie? Dies ist mein erster ABBUC-Post von meinem neuen MacBook aus :-)

Vielleicht sollte man sich bei der Entwicklung dieses großen Erweiterungsspeichers gleich auch auf diese neue CPU konzentrieren ... die Verwendung als gepufferte RAM-Disk kann ja im 6502-Modus weiterverfolgt werden ...

von GoodByteXL » Di 8. Aug 2006, 11:01
Moijn, moijn ...

@ mega-hz: Hatte ich auch so verstanden, nur ist es ja nicht so:

Ein 16 MB Image als Partition laedt man doch nicht aus einer RAMDisk sondern blendet es aus dem zusaetzlichen/externen Speicher ein. Damit ist es gewissermassen eine SRAM-HD anstelle einer echten HD. Waere eine geniale Loesung vor allem von der Groesse und vom Strombedarf her.

Damit koennte man alle externen Device ins Regal legen ...

Ansonsten duerfte man bei groesseren Sachen kaum um das Bank Switching herumkommen. Der getrennte Schreib-/Lesezugriff wird mangels Unterstuetzung durch die 6502 CPU ja auch bereits fuer ANTIC/CPU ueber die PIA gefahren. Ist also bloss eine Frage der Ansteuerlogik und entsprechender Standards.

Generell sollte das kein Problem darstellen, da Guus bereits auf der letzten JHV eine modifizierte Erweiterung demonstriert hat, auf der u.a. auch SDX und der Freezer sowie 512K RAM beheimatet waren.

Vielleicht sollte man sich bei der Entwicklung dieses großen Erweiterungsspeichers gleich auch auf diese neue CPU konzentrieren ... die Verwendung als gepufferte RAM-Disk kann ja im 6502-Modus weiterverfolgt werden ...


Ich wuerde dafuer eine Quattro-Core-CPU nehmen :wink:

von cas » Di 8. Aug 2006, 12:01
GoodByteXL hat geschrieben:Ich wuerde dafuer eine Quattro-Core-CPU nehmen :wink:


Ja, 4 x den WDCs W65T32 Terbium 32-Bit Processor

von HiassofT » Di 8. Aug 2006, 13:01
Hallo Carsten!

cas hat geschrieben:Der Apple II hat es ein wenig einfacher gelöst, dort kann man die Bänke getrennt für Lese und Schreibzugriffe umschalten. D.h. der Programm kann weiterhin von $4000-$7FFF ausgeführt werden, aber Daten in eine Bank in $4000-$7FFF schreiben.

Das ist meiner Meinung nach die bisher beste Idee für eine neue RAM-Erweiterung!

Wie läuft das beim Apple genau? Gibt es da 2 getrennte Bank-Select Register (das wäre IMO die flexibelste Variante) oder ist es ein Bank-Select Register plus 2 Bits (eines für Read von extram, eines für Write ins extram)?

Für beide Varianten hätte ich schon Ideen, wie man das am Atari realisieren könnte:

Die zweite Variante liesse sich recht einfach in meine 256k/512k SRAM Erweiterung integrieren. PB4 würde dann den Schreibzugriff, PB5 den Lesezugriff steuern.

Die erste Variante ist etwas aufwändiger (mit den Bits aus PB kommt man dann nicht mehr aus), ließe sich aber auch relativ einfach mit einer "zweckentfremdeten" Turbo-Freezer Platine machen. Guus hatte ja schon während der Freezer-Entwicklung die Idee, den Freezer als "Super Ram/Rom-Disk" zu "missbrauchen".

Mit einer neuen Logik im CPLD (lässt sich per Software vom PC mit einem einfachen Kabel programmieren) könnte man bestehende Freezer recht einfach in eine 128k RAM Erweiterung verwandeln. Die Platine ist auch schon dafür vorgesehen einen 512k RAM Baustein aufzunehmen, dann aber ohne Freezer-Funktionalität.

Platz für getrennte Read/Write Bänke sowie ein paar Flags (RAM-Zugriff, ROM-Zugriff) sollte ausreichend vorhanden sein. Die Steuerung würde dann über $D7xx erfolgen (diese Adressen verwendet der Freezer auch jetzt schon für die Freezer-Logik), Bank- und Mode- Auswahl ähnlich wie bei der aktuellen CartEmu (zB Zugriff auf $D700 setzt Bank 0, $D701 Bank 1 etc.).

Den Speicherbereich der RAM-Erweiterung könnte man zB bei $4000-$7FFF belassen (die Freezer-Erweiterung hätte dann Priorität über eine evtl. vorhandene interne Ram-Erweiterung), oder auch woanders hin legen ($8000-$9FFF oder $8000-$BFFF, evtl. auch alles per Software konfigurierbar).

Gebt mal Bescheid, welche Variante ihr am sinnvollsten hält, ich habe im Moment zwar nur wenig Zeit aber evtl. geht sich noch etwas für den Hardware-Wettbewerb aus :-)

so long,

Hias

von Mathy » Di 8. Aug 2006, 15:31
Hallo Leute

Mal kurz zum Thema: "65816 kann gleichzeitig lesen und schreiben, deshalb machen wir die Erweiterung am besten für den 65816".

Die Boards die den 65816 drauf haben, haben alle schon Logic an Bord, um 16MB (oder war's mehr?) direkt an zu sprechen. Auch jetzt das neue, das im Moment auf AtariAge besprochen wird.

Wenn die Speicher-Erweiterung nachher auch mit den 65816 Boards läuft, Super, aber wir wollen ja eine für unsere 6502C Atari's.

Tschüß

Mathy

von Mathy » Di 8. Aug 2006, 15:47
Hallo Hias

HiassofT hat geschrieben:Gebt mal Bescheid, welche Variante ihr am sinnvollsten hält, ich habe im Moment zwar nur wenig Zeit aber evtl. geht sich noch etwas für den Hardware-Wettbewerb aus :-)


Also möglichst viel Speicher soll drauf sein. $D7xx währe OK. Sollte natürlich PBI kompatibel sein. Die gleichen Bank die auch bei $D301 Erweiterungen ausgeblendet wird, kann auch hier ausgeblendet werden. Wenn's geht so, das man ziemlich einfach was von der einen Erweiterung in der Anderen verschieben kann. Also die dritte Bank von vier 16kB Bänke im Hauptspeicher. Wenn man die Zweite nimmt, kann man ja keine Module mehr benutzen (oder?) und also auch kein SpartaDOS X.

So, wenn Du das dann bis morgen fertig hast, kann der Guus morgenabend die Platine entwerfen (es soll ja mehr als nur 512kB drauf), übermorgen kann dann der mega-hz die Platine herstellen und am Tag danach bestücken und dann hat die Post noch drei Tage, um die Platine beim Ressort-Leiter Hardware zu besorgen.

Müßte doch hinhauen, oder? 8)

Tschüß

Mathy

PS "von der einen Erweiterung in der Anderen verschieben" macht vielleicht nicht viel Sinn, sollte aber angeben, daß man mit wenig Aufwand die externe Bank kurz abschalten und die Interne wieder einschalten kann (und natürlich auch andersrum).

von HiassofT » Di 8. Aug 2006, 16:50
Hallo Mathy!

Mathy hat geschrieben:Also möglichst viel Speicher soll drauf sein. $D7xx währe OK. Sollte natürlich PBI kompatibel sein.

Was meinst Du mit PBI kompatibel? Dieser Begriff ist leider ziemlich verwaschen (worden).

Ein "richtiges" PBI-Gerät (wie zB die Black-Box) wird über definierte Mechanismen ($D1xx) angesprochen und automatisch vom OS eingebunden. Auf dem PBI-Gerät ist dazu ein ROM vorhanden, das die nötigen (CIO/SIO) Treiber enthält, die dann automatisch vom OS verwendet werden, sobald das Gerät angesprochen wird.

Andererseits gibt's noch etliche Erweiterungen (wie zB den Turbo Freezer), die zwar an den PBI (bzw Cart Port/ECI) angesteckt werden, aber keine PBI-Geräte im eigentlichen Sinn sind.

Die gleichen Bank die auch bei $D301 Erweiterungen ausgeblendet wird, kann auch hier ausgeblendet werden. Wenn's geht so, das man ziemlich einfach was von der einen Erweiterung in der Anderen verschieben kann.

Das wäre vom Grundkonzept her schon so vorgesehen: Bei der neuen RAM-Erweiterung kann Schreib und Lesezugriff getrennt gesteuert werden. Lesezugriff wird einfach deaktiviert (also wird vom normalen Speicher bzw von der internen RAM-Erweiterung gelesen), Schreibzugriff auf die externe RAM-Erweiterung geschaltet. LDA $4000 STA $4000 kopiert also ein Byte vom Atari in die RAM-Erweiterung. Die Idee mit dem separaten Lese/Schreibzugriff gefällt mir immer besser!

8k Bänke im Bereich $8000-$9FFF wären auch noch eine Möglichkeit, das kollidiert weder mit der (XE) Ram-Erweiterung noch mit Basic/SpartaDosX/Mac65. Ist halt etwas kleiner.

So, wenn Du das dann bis morgen fertig hast, kann der Guus morgenabend die Platine entwerfen (es soll ja mehr als nur 512kB drauf), übermorgen kann dann der mega-hz die Platine herstellen und am Tag danach bestücken und dann hat die Post noch drei Tage, um die Platine beim Ressort-Leiter Hardware zu besorgen.

Müßte doch hinhauen, oder? 8)

Yup, wenn wir uns etwas anstrengen und die Nacht durcharbeiten könnte das Paket morgen Früh losgehen :-)))

so long,

Hias

von cas » Di 8. Aug 2006, 17:15
HiassofT hat geschrieben:Hallo Carsten!

cas hat geschrieben:Der Apple II hat es ein wenig einfacher gelöst, dort kann man die Bänke getrennt für Lese und Schreibzugriffe umschalten. D.h. der Programm kann weiterhin von $4000-$7FFF ausgeführt werden, aber Daten in eine Bank in $4000-$7FFF schreiben.

Das ist meiner Meinung nach die bisher beste Idee für eine neue RAM-Erweiterung!

Wie läuft das beim Apple genau? Gibt es da 2 getrennte Bank-Select Register (das wäre IMO die flexibelste Variante) oder ist es ein Bank-Select Register plus 2 Bits (eines für Read von extram, eines für Write ins extram)?


So wie ich das sehe sind es 2 getrennte Bank-Select register. Ich habe Dir die technische Dokumentation zum Apple 2c geschickt, Seite 48-78 sind die interessanten im DJVU File.

(ich habe DJVU geschickt, weil das PDF über 100 MB hat, den Viewer findet Du unter http://www.djvuzone.org/)

Ciao

Carsten

von HiassofT » Di 8. Aug 2006, 18:28
cas hat geschrieben:So wie ich das sehe sind es 2 getrennte Bank-Select register. Ich habe Dir die technische Dokumentation zum Apple 2c geschickt, Seite 48-78 sind die interessanten im DJVU File.

Danke für die Info!

Wenn ich das richtig verstehe, gibt's beim Apple2 2 RAM-Bänke: Main und Auxiliary, beide belegen den gesamten Adressraum. Durch ein paar Register wird festgelegt, von welcher Bank gelesen und in welche Bank geschrieben werden soll (ganz grob zusammengefasst).

Da es nur 2 Bänke sind, reicht natürlich ein einzelnes Bit zur Umschaltung aus.

Beim Atari, wo die RAM-Erweiterung wiederum in Bänke aufgeteilt ist, sollte man dazu natürlich jeweils ein volles Bank-Select-Register (inkl. Banknummer) spendieren. Damit wäre dann zB "Lese von XRAM Bank 3, Schreibe in XRAM Bank 1" oder "Lese von internem RAM, schreibe in XRAM Bank 27" möglich.

Mal sehen :-)

so long,

Hias

von mega-hz » Di 8. Aug 2006, 23:29
Hi,

das ausführliche Datenblatt des 65C816 gibt es auf meiner Homepage: http://mega-hz.no-ip.com/ATARI/ATARI%208Bit/Hardware/65816/65816.pdf
Es sind etwa 1.1MB!
Sehr interessant, der 816 ist einmal im "Emulations"-Modus kompatibel
zum 6502, ansonsten ist er fast ein 16Bit CPU geworden mit bis zu 16MB Adressierungsmöglichkeiten! Die zusätzlichen Adressleitungen A16-A23 werden gemultiplext über die Datenleitungen erzeugt. Ähnlich wie bei den Mikrocontrollern 8051 etc. Ich denke, mit dem 816 kann man schon recht viel machen, im Punkte 16MB...

Gruß,
Wolfram.

von guus » Di 8. Aug 2006, 23:35
Hallo,

Der 65C816 kann etwas mehr Speicher ansteuern.
Da ist es also kein Problem. Und es gibt schon eine Platine...

Aber es ist mir gerade noch etwas eingefallen.
Meist will man lesen vom Ramdisk und weniger schreiben.
Und den OS-Raum wird nür gelesen.
Es ist möglich (und einfach) um schreib-zugriff nach den Addressraum vom OS nach eine andere Adresse um zu biegen.
Und gleichzeitig OS und Ram-Disk ist auch nicht notwendig.
So wird nür ein kleiner Raum gefragt für den Treiber.
Beim Schreiben nach den OS-Raum wird dann in den Ramdisk geschrieben.
Und für's lesen kann den OS-Raum umgeschaltet werden.
Dies wird glaub ich nicht benützt und hat somit kein Kompatibilitäts-Problem.
Ein Nachteil, es sollte eigentlich den Bildschirm ausgeschaltet werden.

mfg.
Guus

von mega-hz » Di 8. Aug 2006, 23:48
und was, wenn TurboBasic o.Ä. benutzt wird, welches das OS abschaltet und in die Adressen schreibt?

Gruß,
Wolfram.

PS: Deine Platine unterstützt aber nicht die "Mehr-Speicher" Möglichkeit,
oder?

von Mathy » Mi 9. Aug 2006, 03:10
Hallo Hias

HiassofT hat geschrieben:Was meinst Du mit PBI kompatibel?


Ja bitte, ein richtiges PBI-Gerät. Damit es auch mit mehreren PBI-Geräten den Bus teilen kann. (Die kleine Verzweigungsplatine - also ein Mal Stecker für PB und vier mal Stecker für PBI-Geräte - könnte man ja gleich dazu entwickeln :-D )

HiassofT hat geschrieben:Ein "richtiges" PBI-Gerät (wie zB die Black-Box)


Leider ist auch die BB nicht ganz nach den PBI vorgaben gebaut worden. Aber mit 'nem Trick, müßte sie wenigsten so zu betreiben sein, das sie sich mit anderen PBi-Geräten den PB teilen will. Wenn ich mich recht entsinne, gibt die BB $D1xx nicht frei (das ist aber mit dem Trick zu überwinden) und benutzt sie auch $D600 nicht ganz wie es sich gehört. Matthias Belitz (der vom MSC-IDE Controller) hat mir mal gesagt, für unter 50 Pfennig (oder waren's schon Cent) währe das lösbar. Er hat mir aber nie den Trick verraten wollen. Aber ich glaube, der Guus stimmt dem zu. Und auch der Bob Puff meinte schon, es sollte klappen (hat er wenigstens Matthias Belitz damals gesagt). Wo der Matthias im Moment sich rumtreibt, weiss ich leider nicht.

HiassofT hat geschrieben:... wird über definierte Mechanismen ($D1xx) angesprochen und automatisch vom OS eingebunden. Auf dem PBI-Gerät ist dazu ein ROM vorhanden, das die nötigen (CIO/SIO) Treiber enthält, die dann automatisch vom OS verwendet werden, sobald das Gerät angesprochen wird.


So hab' ich mir das gedacht. Wenn man sich darauf einigt, das nur Speicher auf der Platine sein sollte (da könnte man ja einiges drauf packen, zB ein USB interface oder was auch immer.) braucht man warscheinlich nur einen einfachen Treiber. Dieser sollte aber die Erweiterung nicht so einschränken, dass man zB nur 16MB drauf packen kann (statt vielleicht am Anfang nicht so viel und später mal mehr).

HiassofT hat geschrieben:Das wäre vom Grundkonzept her schon so vorgesehen: Bei der neuen RAM-Erweiterung kann Schreib und Lesezugriff getrennt gesteuert werden. Lesezugriff wird einfach deaktiviert (also wird vom normalen Speicher bzw von der internen RAM-Erweiterung gelesen), Schreibzugriff auf die externe RAM-Erweiterung geschaltet. LDA $4000 STA $4000 kopiert also ein Byte vom Atari in die RAM-Erweiterung. Die Idee mit dem separaten Lese/Schreibzugriff gefällt mir immer besser!


Aha, beim Schreiben von Intern auf Extern wird der Lesezugriff der Externen abgeschaltet und beim Kopieren von Externe auf Interne wird der Schreibzugriff der Externen abgeschaltet. Das heisst, bei Kopieren von Intern auf Extern wird sowohl die Interne als auch die Externe beschrieben. Ergibt das keine Probleme?

HiassofT hat geschrieben:8k Bänke im Bereich $8000-$9FFF wären auch noch eine Möglichkeit, das kollidiert weder mit der (XE) Ram-Erweiterung noch mit Basic/SpartaDosX/Mac65. Ist halt etwas kleiner.


Ist aber in der unteren Helfte des Modulschachtbereichs. Scheint aber wirklich nicht zu kollidieren mit den OSS Modulen.

HiassofT hat geschrieben:Yup, wenn wir uns etwas anstrengen und die Nacht durcharbeiten könnte das Paket morgen Früh losgehen :-)))


Schon fertig? 8)

Tschüß

Mathy

von HiassofT » Mi 9. Aug 2006, 09:06
Hallo Mathy!

Mathy hat geschrieben:Ja bitte, ein richtiges PBI-Gerät.

OK, damit fällt dann aber die Nutzung als Speichererweiterung für Programme ziemlich flach, der Speicherbereich für RAM/ROM ist dann fix von $D800-$DFFF. Von der Software her gibt's dann auch nur 2 Möglichkeiten: entweder das Gerät unterstützt SIO (um kompatibel zu den aktuellen DOSsen zu sein dann mit einem Limit von 16MB pro Device) oder man macht einen CIO Handler, dann muß aber ein komplettes DOS mit in die interne Software (sobald man mehr als 1MB Speicher hat möchte man sicher auch Unterverzeichnisse).

Da stellt sich für mich schon mal die Sinnfrage: Was will man damit machen, was man nicht auch jetzt schon mit einem Festplatten-Interface machen kann? Wieso teures SRAM nehmen, das man auch noch mit einer Batterie puffern muß, wenn man genauso gut eine CF Card oder eine (Micro-) Festplatte nehmen kann? Von der Geschwindigkeit her macht das kaum einen Unterschied, bei aktuellen Festplatten / CF Cards ist ohnehin der Atari das Bottleneck.

Viel interessanter finde ich persönlich, wie von Carsten vorgeschlagen, eine Speichererweiterung, die man für eigene Programme flexibler nutzen kann als die bisherigen Speichererweiterungen (eben zB mit getrenntem Schreib/Lese-Zugriff). In der Richtung könnte man auch noch etwas weiter denken, zB getrennte Blöcke (einmal $4000-$5FFF, einmal $6000-$7FFF) die man separat schalten kann, mit eigenem Bankselect o.ä.

In der Richtung sollten wir mal überlegen, welche Erweiterungen wirklich hilfreich für zukünftige (Software-) Entwicklungen sind, bzw welche Sachen bei den bisherigen RAM-Erweiterungen störend/einschränkend/... sind. Getrennter Schreib/Lese-Zugriff ist da denke ich schon mal ein erster Schritt in die richtige Richtung.

Aha, beim Schreiben von Intern auf Extern wird der Lesezugriff der Externen abgeschaltet und beim Kopieren von Externe auf Interne wird der Schreibzugriff der Externen abgeschaltet. Das heisst, bei Kopieren von Intern auf Extern wird sowohl die Interne als auch die Externe beschrieben. Ergibt das keine Probleme?

Äh, fast. Es wird entweder vom internen oder externen RAM gelesen/geschrieben, nie von beiden / in beide gleichzeitig. Hardwaretechnisch ist das kein Problem (das macht zB auch schon der Freezer, beim Schreibzugriffen auf die Custom-Chips wird auch das Freezer-RAM beschrieben, bei Lesezugriffen ist der Freezer "stumm"), man muß nur mit der Software ein wenig aufpassen: ein "INC $4000" macht evtl. nicht genau das, was man auf den ersten Blick erwarten würde.

Schon fertig? 8)

Noch nicht ganz :-)

Aber eine Idee hatte ich gestern Abend: ich könnte evtl. versuchen die Freezer Logik so anzupassen, daß man die freien 112k Freezer RAM als flexible Speichererweiterung (getrennter Schreib/Lese-Zugriff) benutzen kann und trotzdem weiterhin die Freezer-Funktionalität erhält. Bin mir aber noch nicht ganz sicher, ob sich das vom Platz (im CPLD) her ausgeht. Wenn ich die OSS und SDX Modul-Emulation rauswerfe könnte das evtl. klappen. Letztlich muß ich das aber einfach mal ausprobieren.

Damit hätten wir dann eine einfache Möglichkeit die Sache mit dem getrennten Schreib/Lesezugriff mal in der Praxis zu testen (man muß nur die neue Logik in den CPLD laden, wenn man wieder OSS und SDX Support haben möchte spielt man einfach die alte Logik wieder ein).

so long,

Hias

von atarixle » Mi 9. Aug 2006, 11:35
cas hat geschrieben:Ja, 4 x den WDCs W65T32 Terbium 32-Bit Processor


Alles, solange es 6502-kompatibel ist :-)

von cas » Mi 9. Aug 2006, 11:39
atarixle hat geschrieben:
cas hat geschrieben:Ja, 4 x den WDCs W65T32 Terbium 32-Bit Processor


Alles, solange es 6502-kompatibel ist :-)


Ja soll er sein. Das Problem mit den neuen 65xxx Prozessoren ist, das sie compatibel zum original 6502 Design sind, aber nicht kompatibel zu den illegalen Opcodes. Alle Programme die illegale Opcodes verwenden, funktionieren auf den 65816 und 65T32 Prozessoren nicht.

Ciao

Carsten

von cas » Mi 9. Aug 2006, 11:40
cas hat geschrieben:
atarixle hat geschrieben:
cas hat geschrieben:Ja, 4 x den WDCs W65T32 Terbium 32-Bit Processor


Alles, solange es 6502-kompatibel ist :-)


Ja soll er sein.

(nicht das ich wirklich meine das es Sinnvoll wäre :) )

Das Problem mit den neuen 65xxx Prozessoren ist, das sie kompatibel zum original 6502 Design sind, aber nicht kompatibel zu den illegalen Opcodes. Alle Programme die illegale Opcodes verwenden, funktionieren auf den 65816 und 65T32 Prozessoren nicht.

Ciao

Carsten

von atarixle » Mi 9. Aug 2006, 11:42
Wer stellt denn den her und wo wird er eingesetzt? hätte nicht gedacht, dass es sowas überhaupt noch gibt

von cas » Mi 9. Aug 2006, 11:59
atarixle hat geschrieben:Wer stellt denn den her und wo wird er eingesetzt? hätte nicht gedacht, dass es sowas überhaupt noch gibt


Die 6502 und zugehörigen Chips (VIA etc), auch die 16 bit Varianten und der neue 32bit Terbium (auch als Mikrocontroller) wird von Western Design Center

http://www.westerndesigncenter.com/wdc/

erstellt. Produziert werden die Chips von verschiedenen Chipherstellern produziert. Eingesetzt werden die 6502 und Nachfolger in embedded Anwendungen, in Autos, Getränkeautomaten, medizinischem Gerät etc.

WDC ist die Firma von William (Bill) D. Mensch. Jr, dem "Erfinder" des 6502 --> http://www.westerndesigncenter.com/wdc/WDC_Founder.cfm

Der 6502 ist immer noch einer der meistproduzierten CPUs. Es bekommt nur keiner mit, weil keiner sich Gedanken macht was in all den Gentränkeautomaten denn für eine CPU werkelt :) (warscheinlich in Forth programmiert ;) )

Ciao

Carsten

von HiassofT » Mi 9. Aug 2006, 12:55
Zum Terbium Prozessor sei noch angemerkt, daß es dazu bisher noch nicht mal eine offizielle Ankündigung, geschweige denn Datenblätter oder gar fertige ICs gibt. Einzig die Entwicklungstools scheinen schon verfügbar zu sein.

http://www.westerndesigncenter.com/wdc/news2.cfm hat geschrieben:WDC will begin announcing Terbium brand tools and Terbium brand microprocessor technology in 2006.


so long,

Hias
1, 2, 3