Forum: Projekte & Code KIM-1 Nachbau


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Manfred L. (manni)


Angehängte Dateien:

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 
!

von Bernd (Gast)


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

von (prx) A. K. (prx)


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?

: Bearbeitet durch User
von MaWin (Gast)


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

von Günther (Gast)


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.

von Manfred L. (manni)


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 !

von Manfred L. (manni)


Lesenswert?

Günther schrieb:
> Verschenken möchte ich ihn aber nicht.

Das will ich doch schwer hoffen. Denk an die 1000 $ !

von (prx) A. K. (prx)


Lesenswert?

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

Bei der CPU hast du doch auch nicht vor WDC/CMOS zurückgeschreckt.

https://www.mouser.de/ProductDetail/Western-Design-Center-WDC/W65C22N6TPG-14?qs=opBjA1TV901DbgJ9rfcBoQ%3D%3D

: Bearbeitet durch User
von Manfred (Gast)


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?

von (prx) A. K. (prx)


Lesenswert?

Manfred schrieb:
> 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.

Echt hilflos? Immerhin gab es optional einen symbolischen Assembler im 
ROM, das war doch schon was. Sogar einen Compiler, wenn man unbedingt 
wollte.

von Manfred L. (manni)


Lesenswert?

(prx) A. K. schrieb:
> Bei der CPU hast du doch auch nicht vor WDC/CMOS zurückgeschreckt.

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.

von Manfred L. (manni)


Lesenswert?

Manfred (Gast) schrieb:
> Was willst Du denn ausgeben?

Ich danke Dir für das Angebot, aber mit dem Projekt bin ich jetzt durch 
und packe es nimmer mehr an !

von (prx) A. K. (prx)


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.

: Bearbeitet durch User
von Björn W. (bwieck)


Lesenswert?

6522 gibt es jeweils 2 Stück in alten Commodore 1541 Floppy-Disk 
Laufwerken.

von Manfred L. (manni)


Lesenswert?

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

Ja, das mag richtig sein, aber MOS hatte für jeden Geräte-Hersteller 
spezielle Input/Output IC Versionen hergestellt. Ich bin mir deshalb 
sicher, dass diese nicht kompatibel mit der KIM-1 Funktionalität sind.

von Manfred (Gast)


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 ???

von Harald W. (wilhelms)


Lesenswert?

Manfred L. schrieb:

> 1977
> Die Kommilitonen durften weiterhin mit Lochkarten die CDC-6000
> bestücken.

Dann war aber eure Uni wirklich etwas rückständig. Um die Zeit
gabs zumindest schon Lochstreifen aber auch Magnetbänder und
Festplatten.

von Manfred L. (manni)


Lesenswert?

Harald W. schrieb:
> Um die Zeit
> gabs zumindest schon Lochstreifen aber auch Magnetbänder und
> Festplatten.

Ja, das ist richtig. Diese gab es selbstverständlich für die 
Assistenten, aber nicht für das popelig Fußvolk der Studenten an der 
Technischen Universität Berlin.

von (prx) A. K. (prx)


Lesenswert?

Harald W. schrieb:
> Dann war aber eure Uni wirklich etwas rückständig. Um die Zeit
> gabs zumindest schon Lochstreifen aber auch Magnetbänder und
> Festplatten.

Terminals, Plattenplatz und Magnetbänder gab es in jener Ära nur für 
höhere Semester. Anfänger mussten mit Lochkarten vorlieb nehmen.

: Bearbeitet durch User
von Rick D. (rickdangerus)


Lesenswert?

Günther schrieb:
> 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.
Ja, ich hätte Interesse!

von Günther (Gast)


Lesenswert?

Hallo Rick,

ich habe Dir einen email gesendet.

Freundliche Grüsse
Günther

von W.S. (Gast)


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.

von 6532 (Gast)


Lesenswert?


Beitrag #6812914 wurde von einem Moderator gelöscht.
von Hans O. (hansotten)


Lesenswert?

Hello,

Looks good!

May I publish photos and design on my website dedicated to the KIM-1?
http://retro.hansotten.nl

Thank you!

Hans

von Pimper (Gast)


Lesenswert?

Pimp the Kim: "The 100 MHz 6502"

http://www.e-basteln.de/computing/65f02/65f02/

von Manfred L. (manni)


Lesenswert?

Hans O. schrieb:
> May I publish photos and design on my website dedicated to the KIM-1?

No problem for me if you quote this post.

Regard
Manni

von Hans O. (hansotten)


Lesenswert?

Danke!

Will let you know when the post is up.

Viele Grusse,

Hans

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.