Hallo Besucher, der Thread wurde 17k mal aufgerufen und enthält 92 Antworten

letzter Beitrag von aesi am

TurboTrans+ / Turbo Access

  • Ich suche Unterlagen zur Hardware des mit Abstand leistungsfähigsten Floppy Speeder den es je gab: TurboTrans+ bzw. Turbo Access



    Hat sich schon jemand mit der Hardware des Speeder auseinander gesetzt? Oder hat jemand die Firmware schon analysiert? Oder kann mir jemand eines leihen oder verkaufen?



    Ich habe die Hardware soweit am Laufen (1541 mit 512KB RAM), jedoch konnte ich nix genaues finden über die Hardware:

    • Wie funktioniert das Banking?
    • Wie schaut das Memory Modell genau aus?
    • Gibt es sonst irgendwas besonderes an der Hardware?
    • Das parallel Kabel, wie wird das aus Sicht der Floppy angesteuert?



    Wenn mir jemand eines leiht, ich würde es mehrere Wochen benötigen und auch entgelten.


    Wenn mir jemand eines verkaufen möchte, bitte Angebot per PN.

  • Ich hab das Teil von BastetFurry hier rumliegen und komme seit Jahren nicht dazu, es mal zu reversen. Wenn das mit dem Besitzer klar geht, würde ich das aus meinem Verantwortungsbereich wegschieben :-)


    Jens


    Klingt cool, mal abwarten was BastetFurry dazu meint. :)


    Was ist es denn für Version? 3.0, 3.1, 3.4? Oder ist es ein TurboAccess? Hat es maximal Ausbau oder 256K?

  • Jens


    Wenn da schon ein Profi mitliest, hätte ich gleich eine Frage zum 6502:


    • Gibts ein vernünftiges Datenblatt das verfügbar ist als PDF oder sowas?


    • Dieses "Sync" Signal (Pin 7) ist irgendwie nicht gut dokumentiert. "signals fetch cycle" :: heisst dass ich kann daran erkennen dass die CPU Code fetched?!!


      Heisst das, ich könnte Code von einer anderen Bank lesen als Daten? Oder wofür war das sonst gedacht?


  • 6502.org hat eine kleine Auswahl an Datenblättern verschiedener Hersteller.


    Ah danke!



    Soll ich das Ding mal ausbuddeln? Gruß! Jürgen


    ausbuddeln, ja bitte!


    So ein tolles Teil sollte im Einsatz sein, nicht verbuddelt. ;)

  • Sync wird aktiv, wenn ein Opcode geholt wird (vergleichbar M1 auf dem Z80); damit kann man zum Beispiel netten Einzelschritt-Betrieb machen (müßte sogar im Manual stehen?) oder -etwas verwegener- Befehle von externen Coprozessoren ausführen lasssen.


    Zurück zum Thema: Die ROMs der TurboTrans stehen im Netz. Ich kann gern mal gucken ob sich Grundzüge des Mappings erkennen lassen.

  • Bilder habe ich auf meiner Homepage.


    Danke für die aufschlussreichen Bilder. Das TurboAccess scheint noch wesentlich weniger RAM gehabt zu haben, vermutlich 8KB. Was steht denn bitte auf dem 24 poligen Käfer der Floppy Platine? Und was ist das für 14 poliger TTL?


    Vermutlich wird VIA und ROM entfernt, die Platine eingesetzt und das VIA auf die Platine gesetzt? Das Eprom ersetzt das DOS Rom?


    Dann handelt es sich um einen SpeedDos kompatiblen parallel Bus?


    Ist das TurboAccess kompatibel mit dem TurboTrans? Zumindest nach oben, also TurboAccess im C64 und TurboTrans in der Floppy?

  • Sync wird aktiv, wenn ein Opcode geholt wird


    Bei 3 byte Opcode über alle drei Fetch Zugriffe?


    Könnte man also solange Fetch aktiv ist, auf eine "Code Segment" Bank umschalten? Dann hätte man den Adressraum quasi verdoppelt, zumindest halt 64K Codesegment + 64K Datensegment.



    Ich kann gern mal gucken ob sich Grundzüge des Mappings erkennen lassen.


    Ja bitte, das wäre hilfreich!

  • Bei 3 byte Opcode über alle drei Fetch Zugriffe?


    Nein, Opcodes sind beim 6502 immer nur 1 Byte lang, danach kommen 1 oder 2 Byte Parameter. Während der Parameter-Fetches und der Dummy cycles wird "Sync" nicht aktiv.


    Könnte man also solange Fetch aktiv ist, auf eine "Code Segment" Bank umschalten? Dann hätte man den Adressraum quasi verdoppelt, zumindest halt 64K Codesegment + 64K Datensegment.


    Du willst aus einer von-Neumann Maschine eine Harvard-Maschine machen. Das geht nur mit gewaltigem Aufwand, wenn Du nämlich die Opcode-Größen mit scannst und zählst, inklusive DUmmy cycles. Dann könntest Du Code und Daten unterscheiden - wäre machbar, aber meiner Meinung nach sinnfrei.


    Jens

  • Klingt cool, mal abwarten was BastetFurry dazu meint. :)


    Was ist es denn für Version? 3.0, 3.1, 3.4? Oder ist es ein TurboAccess? Hat es maximal Ausbau oder 256K?


    Ich wollte gerade mal nachgucken, aber ich find's auf Anhieb nicht. Es gibt zwei Möglichkeiten: Entweder ich hab's wieder im Bunker abgestellt, dann hat Bastet es schon wieder zurück (das ist gut möglich, weil ich während der großen Inventur zuletzt im Bunker war, also Mitte/Ende Dezember), oder es ist im Rahmen der großen Inventur an einen sicheren Platz verfrachtet worden, der "gehört nicht mir und auch nicht der Firma" bedeutet. Muß ich morgen mal den Mitarbeiter fragen, der die große Inventur-Datenbank-Aktion gemacht hat.


    Bastet, falls Du mitliest - steht der kleine Karton evtl. schon wieder im Bunker?


    Jens

  • Du willst aus einer von-Neumann Maschine eine Harvard-Maschine machen. Das geht nur mit gewaltigem Aufwand, wenn Du nämlich die Opcode-Größen mit scannst und zählst, inklusive DUmmy cycles. Dann könntest Du Code und Daten unterscheiden - wäre machbar, aber meiner Meinung nach sinnfrei.


    Hätte ich nur gemacht wenn es ganz leicht gegangen wäre.


    Aber immerhin interessant, läßt Spielraum für bestimmte Möglichkeiten ...

  • Zur Info:


    Ruud hat mir freundlicherweise das Schaltbild des Turbo Access zur Verfügung gestellt. Ich habe es auf meiner TurboTrans Clone Page veröffentlicht.


    Es ist ein PAL 16R6 im Einsatz, dessen exakte Funktion nicht klar ist. Deshalb ist das Banking noch immer nicht geklärt.


    ======


    Leider bin ich ziemlich ahnungslos was Hardware Dinge anbelangt. Deshalb muss ich auf Vermutungen zurückgreifen. Vielleicht kann mir jemand helfen und meine Überlegungen bestätigen oder widerlegen?



    Meine Überlegungen / Vermutungen:

    • Der Pal dekodiert auf 2K herunter. Keine Datenleitungen, daher kein Register. Die Steuerung (banking, ein- ausblenden) funktioniert also durch Zugriffe im Bereich zwischen internem RAM und IO: ($800 - $17FF und alle Spiegelungen darüber)


    • Der 74LS590 ist ein Binärzähler mit Latch. Zusammen mit Phi2 und PAL wird damit der Refresh erzeugt, der spätestens alle 4ms erfolgen muss beim 41256. Das Refresh erfolgt in der Phi2 Phase und ist daher autark bzw. behindert den "normalen" Datentransfer nicht.


    • Der Adressbus der 6502 ist mit den unteren 9 Adressleitungen angeschlossen. Daraus folgere ich dass immer ein 512 Byte grosses Stück des RAM eingeblendet wird.


    • Rätselhaft finde ich wie A9 und A8 angeschlossen ist?!!! Die eine ist aktiv wenn Phi2 hi und die Andere wenn Phi2 low ist???!!!


    • Das Banking geht vermutlich so:


      Die DRAM Column Adress (CAS) ist die Bank. Weil die wird nicht durch das Refresh durcheinandergebracht.


      Also normale Zugriffe erfolgen im 512 byte Fenster durch anlegen einer Row Adresse (RAS) im Phi1 Takt direkt über den 74LS244.


      Will man die Bank verstellen, muss man einfach eines von 512 Byte in einem zweiten Fenster zugreifen.


      Der PAL erzeugt je nach verwendetem Fenster ein CAS oder RAS Signal.


    • Der 27256 ist wahrscheinlich immer mit 16KB sichtbar ($C000 - $FFFF). Aus dem ROM Listing entnehme ich, dass manchmal 32K eingeblendet sind, weil Adressen um $8000 angesprungen werden.


    • Der SRAM 6264 liegt wahrscheinlich auch ab $8000 oder ab $A000 vermute ich mal. Dabei ist entweder SRAM oder unterer Teil des 27256 eingeblendet.
  • Erstmal: Der Schaltplan ist nicht vollständig, hast Du noch ne zweite Seite auf der der IO-Baustein eingezeichnet ist? Ist schon schwer genug gewesen zu erkennen, dass es sich bei der Ram-Bank um 2x 256KByte handelt, die nur CAS unterschiedlich beschaltet haben.


    Leider bin ich ziemlich ahnungslos was Hardware Dinge anbelangt. Deshalb muss ich auf Vermutungen zurückgreifen. Vielleicht kann mir jemand helfen und meine Überlegungen bestätigen oder widerlegen?


    Also erstmal sei zu Deiner Verteidigung gesagt, dass es sich dabei um gruseligsten Rossmöller-Rotznasenstyle handelt: Timing-Phasen mit Schmitt-Triggern und RC-Gliedern erzeugen ist einfach nicht die feine Art, das driftet ohne Ende mit der Temperatur und ist *eigentlich* nicht beherrschbar. Sowas als n00b zu reversen ist ein Ding der Unmöglichkeit.


    Meine Überlegungen / Vermutungen: 1. Der Pal dekodiert auf 2K herunter. Keine Datenleitungen, daher kein Register. Die Steuerung (banking, ein- ausblenden) funktioniert also durch Zugriffe im Bereich zwischen internem RAM und IO: ($800 - $17FF und alle Spiegelungen darüber)


    Teilweise "Einspruch" - Ja, es wird potentiell auf 2K-Blöcke herunter dekodiert, aber Du kannst nicht wissen, wie das Speicher-Layout wirklich aussieht. Der Schaltplan ist unvollständig, daher weisst Du auch nicht, wie die Abschaltung der Floppy-eigenen Roms aussieht (oder müssen die ausgebaut werden?). Hier traue ich es Ruud durchaus zu, dass er ein Detail übersehen hat: Ist A13 oder A14 wirklich bis zum Mainboard durchverbunden? Irgendwie habe ich in Erinnerung, dass man mit einem festen Pegel auf einer der beiden Leitungen komplett in Speicher-Nirwana greift, was einem "Ultimax mode" der Floppy gleich kommt.


    2. Der 74LS590 ist ein Binärzähler mit Latch. Zusammen mit Phi2 und PAL wird damit der Refresh erzeugt, der spätestens alle 4ms erfolgen muss beim 41256. Das Refresh erfolgt in der Phi2 Phase und ist daher autark bzw. behindert den "normalen" Datentransfer nicht.


    Die Vermutung eines Refresh-Zählers liegt nahe, aber man muß dabei wissen, dass auch wenn die 41256 neun Adressleitungen haben, ein Refresh nur auf den unteren 8 Leitungen stattfinden muß. Würde der 590 für Refresh eingesetzt, dann hätte er Verbindung zu DA0-DA7 der Rams (DA8 nicht angeschlossen). Das ist aber nicht so. Die eine Leitung die nicht angeschlossen ist, ist DA7. Das spricht gegen RAS-Only Refresh und für CAS-before-RAS Refresh - auch wenn dieser Ram-Typ das nicht immer konnte (in der Zeit wurde das grad erst Standard - wer sicher gehen wollte, der hat 41257 eingesetzt).


    Da es sich um ein Rossmöller-Design handelt, wage ich sogar zu behaupten, dass gar kein Refresh gemacht wird. Die Vermutung wird sich aber erst bestätigen, wenn man mal das Ram-Timing anguckt. Wie das klappen kann, siehe weiter unten.


    3. Der Adressbus der 6502 ist mit den unteren 9 Adressleitungen angeschlossen. Daraus folgere ich dass immer ein 512 Byte grosses Stück des RAM eingeblendet wird.


    Ich sehe 10 Adressleitungen, also 1KByte-Fenster.


    4. Rätselhaft finde ich wie A9 und A8 angeschlossen ist?!!! Die eine ist aktiv wenn Phi2 hi und die Andere wenn Phi2 low ist???!!!


    Das ist nicht rätselhaft, sondern clever. Die Adressleitung A8 wird dann aufgelegt, wenn der '244 freigeschaltet ist, die Adressleitung A9 wird aufgelegt, wenn der Ausgang des '590 freigeschaltet ist. Es handelt sich bei den drei Chips um einen hart-verdrahteten 18-auf-9 Multiplexer, bei dem 10 der 18 Adresen von der CPU generiert werden. Die anderen acht kommen aus dem Zähler.



    Hmm... nee, totaler Einspruch. Ja, das PAL erzeugt RAS und zwei CAS, demnach wird im PAL ein weiteres Adressbit generiert (512K Speicher brauchen 19 Adressen, aber wir haben mit dem TTL-Geraffel erst 18 ). Dieses Adressbit findet sich ganz bestimmt an einem der nicht beschalteten PAL-Pins, denn ein PAL hat keine internen Makrozellen. Es ist also zu vermuten, dass der Speicher in einem 1K großen Fenster eingeblendet wird und dass es zwei "action-Adressen" gibt: Eine für "zähle eine Bank weiter" und eine für "setze Bank 0". Außerdem ist das 1K-Speicherfenster in einem 2K-Bereich zwei mal hintereinander gespiegelt. Das müsste eigentlich mit einem logic analyzer recht flott gefunden sein; vielleicht kann man die Platine auch als Erweiterungsplatine an einen VC20 hängen und mal mit einem Speichermonitor durchtickern.



    6. Der 27256 ist wahrscheinlich immer mit 16KB sichtbar ($C000 - $FFFF). Aus dem ROM Listing entnehme ich, dass manchmal 32K eingeblendet sind, weil Adressen um $8000 angesprungen werden.


    Klar, das Eprom *muss* in 16K-Blöcken eingeblendet werden, denn so ist es verdrahtet. Wenn Du in den Code guckst, wirst Du vermutlich schon sehr viel mehr Aussagen machen können, denn mit A14 am PAL köntte man 2K-Bereiche recht dynamisch einblenden. Natürlich ist das mit 8 Produkttermen für die A14-Makrozelle nicht endlos komplex, aber da kann man durchaus Verwirrung stiften. So viel wie Rossmöller selbst kopiert hat, würde es mich nicht wundern, wenn sie an dieser Stelle versucht haben, ein bischen was zu verschleiern.


    7. Der SRAM 6264 liegt wahrscheinlich auch ab $8000 oder ab $A000 vermute ich mal. Dabei ist entweder SRAM oder unterer Teil des 27256 eingeblendet.


    Warum "auch" und woher begründet sich Deine Vermutung?


    Meine Vermutung, dass es sich um ein Refresh-loses Design handelt ist dadurch begründet, dass die Rams zu dem Zeitpunkt schon sehr tolerant waren, aber in jedem Fall noch ein RAS-only Refresh konnten (später gab's Rams, die nur noch CAS-before-RAS Refresh konnten). Wenn man die Adressen geschickt verteilt, kann man alle Rows durch normalen CPU-Zugriff oft genug ansprechen, dass keine Daten verloren gehen. Es würde mich nicht wundern, wenn es im Rom irgendwo eine Routine gibt, die periodisch aufgerufen wird, aber augenscheinlich nichts macht, weil sie nur Daten in einem 1K-Bereich liest und nichts mit diesen Daten macht. Wenn jemand diese Routine findet, dann haben wir auch gleich das Fenster, in dem die 512K eingeblendet werden.


    Wer macht's?


    Jens

  • Vielen Dank für die Erklärungen! Hilft mir sehr weiter.



    Erstmal: Der Schaltplan ist nicht vollständig, hast Du noch ne zweite Seite auf der der IO-Baustein eingezeichnet ist? Ist schon schwer genug gewesen zu erkennen, dass es sich bei der Ram-Bank um 2x 256KByte handelt, die nur CAS unterschiedlich beschaltet haben.


    Nö, Ruud hat mir nur diesen Schaltplan überlassen.


    Zudem handelt es sich anscheinend um das ältere TurboAccess und nicht um das TurboTrans?



    Der Schaltplan ist unvollständig, daher weisst Du auch nicht, wie die Abschaltung der Floppy-eigenen Roms aussieht (oder müssen die ausgebaut werden?).


    ich gehe davon aus dass die originalen ROMs ausgebaut werden. In der TT Firmware ist alles enthalten was normal im ROM ist. Teilweise doppelt im oberen und unteren 16K Block der Firmware.



    Das ist nicht rätselhaft, sondern clever. Die Adressleitung A8 wird dann aufgelegt, wenn der '244 freigeschaltet ist, die Adressleitung A9 wird aufgelegt, wenn der Ausgang des '590 freigeschaltet ist. Es handelt sich bei den drei Chips um einen hart-verdrahteten 18-auf-9 Multiplexer, bei dem 10 der 18 Adresen von der CPU generiert werden. Die anderen acht kommen aus dem Zähler.


    Ich blick das ehrlich gesagt immer noch nicht:


    Die DA7 (des DRAM) wird nur von A8 und A9 der CPU versorgt, soweit klar. Nur wird einmal die Phi1 und einmal die Phi2 Phase verwendet?!


    Ich verstehe schon, dass dadurch einmal die Zeile (RAS) und einmal die Spalte (CAS) adressiert wird. Nur dachte ich eigentlich immer, dass in der Phi2 Phase die Adressen der 6502 ungültig sind?? Bzw. eigentlich sogart der Bus frei ist, weil in der 8050 greigen ja die CPUs abwechselnd auf RAM zu?



    Es würde mich nicht wundern, wenn es im Rom irgendwo eine Routine gibt, die periodisch aufgerufen wird, aber augenscheinlich nichts macht, weil sie nur Daten in einem 1K-Bereich liest und nichts mit diesen Daten macht. Wenn jemand diese Routine findet, dann haben wir auch gleich das Fenster, in dem die 512K eingeblendet werden.


    Wer macht's?


    Ich bin dabei die Firmware näher anzusehen. Etwas mühselig wenn man nicht genau weiss wo was liegt. Aber Schritt für Schritt kommt man der Sache näher ...