KIM-1 Nachbau

OP #6652878
Lesenswert?

Hallo,

da Winter, Corona mit sozialen Einschränkungen und Rentnerdasein auf den 
gleichen Wochentag fielen, habe ich beschlossen, den KIM-1 Single-Board 
Computer basierend auf dem 6502 Prozessor nachzubauen. Dieses Board 
hatte ich 1977 gekauft und mit dynamischen RAMs, Tastatur und TV-Monitor 
sowie Microsoft BASIC aufgemotzt. Damit war ich der einzige an der Uni, 
der einen eigenen Computer besaß. Die Kommilitonen durften weiterhin mit 
Lochkarten die CDC-6000 bestücken. Leider ist das Unikat irgendwann auf 
dem Wertstoffhof gelandet.

Beim Nachbau habe ich soweit wie möglich die gleichen Bauteile 
verwendet, jedoch mit 32 KByte RAM und 8 KByte EEPROM aufgemöbelt. 
Darüber habe ich eine Integrated Development Environment (IDE) zum 
Editieren, Assemblieren und Debuggen von 6502 Assembler Source Code 
entwickelt, siehe My-KIM-IDE.exe (braucht keine Installation). Mit 
dieser IDE kann der KIM-1 Nachbau auch im sogenannten TTY Mode betrieben 
werden (RS232 mit USB Adapter). Außerdem kann Microsoft BASIC in der 
Version 1.1 aus dem Jahr 1977 (KB9.BIN) geladen werden und die Programme 
können auf dem PC gespeichert werden.

Das Projekt ist im attached ZIP File vollständig dokumentiert, siehe das 
60-seitige My_KIM.pdf Dokument. Nur die drei eingescannten KIM-1 
Original Handbücher (User-Manual, Programming-Manual, Hardware-Manual), 
sowie die gescannt Version des Buches "The First Book of KIM" habe ich 
nicht ins ZIP File gepackt, da sie zu groß sind. Kann sie aber bei 
Bedarf nachliefern.

Bei einem eventuellen Versuch eines Nachbaus wünsche ich viel Vergnügen 
!
Angehängte Dateien:
Gast #6811097
Lesenswert?

Der KIM hat ja zwei 6530-00x RRIOTs [1], die neben ROM, RAM und IO auch 
noch einen Timer enthalten. ROM und RAM lassen sich ja gut ersetzen. Für 
die IO hast Du einen 8255 genommen, ok. Aber wie hast Du die Timer 
ersetzt?
In der Firmware kann man das vielleicht durch Delays realisieren, aber 
in Anwenderprogrammen?

Andere Nachbauten, wie der MicroKIM oder Corsham nutzen einen 6532 RIOT 
als Ersatz. Waren Dir diese Lösungen bekannt?

Ansonsten: Eine sehr vorbildliche Doku, ich wünschte mir, mir würde Doku 
schreiben leichter fallen...


Manfred L. schrieb:
> sowie Microsoft BASIC aufgemotzt
BASIC erleichtert zwar den Einstieg, durch den Interpreter werden die 
eigentlichen Programme aber auch verhältnismäßig langsam.
Seit 1977 ist sich Microsoft treu geblieben: Mit Microsoft auf der 
Kiste, steigt der Wunsch nach mehr Ressourcen...


[1] https://en.wikipedia.org/wiki/MOS_Technology_RRIOT
#6811126
Lesenswert?

Bernd schrieb:
> Aber wie hast Du die Timer ersetzt?

Seine Doku: "KIM-1 uses the timer in the 6530-003 device to generate the 
audio tape data stream. Because My-KIM doesn’t have a hardware timer, 
the timer functionality is realised in My-KIM by a dedicated, but 
accurate delay software (subroutine WAIT)."

Ich wäre allerdings nicht auf die Idee gekommen, ausgerechnet einen 8255 
zu verwenden. Allein schon wegen der fehlenden Möglichkeit, die Pins des 
8255 einzelbitweise als Ein- oder Ausgang zu definieren. Kriegt man 
Bausteine wie 6532 oder 6522 nicht mehr?
Gast #6811147
Lesenswert?

Manfred L. schrieb:
> Das Projekt ist im attached ZIP File vollständig dokumentiert

Super.

Die KIM waren damals sehr praktisch.

Der erste (erschwingliche, na ja, alles ist relativ) single board 
computer mit dem man gleich das Programm entwickeln konnte, ohne einen 
richtigen Computer daneben zu haben.

Obwohl ein Crossassembler ein Fortschritt war.

Und wenn dann das Thermometer, die Uhr, die Prozesssteuerung lief, 
wunschte man sich eine kleine Platine ohne Eingabemöglichkeit nurit 
Anschlussmöglichkeit für Display und Einzeltasten, und ohne 
Kassetteninterface aber mit RS242, auf das man dann ein EPROM stecken 
konnte, das kam dann mit den EMUF, leider nicht 100% kompatibel
Gast #6811153
Lesenswert?

Hallo,

ich habe noch einen originalen KIM-1. Funktioniert einwandfrei, die zwei 
32 poligen(?) Buchsenleisten sind auch noch vorhanden sowie das DIN-A4 
Handbuch.

Verschenken möchte ich ihn aber nicht.

Falls jemand Interesse hat kann er das ja hier kundtun. Ich melde mich 
dann.

Günther

BTW. Ein voll funktionsfähiger AIM-65 steht auch noch zur Verfügung.
OP #6811156
Lesenswert?

Bernd schrieb:
> Aber wie hast Du die Timer
> ersetzt?

Wie (prx) schon geschrieben hat, gibt's die WAIT subroutine. Die ist 
zwar nicht auf die Nano-Sekunde genau (1 MHz Quarz), erfüllt aber alle 
Anforderungen des Betriebssystems.

Bernd schrieb:
> ich wünschte mir, mir würde Doku schreiben leichter fallen...

... ist ein Hobby von mir ;-) denn was nützt das beste Gerät, wenn nix 
und garnichts dokumentiert ist ?

(prx) A. K. schrieb:
> Ich wäre allerdings nicht auf die Idee gekommen, ausgerechnet einen 8255
> zu verwenden.

Ja, Du hast vollkommen recht, der 8255 ist schon so eine Krücke. Ich 
habe lange hin und her überlegt, aber die Signal Kompatibilität zu den 
6530-003 devices hat mich dann davon überzeugt, diesen zu nehmen.

Die original 6532 oder 6522 sind definitiv nicht mehr zu bekommen, es 
sei denn, es besitzt noch jemand eine Original KIM-1 Platine und 
schlachtet sie aus. Ich würde ihn aber tunlichst davon abraten, denn 
diese Platinen, die noch funktionieren, werden in der Bucht bis zu 1000$ 
angeboten. Ich hab' jedenfalls, als ordentlicher deutscher 
Entsorgungs-Bürger, meine KIM-1 Platine im Jahr 2005 beim örtlichen 
Werstoffhof "hinterlegt" - war wohl zu dieser Zeit etwas geisteskrank !
Gast #6811169
Lesenswert?

MaWin schrieb:
> Obwohl ein Crossassembler ein Fortschritt war.

Genau das! Erste Berührung hatten wir mit dem Siemens PC100, was ja nur 
ein AIM65 im chicen Gehäuse war, da saßen wir recht hilflos vor.

Sinnvolle Anwendungen sind erst später entstanden, nachdem ich einen 
Mekroassembler hatte - zuerst auf dem cbm3032, später auf einem PC.

Manfred L. schrieb:
> Die original 6532 oder 6522 sind definitiv nicht mehr zu bekommen,

Was willst Du denn ausgeben? Ich habe beide ICs noch im Bestand und 
vermutlich noch mehr. Oder geht es um einen speziellen Hersteller?
#6811180
Lesenswert?

Manfred L. schrieb:
> Falsch: Ich habe den Original Rockwell 6502-2 verwendet, sieht man auch
> im obigen Bild. Der kann zwar 2 MHz, läuft bei mir aber mit 1 MHz.

WDC steht nicht drauf, stimmt. Aber ich meine, da R65C0x zu lesen, also 
CMOS- statt NMOS-Version. Das Original hiess R6502, oder R6502A bei 
2MHz. Und Rockwell hatte die CMOS-Version bei WDC lizenziert.
Gast #6811218
Lesenswert?

(prx) A. K. schrieb:
> Aber ich meine, da R65C02 zu lesen,
> also CMOS- statt NMOS-Version.

Böse Falle: Die CMOS kennen ein paar Befehle, die der NMOS nicht kann. 
Da gab es auch noch Varianten, 65C02 oder 65SC02.

Es ist ewige Jahre her, dass ich 65xx und 68xx Controller benutzt habe, 
da kam ich schon einmal durcheinander. Das 6502 Zielsystem (NMOS) fliegt 
ab, anstatt der CPU den Emulator rein, lief es - der Emulator hat eine 
CMOS-CPU. Keine Ahnung mehr, ob es Stunden oder Tage gedauert hat, das 
zu finden und zu ändern.

Schön war, dass man die CMOS-CPU anhalten konnte, Oszillator aus und 
Minuten später an genau dieser Stelle weitermachen konnte. Das habe ich 
einmal ausnutzen müssen, weil auf dem Prüfplatz einer 
Rufempfängerplatine die Oberwellen des CPU-Systems den Abgleich des 
Empfängers unmöglich machten.

Björn W. schrieb:
> 6522 gibt es jeweils 2 Stück in alten Commodore 1541 Floppy-Disk
> Laufwerken.

Ich habe keine Unterlagen mehr, mit dem Kollegen aus dem Meßtechniklabor 
der PTB habe ich damals eine Platine entwickelt, der 1541 IEEE-488 
beizubringen. Da gab es neben den cbm den Rohde&Schwarz PUC, in dessen 
Innenleben sich die Platine eines 4032 versteckte, mit einer 
Zusatzplatte auf dem internen Expansion-Port.

Manfred L. schrieb:
> Ja, das mag richtig sein, aber MOS hatte für jeden Geräte-Hersteller
> spezielle Input/Output IC Versionen hergestellt.

Soweit ich weiß, war MOS eine Commodore Tochter und hat ihre Steine 
nicht auf dem freien Markt verkauft. Ich denke speziell an den 
Portbaustein RIOT des C64, 6530 ???
Gast #6811482
Lesenswert?

Harald W. schrieb:
> Dann war aber eure Uni wirklich etwas rückständig.

Ach nö. Unterscheide mal zwischen dem Job-Betrieb, wo man seinen 
Rechenjob in Algol oder Fortran an der Luke des Rechenzentrums als 
Blechkasten mit Lochkarten abgab und dem eher selbständigen Arbeiten an 
einem im Institutsgebäude aufgestellten Rechner. Da hatte man auch als 
Student mit Lochband usw. zu tun - aber man mußte es selber wieder 
aufrollen... Das war so in den 70er Jahren die übliche Mode und hat 
überhaupt nichts mit Rückständigkeit zu tun.

W.S.
Beitrag #6812914 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren