Hello, Guest the thread was called72k times and contains 2241 replays

last post from ralf02 at the

Nachbau eines Apple 1

  • Den SID-Nachbau habe ich im c64 geprüft, der funktioniert. Ich werde die SID-Karte mal ohne ICs testen. Grund kann allerdings auch sein, dass mein 2x22 Slot im A1 mittlerweile so ausgeleiert ist, dass da Wackelkontakte sind. Ich habe mir jetzt aus China erstmal neue bestellt, die kommen so bis Ende Oktober ....

    Es ist sinnvoll die Kartenstecker unten etwas anzufasen.

    Das musste ich auch bei den MCA-Soundkarten machen. Im Original haben MCA-Karten 20 Grad Fase an beiden Seiten. ISA-Karten sind nur etwas abgerundet an dem Stecker.

  • So der Bootloader ist erfolgreich hochgeladen. Ich habe es mit der Arduino-IDE (6-Pin ICSP) und einem "Arduino as ISP" gemacht. Anschließend lies sich die .ino Firmware einfach kompilieren und über USB hochladen.


    Der MM5740 EMU sollte ja jetzt schon rudimentär funktionieren. Für den Betrieb in der Datanetics Tastatur lautet die Übersetzung der ungarischen Anleitung wie folgt:


    "Der fertige Emulator kann mit minimalem Umbau in der Originaltastatur verwendet werden, im Folgenden sehen wir, was beim Wechsel der Originaltastatur geändert werden muss.


    Da die Ausgänge und Eingänge des Emulators mit dem ursprünglichen MM5740 abgeglichen wurden, ist tatsächlich eine einzige Konvertierung erforderlich. Wir brauchen das 2,5-Hz-Wiederholungssignal nicht. Das Signal wird von einem IC 555 erzeugt, dessen Ausgang (Pin 3) abgeklemmt und mit GND verbunden werden muss. Es kann direkt oder über einen 20-Ohm-Widerstand erfolgen. Nach dieser Änderung ist die ursprüngliche Tastatur nun betriebsbereit."


    Dazu folgendes Bild:




    Also werden wohl beide 555 nicht benötigt. Da ich sie beide gesockelt habe, ist das ja kein Problem. Und beim rechten 555-Sockel soll dann zwischen die Pins 1 und 3 ein 20 Ohm Widerstand. Werde ich morgen ausprobieren ....

  • Heute habe ich den MM5740-Emulator in der Datanetics-Tastatur eingesetzt, die beiden 555 Timer rausgenommen und bei dem rechten Sockel zwischen den Pins 1 und 3 einen 18 Ohm Widerstand "eingesteckt":



    Die Schaltung funktioniert ! Vom "Feeling" her finde ich die Bedienung der Tasten auch angenehmer als mit dem anderen 5740-Ersatz, man kann viel schneller tippen ohne das Zeichen "verschluckt" werden. Allerdings funktionieren - wie in der Anleitung dargestellt - die Sonderzeichen nicht bzw. es kommen andere Zeichen.


    Dazu muss die Datei "kodlap.h" entsprechend geändert werden. Mit diesen Prgrammierungen kenne ich mich leider überhaupt nicht aus .... könnte jemand die Codedatei entsprechend ändern, sodass es für den A1 bzw. die Datanetics passt ?


    Hier ein Foto einer Datanetics-Tastatur mit den Positionen der Sonderzeichen:



    Und hier die Firmware-Dateien als ZIP gepackt:


    MM5740konverter.zip

  • Ich versuche nach wie vor, die Firmware entsprechend zu ändern, damit auch bei dem "ungarischen" MM5740-Emulator die Zeichen auf dem Bildschirm erscheinen, deren Tasten ich drücke .... Folgende Zeichen werden falsch dargestellt:


    statt : kommt -

    statt * kommt _ (und ab und zu auch zusätzlich CR)

    statt - kommt =

    statt = kommt +

    statt + kommt :


    Mit dem MM5740 von Ebay kommen alle Zeichen richtig. Der ungarische Erbauer des MM5740-Emulator hat in dieser Excel-Tabelle die Zeichen und Codes dargestellt:


    codepage.zip


    Hier die Tastaturmatrix der Datanetics-Tastatur:



    Und hier die Tastenbelegung meiner Tastatur:



    Vielleicht kann jemand das Puzzle lösen und mir erklären, welche Bytes ich in der codelap.h (Post#2225) ändern muss, damit die Zeichenausgabe stimmt ?

  • So ich habe das "Puzzle" jetzt selber lösen können und alle Tasten werden nun korrekt angezeigt. Wenn man erstmal das Prinzip begriffen hat, ist es eigentlich ganz einfach. So ist es auch möglich, sich eigene "Custom" - Tastenbelegungen zu programmieren. Die entsprechende Firmware ist über USB-Kabel mit der Arduino IDE in Sekunden hochgeladen ....

  • Also ich bin pragmatisch vorgegangen und habe erstmal ermittelt, welche Tasten falsch belegt waren:


    Bei meiner Tastatur waren folgende 5 Tasten falsch belegt:


    statt : kam -

    statt * kam _

    statt - kam =

    statt = kam +

    statt + kam :


    Dann habe ich in der Excel-Tabelle die "Position" und Codes der falschen Zeichen ermittelt:


    - (unshift 93 = 2D)

    _ (shift 93 = 5F)

    = (unshift 92 = 3D)

    + (shift 92 = 2B)

    : (shift 43 = 3A)


    und dann habe ich an diesen Positionen in der kodlap.h die Codes der "richtigen" Zeichen gespeichert:


    : (unshift 93 = 3A)

    * (shift 93 = 2A)

    - (unshift 92 = 2D)

    = (shift 92 = 3D)

    + (shift 43 = 2B)


    Dann habe ich die so modifizierte kodlap.h kompiliert und hochgeladen und .... es funktioniert.



  • Hallo Zusammen, nach einer längeren Pause möchte ich Euch gerne mitteilen, das mein A1 jetzt endlich funktioniert. Ich bin zwar nicht so weit wie Ihr aber langsam ernährt sich das Eichhörnchen.


    Letztendlich war es nur ein defekter AM2804. Jetzt kann ich langsam weitermachen. Und ich möchte mich auch noch bei Euch für die Unterstützung bedanken.


  • Super, freut mich zu hören, dass es letztenendlich doch geklappt hat. Ich denke als nächstes wäre das wichtigste Teil der PIA - Arduino nano Adapter (falls Du ihn nicht schon hast) ? Damit kannst Du dann bequem vom PC Programme als TXT-Files in den A1 laden. Hier meine Programmsammlung zum Download:


    TXT.zip


    Nach Abschluss des MM5740-Emulator Projekts mache ich nun mit der SID - Karte weiter. Sie ist fertig aufgebaut, aber ich habe das Problem, dass immer wieder kein Reset kommt bzw. Basic nicht funktioniert, wenn ich die SID-Karte im A1-Slot oder auf den Expander einsetze. Die Verdrahtung auf der SID-Karte habe ich mehrfach überprüft, sie ist korrekt. Den Micro-SID habe ich nochmals im C64 getetst, funktioniert auch. Ich vermute, dass ein ausgeleierter 2x22 Slot auf dem A1 zumindest mitbeteiligt ist an dem Problem. Daher habe ich mir ein 3er Pack aus China bestellt (dort hatte ich schonmal die 3 Slots für meinen Expander bestellt). Darin stecken die Karten zwar extrem "stramm", aber besser so, als wenn die Karte im Slot hin- und herkippelt und es Wackler und Fehlfunktionen gibt.

  • Super, freut mich zu hören, dass es letztenendlich doch geklappt hat. Ich denke als nächstes wäre das wichtigste Teil der PIA - Arduino nano Adapter (falls Du ihn nicht schon hast) ? Damit kannst Du dann bequem vom PC Programme als TXT-Files in den A1 laden. Hier meine Programmsammlung zum Download:

    Vielen Dank Ralf,


    Und ja den PIA Adapter habe ich auch schon fertig. Der funktioniert auch. Den musste ich bauen, damit ich dieses Tastatur/Zeichen Problem eingrenzen konnte. Am Ende blieb nur noch eines der Shift Register. Ich hatte tatsächlich alle ICs getauscht. Bis auf die 2804. Davon hatte ich keine mehr. Ich habe demzufolge 2 Stück zum testen aus UK bestellt.

  • Mor33z willkommen im Club :bia


    Dann ist eigentlich die "nächste Übung" die ACI Karte erfolgreich am laufen zu haben :)

    http://www.willegal.net/appleii/aci-v0.18.pdf


    mein "zweiter" Apple1 war ja nur ein "Show-Rechner im Koffer ".. wurde ja auch so auf der DORECO gezeigt:


    +


    ich baue gerade das dritte Board auf,.. und dieses wird nun auch original Widerstände und das

    NTI Board mit Goldkontakten an der Leiste sein. Somit bin ich dann nahezu 99% original..

  • und wegen dieser ganzen Testerei mit den TTLs und Co. Da habe ich mir jetzt auch noch mal diesen Tester zusammengebaut. Auf diese Chinesischen Tester kann man sich nicht unbedingt verlassen. Und Ja die LED ist falsch herum sonst würde sie Leuchten. Korrigiere ich gleich :thumbsup:


  • Der EMU ist übrigens kein vollständiger Ersatz.

    X9 ist mit X1 verbunden Was die 0 in die selbe Reihe bewegt wie Q, ESC, A, Z und 1/!

    B9 gibt es auch nicht.

  • Der EMU ist übrigens kein vollständiger Ersatz.

    X9 ist mit X1 verbunden Was die 0 in die selbe Reihe bewegt wie Q, ESC, A, Z und 1/!

    B9 gibt es auch nicht.

    Also ist der unbrauchbar und kann nicht alle Tasten senden???

    TL;DR:

    Doch kann man.


    Lang Version:

    Nein, das bedeutet es nicht.

    Jede Tastatur ist in eine Matrix aus Reihen (Zeilen) und Spalten aufgeteilt. Diese hat mit dem Physikalischen Layout weniger zutun.

    Die 0 ist bei der Datanetics in einer eigenen Reihe organisiert.

    Genau genommen wird nicht die 0 von der Reihe 1 in 9 verschoben sondern alle Tasten aus Reihe 9 (Q, ESC, A, Z und 1/!) in Reihe 1. So genügen 8 statt 9 Reihen Leitungen um die Matrix abzufragen.

    Mit 8 Reihen und 10 Spalten kann man insgesamt 80 Tasten abfragen. Dazu kommen noch Shift, Shift Lock und Control.

    Der MM5740 kann also deutlich mehr Tasten (93) verwalten als die Datanetics Tastatur (53) Tasten hat.

  • Wenn der EMU die Tastatur Matrix scanned schaltet er die Spalten eine nach der anderen auf 5V.

    Und schaut dann auf welchen Reihenleitungen Signal kommt (je nach dem welche Tasten gedrückt würden).

    Der original MM5740 macht es umgekehrt und schaltet die Reihen durch und schaut was auf Spalten ankommt.

    Um die Apple I Tastatur abzubilden würde also eine 8x8 Matrix wie beim C64 genügen.

    Man nutzt größere Matrixen um Tastenkombinationen (gemeint ist nicht Shift oder Ctrl) störungsfrei zu ermöglichen.

    Beispiel WASD und Space.

  • OK, also meintest du nur das der Atmega nicht den Original Chip 100% nachbildet, aber die Funktion in der Tastatur ist letztendlich voll gegeben.


    Christian