Der MOS Kim-1 Computer - Geschichte, Technik, Details

Поділитися
Вставка
  • Опубліковано 16 гру 2024

КОМЕНТАРІ • 7

  • @mrysSOFTWARE
    @mrysSOFTWARE 3 роки тому

    Danke für den Beitrag! 👍 Ich arbeite gerade an einem Scrolltext. Quelltext zur Analyse vorhanden?

    • @FarFromZero
      @FarFromZero  3 роки тому +1

      Den gab es mal, aber ich denke eher nicht, dass ich den aufbewahrt habe. Ich schau die Tage mal nach.

    • @FarFromZero
      @FarFromZero  3 роки тому

      Hier ist der komplette Text des Videos, hatte ihn doch noch. Irgendein Urheberrecht erhebe ich auf den Text als solchen nicht, auf das Video natürlich schon. Bitte berücksichtige, dass das eine oder andere Wort im Video von diesem Text abweichen könnte, aber insgesamt sollte er sehr gut übereinstimmen. Viel Spaß und Erfolg. Jetzt der Text:
      Heute hier vorgestellt wird der KIM-1 Einplatinencomputer von MOS Technology, der 1975 entwickelt und ab 1976 verkauft wurde. Er kam noch vor dem Apple 1 auf den Markt und darf als einer der allerersten Einplatinencomputer überhaupt angesehen werden.
      Der Kim-1 wurde ab 1976 mit einer 6502 CPU, 1 Kilobyte RAM und 2 Kilobyte Rom, einer hexadezimalen Tastatur und mit sechs Sieben-Segment-Anzeigen ausgeliefert. Die CPU wird mit 1 MHz getaktet, was bedeutet, dass Maschinen-Befehle in 2 bis 7 Mikrosekunden ausgeführt werden können.
      Auffällig ist die große Kompaktheit des Computers, hier findet man kein Wirrwarr von TTL-Schaltkreisen. Das ist darauf zurückzuführen, dass der Hersteller eigentlich ein Chip-Hersteller war. MOS stand für Metal Oxide Semiconductor, was auf Deutsch lediglich „Metalloxid Halbleiter“ bedeutet. Dieser Firmenname ist also eigentlich nicht mehr als eine Abkürzung.
      MOS produzierte daher die für den Betrieb notwendigen Halbleiterbausteine einfach selbst, und zwar genau so aufgebaut und integriert, wie es für diesen Computer erforderlich und sinnvoll war. Sogar die CPU selbst wurde von MOS gefertigt und sollte mithilfe dieses Computers potenziellen Computer-Herstellern schmackhaft gemacht werden. Man gab den Entwicklern also etwas Interessantes zum Spielen, in der Hoffnung, sie würden am Arbeitsplatz gerne damit weiterspielen und diese CPU in ihre neuen Computerprojekte integrieren. Das hat auch funktioniert, diese CPU befindet sich zum Beispiel im ersten Apple-Computer, später tauchte sie leicht modifiziert im VC20 und auch noch im C-64 auf. Aber sie wurde nicht nur in Personal und Spiele-Computern verwendet, sondern auch in Flippern, Schachcomputern und auf wahrscheinlich unzähligen Platinen für die Industrie und die Forschung.
      Das lag aber wohl nicht allein an dieser erfolgreichen Promo-Aktion von MOS, sondern auch daran, dass diese 6502 CPU wirklich innovativ war und den intuitiven Wünschen von Programmierern sehr entgegenkam. Sie hat einen fast orthogonalen Befehlssatz mit vielen Adressierungsarten und verfügt auch über relative anstatt ausschließlich absolute Sprungbefehle, was das Schreiben von Programmen erleichtert, die ohne viel Aufwand an beliebige Speicheradressen angepasst werden können. Es muss auf der anderen Seite aber auch gesagt werden, dass diese CPU lediglich 3 Register bietet, die allesamt nur 8 Bit breit sind und dass diese CPU, vor allem in den ersten Herstellungsreihen, noch sehr verbuggt war. Leider wurde auch etwas an Befehlen gespart, so haben viele der 256 möglichen 8-Bit breiten Opcodes keine sinnvolle Funktion oder führen sogar zu einem Absturz der CPU, der nur mittels Reset behoben werden kann. Dabei hätte es durchaus noch einige sinnvolle Befehle gegeben, die man als Programmierer zu vermissen beginnt, sobald man längere Programme in Assembler schreibt. Viele dieser Befehle wurden dann auch in einer späteren Variante dieser CPU, der 65C02 Version, implementiert.
      Nach dem Erscheinen des KIM-1 als Demonstrations- und Spiel-Computer für die Entwickler-Branche passierte etwas, mit dem bei MOS niemand gerechnet hatte. Privatanwender stürzten sich zuhauf auf das Gerät und erzeugten eine riesige Nachfrage. In der Folge wurde das Gerät viele Jahre produziert und eigentlich erst mit dem Erscheinen des VC20 aus dem Markt gekegelt. Die hohe Zahl an produzierten Einheiten ist wohl ein Grund dafür, dass es viele Geräte bis in die heute Zeit geschafft haben und sogar noch viele funktionsfähige darunter sind. Trotzdem verdoppelt sich der Preis für diese Computer alle paar Jahre und inzwischen ist ein gut erhaltenes Exemplar nur selten unter 1.000 US-Dollar zu bekommen.
      Aber zurück zum KIM-1 und seiner Hard- und Software. Neben der 6502 CPU spielt natürlich das RAM eine wichtige Rolle, welches hier in Form von 8 ICs vorliegt, also mit 8 Bausteinen von 1024 x 1 Bit realisiert wurde. Damals waren diese Bausteine noch sehr teuer und das hinderte die Hersteller daran, deutlich mehr RAM einzubauen. Die Computer wären dann preislich unattraktiv geworden. Neben der CPU am interessantesten dürften aber die beiden Bausteine mit der Bezeichnung 6530 sein. Bei diesen ICs waren die Virtuosen von MOS am Werk und erzeugten darin eine Art Allround-Schaltkreis. So wurden in diesen ICs zunächst 64 Byte RAM, zwei Ports a 8 Bit, ein Timer und schließlich noch 1 KB ROM realisiert. Da auf dem KIM-1 zwei dieser Bausteine verbaut sind, verfügt dieser Computer also über genau 2 kB ROM. Etwa die Hälfte davon ist allein IO-Operationen wie dem Speichern auf und Laden von Datasette gewidmet . Aber auch das übrige kB ROM beschäftigt sich mehr mit den Anschlußmöglichkeiten eines Teleprinters als mit Eingabe- und Anzeigeroutinen oder irgendwelchen Routinen, die dem Anwender zur Verfügung stehen. Genau genommen kann KIM-1 in seinem Monitor-Programm nur den Inhalt von Speicherstellen anzeigen und durch den Anwender verändern lassen. Das war's, alles andere durfte der Anwender entweder selbst programmieren - oder es in Form von Programmen auf Kassetten käuflich erwerben.
      Dass in den beiden 6530er Bausteinen im Prinzip alle Festspeicherinhalte wie auch sämtliche IO-Fähigkeiten des KIM-1 realisiert wurden, war Ende der 70er ein Segen, da es den Aufbau der Platine vereinfachte und die Herstellungskosten deutlich reduzierte. Heute ist es eher ein Fluch, weil ein 6530 IC somit fast ein Unikat ist. Nicht einmal die beiden auf dem KIM-1 selbst verbauten 6530er sind identisch, da sie unterschiedliche ROM-Inhalte haben, und daher sind sie auch nicht gegeneinander austauschbar. Dies gilt erst Recht für die in anderen Computern und Platinen verbauten 6530er. Vielmehr muss bei diesem IC auch die dreistellige Folgenummer identisch sein, damit diese kompatibel sind. Das hat zur Folge, dass es kaum noch Ersatz für einen defekten 6530 aus einem KIM-1 gibt und die Preise für diese beiden ICs in die Höhe geschnellt sind. Zumindest etwas tröstlich mag es aber sein, dass man bei MOS die Funktionen dieser beiden ICs sehr geschickt aufgeteilt hat. So ist das RAM und der IO-Bereich von einem der beiden nur für den Anwender reserviert - KIM greift darauf nicht zu. Nun hat man das KB des ROMS, das nicht unbedingt im Editor-Betrieb benötigt wird, auch auf diesen 6530 gelegt. Mit dem Ergebnis, dass der KIM-1 im Demo- oder reinen Monitor-Betrieb auch dann noch funktioniert, wenn der 6530 für den Anwender den Geist aufgegeben hat bzw. sogar entfernt wurde.
      Ein aus heutiger Sicht sehr interessanter Aspekt dieses Computers ist, dass die CPU im KIM-1 noch keine Angestellten hat. Bereits im VC20, im C-64 und natürlich erst recht im Commodore Amiga stehen der CPU eine Vielzahl von Hilfs-ICs zur Verfügung, die sich um die Bild- und Tonausgabe, die Tastatur, den Speicherrefresh, den DMA-Zugriff und viele weitere Aufgaben kümmern und so die CPU entlasten. Das ist hier ganz anders. Alle Aufgaben muss die CPU selbst erledigen und bekommt dabei aber auch nicht die geringste Unterstützung.
      Betrachten wir als Beispiel die sechs Sieben-Segment Anzeigen, kann man feststellen, dass es sich bei der Anzeige sechsstelliger Ziffern eigentlich um eine Art optischer Täuschung handelt. Nun gut, nicht im wörtlichen Sinne, weil die Segmente natürlich nachleuchten. Das soll bedeuten, dass die CPU auch hier nicht den Hauch von Unterstützung hat. Es gibt weder Register, noch Latches oder sonst was, wo die aktuellen Display-Werte gespeichert und immer wieder angezeigt werden. Selbst diesen Minimalkomfort hat die CPU im KIM-1 nicht. Vielmehr muss die CPU regelmäßig alle Anzeigen selbst neu berechnen und aktivieren und zwar eine nach der anderen. Ganz genau, das heißt, dass beim Kim-1 zu einer Zeit maximal eine der sechs Anzeigen leuchtet. Der Eindruck, dass alle 6 Anzeigen gleichzeitig leuchten, beruht allein auf einem Nachleucht-Effekt dieser Anzeigen.
      Dieses Verfahren hat natürlich Schattenseiten. Wenn die CPU intensiv am Rechnen ist, bleibt die Anzeige dunkel. Oder, unterbricht man ein Programm - z. B. durch einen NMI - und sorgt dafür, dass die CPU die Anzeige nicht mehr erneuern kann, bleibt oftmals genau eines der 6 Elemente aktiviert und zeigt, sehr viel stärker leuchtend, den letzten Wert an. Das starke Leuchten interpretieren viele Anwender dann als kritischen Fehlerzustand, in dem etwas „durchbrennen“ könnte. Tatsächlich leuchtet die Anzeige nur deshalb heller, weil sie nun alleine permanent aktiviert ist und nicht nur maximal ein Sechstel der Zeit. Strom- und Spannungswerte am Treibertransistor sind aber unkritisch, sodass auch langes Leuchten keine Schäden verursachen dürfte. Allerdings - stundenlang sollte man den Rechner nicht in diesem Zustand lassen, weil das sicherlich Auswirkungen auf die Leuchtkraft einzelner Segmente hat und die im Laufe der Zeit dann unterschiedlich stark leuchten dürften, was man natürlich nicht haben will.
      Zuletzt möchte ich demonstrieren, anhand eines kleinen Programmes, was eigentlich wirklich passiert, wenn die CPU Werte in den 7-Segment-Anzeigen darstellt. Dazu verlangsame ich die Geschwindigkeit der Anzeige, solange, bis sichtbar wird, wie der Anzeigevorgang tatsächlich abläuft. Ich danke für's Zuschauen und hoffe, es war für jeden etwas dabei, was noch neu für ihn war. Bis bald.

    • @mrysSOFTWARE
      @mrysSOFTWARE 3 роки тому

      Hallo Fünfvolt, danke. Kleines Missverständnis: Ich dachte mehr an den Quelltext. Ich spiele gerade ein bisschen damit, bekomme auch Text aufs Display, nur mit dem Scrollen hadere ich noch ein wenig 😊

    • @FarFromZero
      @FarFromZero  3 роки тому

      @@mrysSOFTWARE Du meinst die Projektdaten und die Projektdatei des Videos?

    • @mrysSOFTWARE
      @mrysSOFTWARE 3 роки тому

      @@FarFromZero Hi Fünfvolt. Was ich meinte ist der Assembler Quelltext, so das ich da mal ein wenig Analyse betreiben kann. Meiner sieht aktuell so aus, allerdings bekomme ich noch nicht das Ergebnis was ich erwartet hätte: