Forum: Mikrocontroller und Digitale Elektronik Lerncomputer so wie KOSMOS CP1 nachbauen


von Der müde Joe (Gast)


Lesenswert?

Hallo, zusammen!

Ich überlege, wie man den mittlerweile superalten Lerncomputer "KOSMOS 
CP1" nachbauen kann.

https://de.wikipedia.org/wiki/Kosmos_CP1
http://www.8bit-homecomputermuseum.at/computer/kosmos_computer_praxis_cp1.html

Dieser Lerncomputer hat einen Intel 8049 drin gehabt, mit 2kByte OTP-ROM 
und 128 Byte RAM. Der Computer wird in einer vereinfachten 
Pseudo-Maschinensprache programmiert, die mittels des Interpreters im 
ROM des verbauten Microprozessors ausgeführt wird. Die Programmierung 
erfolgt durch die Eingabe der numerischen, zweistelligen Befehle, 
gefolgt von dreistelligen Operanden. Insgesamt stehen 21 Befehle zur 
Verfügung. Alle Zahlen (Befehle, Operanden, Daten, Adressen) werden im 
Dezimalsystem dargestellt.

Dieses Gerät funktioniert völlig autark, benötigt also nichts weiter 
außer dem Netzteil.

Interessanterweise habe ich auch noch einen Schaltplan im Netz gefunden, 
und man sieht, dass der Hersteller die I/O-Leitungen für die Tasten und 
die LEDs von den Sieben-Segment-Anzeigen gemultiplext hat. Insgesamt 
brauchten sie nur 17 Leitungen.

Naja, da dachte ich mir, könnte man eine richtige Platine machen. Der 
Controller kann ein kleiner sein, im sog. 28/SPDIP-Gehäuse. Für die 
Tasten gibt es auch schöne in verschiedenen Farben.

(Anstatt der LED-Anzeige, oder als zusätzliche Option, könnte ich mir 
auch ein 1x8-Zeichen LCD-Display vorstellen.)

Oder alphanumerische LED-Anzeigen und für jeden Befehl eine eigene 
Taste.

Es gab schon einige Nachbauprojekte für einfach nutzbare Computer. Aber 
auch schon mal so einen minimalistischen? Falls jemand so ein Projekt 
kennt...

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Wo ist das Problem?
Nimm einen AVR und strick dir den Interpreter wie du ihn brauchst.

von Nautilus (Gast)


Lesenswert?

Beim Computer ist die Hardware das eine, genau so wichtig ist die 
Software.
Ein Programm von ca. 2 kByte  Assembler zu erstellen ist schon sportlich 
und benötigt deutlich mehr Zeit als das anfertigen der Hardware.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Nautilus schrieb:
> Beim Computer ist die Hardware das eine, genau so wichtig ist die
> Software.
> Ein Programm von ca. 2 kByte  Assembler zu erstellen ist schon sportlich
> und benötigt deutlich mehr Zeit als das anfertigen der Hardware.

Und wofür muss man den Interpreter in Assembler bauen? Abgesehen davon, 
warum die Beschränkung auf 2kB?

von Schlaumaier (Gast)


Lesenswert?

Nautilus schrieb:
> Ein Programm von ca. 2 kByte  Assembler zu erstellen ist schon sportlich
> und benötigt deutlich mehr Zeit als das anfertigen der Hardware.

LöL.  Ich erinnere mal freundlich daran das das die doppelte 
Speicherkapazität des Computer ist, auf den ich Coden gelernt habe. ;) 
Ein ZX-81 nämlich. ;)

von Georg G. (df2au)


Lesenswert?

Du kannst den CP1 nachbauen, wie er mal war. Dann musst du nur einen 
8749 Prozessor kaufen und programmieren. Der Code dafür ist im Netz zu 
finden.

Alternativ nimmst du einen 8039, vorzugsweise in CMOS, also 80C39 und 
häkelst mit einen HC573 Latch ein Eprom dran. Da die 2716 schlecht zu 
bekommen sind, solltest du was größeres nehmen und hast dann eben Platz 
verschenkt.

Der 8155 dürfte ein Problem werden. Der wird mit Gold aufgewogen.

Bleibt als Ausweg eine andere CPU, ATMega328 als Beispiel. Da hast du 
ROM und RAM im Überfluss. Musst du nur den Code des CP1 disassemblieren, 
verstehen und auf ATMega umschreiben. Das ist keine Raketenwissenschaft, 
reine Geduldsarbeit. Viel Spass dabei.

von Der müde Joe (Gast)


Lesenswert?

Ja, das Original hatte 2kByte OTP-ROM. Heutzutage kann man natürlich 
auch 4/8/16 kByte Flash nehmen. Und ein bisschen mehr RAM gibt's auch. 
:-)

Im RAM soll das sog. Anwenderprogramm auch Platz finden; oder im Flash 
abgelegt werden. Man kann davon ausgehen, dass keine riesigen Programme 
geschrieben werden, es ist ja ein Lerncomputer.

von Georg G. (df2au)


Lesenswert?

Der müde Joe schrieb:
> das Original hatte 2kByte OTP-ROM

Wieder was gelernt. Wie ist die Typbezeichnung für einen 8049 als OTP? 
Wer hat den hergestellt?

von Kaktusbombe (Gast)


Lesenswert?

Hier >> https://www.elektronik-labor.de/Projekte/TPS7.html << gibt es 
auch so eine Konstruktion in einem ähnlichen Umfang.
Es gibt auch Nachbauten auf Basis von kleinen AVR-Microcontrollern.

von Ralph S. (jjflash)


Lesenswert?

es gab einen kleineren Bruder vom 8049, hieß 8048. Hiervon gab es einen 
OTP mit der Bezeichnung 8648. Hersteller war Intel.

An einen OTP von 8049 erinnere ich mich nicht. Der Typ mit dem 
Quarzglasfenster zum Löschen mittels UV war ein 8749. Wieder Hersteller 
Intel.

Ich habe es gehasst: Nach jedem neuen Versuch 15 Minuten warten bis der 
gelöscht war !

von Der müde Joe (Gast)


Lesenswert?

Mitsubishi hat die damals geliefert. Hießen dann 8049-xxP.

von Der müde Joe (Gast)


Lesenswert?

Ja, die Dinger zu löschen, war echt zeitaufwendig. Aber so haben wir 
damals angefangen...

von Der müde Joe (Gast)


Lesenswert?

@Kaktusbombe: Ja, ungefähr so, wie das vom großen C. Nur nicht ganz so 
spartanisch... Ein paar mehr Tasten und LED-Display wär schon schön. Der 
Kosmos war da schon ganz gut.

Nachbauten auf AVR-Basis, das wär was. Ich hab recht lang gesucht, aber 
nichts gefunden, leider.

von Peter S. (petersieg)


Lesenswert?


: Bearbeitet durch User
von Der müde Joe (Gast)


Lesenswert?

Danke für die Links!

Den Rigert-Eintrag kenne ich schon, aber da ist wohl leider keine 
Source, und in die Jahre gekommen ist es auch. Der andere Link ist 
brandneu! :-)

Ich möchte ein bisschen weg von den Hobby-Lösungen ala selbst geätzte 
Platine. Also oben eine Reihe LED-Anzeigen, darunter die Tasten. Evtl. 
oberhalb der LED-Anzeigen eine Reihe Pins, damit man das Board in die 
ersten Pins von einem Breadboard stecken kann. Halbe oder 
Viertel-Eurokarte würde ich anstreben.

von Ahnungsloser (Gast)


Lesenswert?

Ralph S. schrieb:
> es gab einen kleineren Bruder vom 8049, hieß 8048. Hiervon gab es
> einen
> OTP mit der Bezeichnung 8648. Hersteller war Intel.
>
> An einen OTP von 8049 erinnere ich mich nicht. Der Typ mit dem
> Quarzglasfenster zum Löschen mittels UV war ein 8749. Wieder Hersteller
> Intel.
>
> Ich habe es gehasst: Nach jedem neuen Versuch 15 Minuten warten bis der
> gelöscht war !

Ich meine das war der 8039 und bei Völkner gab es eine Software 
(Assembler)
die MSC48 von Weidner. alles Komandozeile für Dos.

von Bastler (Gast)


Lesenswert?

Der müde Joe schrieb:
> superalten Lerncomputer "KOSMOS CP1"

OT   Bereits 15 Jahre früher (1968) brachte
KOSMOS den ersten Lerncomputer auf den Markt:

https://de.wikipedia.org/wiki/Logikus

von Hallo (Gast)


Lesenswert?

Bastler schrieb:
> OT   Bereits 15 Jahre früher (1968) brachte
> KOSMOS den ersten Lerncomputer auf den Markt:
>
> https://de.wikipedia.org/wiki/Logikus

Das hat es wohl damals auch gebraucht, da das alles brandneu war. Sowas 
in der Richtung werden wir wohl auch für die bald kommenden 
Quanten-Computer brauchen  :-)

von michael_ (Gast)


Lesenswert?

Der müde Joe schrieb:
> Ja, die Dinger zu löschen, war echt zeitaufwendig. Aber so haben wir
> damals angefangen...

Was sind schon 5min?

Nautilus schrieb:
> Ein Programm von ca. 2 kByte  Assembler zu erstellen ist schon sportlich
> und benötigt deutlich mehr Zeit als das anfertigen der Hardware.

Hä? War ich damals Hochleistungssportler?
Gut, es gab Vorlagen.

von Andreas B. (bitverdreher)


Lesenswert?

Hmm, gerade mal geschaut was das Ding genau gemacht hatte:
128 Befehlszeilen mit Pseudo Maschinen code (21 Befehle).
Das würde man so auch locker in einem AVR rein bekommen, wenn es nur um 
die Funktion gehen würde.
Ansonsten wird es halt teuer, die Original Bauteile zu beschaffen.

Der müde Joe schrieb:
> Ich hab recht lang gesucht, aber
> nichts gefunden, leider.
Nicht suchen, machen:
Eingabe Hex über Tastatur, Anzeige auf 7-Segment Display und speichern 
in ein 128er Array.
Dann eine kleine Statemaschine, die die Zeilen ausliest und 
interpretiert.
Das sollte kein Hexenwerk sein.

Edit: Mal schnell in Github geschaut:
https://github.com/RalphBln/kosmos-cp1-arduino-cassette-emulator
(Arduino Cassetteninterface)
https://github.com/asig/kosmos-cp1
(halt Java, aber die Logik kann man ja übernehmen)

Das Kassetteninterface das man bei Git findet, würde ich allerdings 
durch eine SD card ersetzen. ;-)

: Bearbeitet durch User
von Soul E. (Gast)


Lesenswert?

Georg G. schrieb:

> Wieder was gelernt. Wie ist die Typbezeichnung für einen 8049 als OTP?

8749. Die gab es mit Glasfenster zum Löschen und als Einweg mit 
schwarzem Epoxygehäuse.

Wenn man seinerzeit eine ROM-Maske bestellt hatte, dann kamen die ersten 
hundert Teile als OTP. Kleinserien wurden oft auch als OTP ausgeführt, 
die Maske rechnet sich da noch nicht. Beim Hersteller programmierte OTPs 
wurden eigentlich immer als 8049 gelabelt, sind also durch angucken von 
Masken-ROMs nicht zu unterscheiden.

von Der müde Joe (Gast)


Lesenswert?

Ja, ich würde auch einen modernen Controller nehmen. Einen 8155 habe ich 
schon seit 20 Jahren nicht mehr gesehen.

Erzähl' mir mehr über die kleine Statemachine, die die Zeilen ausliest 
und interpretiert. :-) Von Software habe nur recht wenig Ahnung, leider.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Der müde Joe schrieb:
> Ja, ich würde auch einen modernen Controller nehmen. Einen 8155 habe ich
> schon seit 20 Jahren nicht mehr gesehen.
>
> Erzähl' mir mehr über die kleine Statemachine, die die Zeilen ausliest
> und interpretiert. :-) Von Software habe nur recht wenig Ahnung, leider.

Die Statemachine kümmert sich um das Abarbeiten des 
https://de.wikipedia.org/wiki/Befehlszyklus.
Prinzipiell wird mit der Statemachine der nächste Befehl aus dem 
Programmspeicher gelesen (State1), anschließend durch ein Switch 
Konstrukt dekodiert (State2), der Befehl ausgeführt (State3), das 
Ergebnis zurück geschrieben (State4 (optional)) bevor anschließend 
wieder mit State1 weitergemacht wird.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Hab mir gerade mal den Quelltext des Java CP1-Simulator angeschaut, der 
im Wikipedia Eintrag verlinkt ist. 
https://sourceforge.net/projects/cp1-sim/

In dem Archiv findest du die "Statemachine" in der Datei kernel.java im 
kernel Verzeichnis. Die Statemachine besteht dabei nur aus laden (und 
prüfen) und ausführen.
1
  public void step() {
2
    int[] t=new int[2];
3
    t=getMem(progcounter);
4
    if (!isValidCmd(t[0], t[1]))
5
      die (2, "F 002: laufendes Programm erkennt ungültigen Operationscode in Zeile "+progcounter);
6
    else
7
      execCmd(t[0], t[1]);
8
  }

getMem holt die Instruktion, execCmd führt sie aus.

execCmd wertet das Kommando entsprechend aus (decode) und ruft eine 
entsprechende Funktion auf, die sich um den Rest kümmert, wie z.B. auch 
das Laden weiterer Operanden.
1
public void execCmd(int cmd, int param) {
2
    switch (cmd) {
3
      case 1:
4
        CmdHLT();
5
      break;  
6
  
7
      case 2:
8
        CmdANZ();
9
      break;  
10
      
11
[...]
12
    
13
      case 20:
14
        CmdAIS(param);
15
      break;  
16
      
17
      case 21:
18
        CmdSIU(param);
19
      break;  
20
      
21
      default:
22
        die (2, "F 002: laufendes Programm erkennt ungültigen Operationscode "+cmd+" in Zeile "+progcounter);
23
      break;
24
    }
25
  }

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Der müde Joe schrieb:
> Einen 8155 habe ich schon seit 20 Jahren nicht mehr gesehen.

Futurlec (ausgerechnet ;-) behauptet, sie hätten 81C55:
https://www.futurlec.com/IC80Seriesb.shtml

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

Der müde Joe schrieb:
> Von Software habe nur recht wenig Ahnung, leider.

Das sind aber schlechte Voraussetzungen um so etwas zu bauen.
Und um das programmieren zu lernen würde ich dann auch mal ein paar 
Nummern kleiner anfangen.
Was ist denn das Ziel des Ganzen?

von Der müde Joe (Gast)


Lesenswert?

Meine Mutter  hat meinen CP1 weggeworfen... Nun ja, vielleicht bin ich 
schon etwas zu alt dafür, aber da ich viel mit Breadboards mache, dachte 
ich mir, vielleicht ist es möglich, einen Ersatz zu bauen. Der Arduino 
braucht ja noch einen extra-Computer, um ihn zu programmieren. Hingegen 
der CP1 völlig autark ist. Wenngleich natürlich mit viel weniger 
Funktionen. Aber um auf Ereignisse von außen zu reagieren, eine LED zu 
schalten oder einen Transistor, reichte er völlig aus. Und man kann eine 
Menge lernen mit dem Teil. Ich bin Hardware-Entwickler.

von Der müde Joe (Gast)


Lesenswert?

Ja, tatsächlich, es gibt den 81C55 noch zu kaufen. Unglaublich. 
(Kopfschüttel)
Aber ich würde das ganze schon etwas moderner aufbauen. Da man mit dem 
original CP1 auch nicht direkt auf der CPU arbeiten konnte, muss die 
Hardware nicht original sein.

von (prx) A. K. (prx)


Lesenswert?

Der müde Joe schrieb:
> Ja, tatsächlich, es gibt den 81C55 noch zu kaufen. Unglaublich.
> (Kopfschüttel)

Es gibt Händler, die nie ihr Lager aufräumen, mit folglich teilweise 
museumsreifem Angebot. Dazu gehört beispielsweise Kessler, bei denen man 
noch einen TMS70C02 Mikrocontroller kriegt (diese Baureihe hatte frei 
definierbare Befehle in Custom Microcode). Und Segor mit antiken SCSI- 
und Floppy-Controller-ICs, und gebrauchten(!) 8748.

: Bearbeitet durch User
von O. R. (oscherischery)


Lesenswert?

Neben Retrobastlern gibt es halt auch noch einen gewissen 
Ersatzteilbedarf. Du kaufst Dir alle zwei Jahre einen neuen PC und ein 
neues Telefon, aber einen Aufzug oder eine Fräsmaschine von 1980 wird 
man durchaus noch reparieren wollen. Und da kauft man Ersatzteile 
deutlich lieber bei Simons/Kessler oder Segor als bei irgendwelchen 
dubiosen Chinaversendern.

von Hallo (Gast)


Lesenswert?

Wird nicht alles irgendwie wertvoll wenn man es 30 Jahre einlagert ? Es 
gibt sogar einen Markt für altes Spielzeug wie Plastikfiguren.

von Der müde Joe (Gast)


Angehängte Dateien:

Lesenswert?

Zumindest wäre ein ähnlicher Computer durchaus etwas kleiner als das 
Original.

Um es etwas aufzupimpen und auf das Jahr 2020 anzupassen, könnte man das 
Display vom reinen dezimalen anzeigen der Befehle, mit 14(16)-Segment 
alphanumerischen Anzeigen die Befehle so anzeigen, wie man sie schreibt, 
also anstatt 01, 02, 03 dann HLT, ANZ, VZG. Das erste Digit 7-Segment, 
dann drei Stück 14-Segment, dann drei Stück 7-Segment.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Der müde Joe schrieb:
> Zumindest wäre ein ähnlicher Computer durchaus etwas kleiner als das
> Original.
>
> Um es etwas aufzupimpen und auf das Jahr 2020 anzupassen, könnte man das
> Display vom reinen dezimalen anzeigen der Befehle, mit 14(16)-Segment
> alphanumerischen Anzeigen die Befehle so anzeigen, wie man sie schreibt,
> also anstatt 01, 02, 03 dann HLT, ANZ, VZG. Das erste Digit 7-Segment,
> dann drei Stück 14-Segment, dann drei Stück 7-Segment.

Warum nicht direkt ein einzeiliges(?) LC-Display? Ist von der 
Ansteuerung auch einfacher.

von Stefan F. (Gast)


Lesenswert?

Hallo schrieb:
> Wird nicht alles irgendwie wertvoll wenn man es 30 Jahre einlagert ?

Ganz sicher nicht. Wir sind nicht bei "Bares für Rares", wo Profis eine 
schöne Show abziehen.

Dinge sind nur etwas Wert, wenn du sie gegen eintauschen kannst. 
Irgendwann träumt jedes Kind davon, seine gesammelten Abziehbilder, 
Legofiguren, Puppen, etc. an reiche Sammler zu verkaufen. Von 1000 
Leuten gelingt das vielleicht einem.

Am Geld-Spiel-Automat in der Kneipe ist die Gewinnchance geschätzt um 
Faktor 100 höher. Eigentlich müsste man das den Kindern sagen ... hmmm 
.. lieber doch nicht. Besser realistisch bleiben und den Müll in den 
Müll werfen.

von Der müde Joe (Gast)


Lesenswert?

Ich habe jetzt mal die Befehle analysiert. Es gibt diese 24 Befehle:
ABS, ADD, AIS, AKO, ANZ, HLT, LDA, LIA, NEG, P1A, P1E, P2A, P2E, P3A, 
P3E, SIU, SPB, SPU, SUB, UND, VGL, VGR, VKL, VZG

Die kann ich auf diese Buchstaben herunterbrechen, die man drücken muss, 
um den Befehl eindeutig zu haben:
AB, AD, AI, AK, AN, H, LD, LI, N, P1A, P1E, P2A, P2E, P3A, P3E, SI, SPB, 
SPU, SU, U, VGL, VGR, VK, VZ

Das sind dann diese 15 Einzelbuchstaben:
A, B, D, G, H, I, K, L, N, P, R, S, U, V, Z.

Zusammen mit den Ziffern 0-9 benötige ich dann 25 Tasten.

Mir scheint, das Gerät braucht auch zehn direkte Befehlstasten.
STEP, ST(O)P, RUN, CAS, CLR, ACC, CAL, PC, OUT, INP.
Diese direkten Befehlstasten sollten Buchstaben sein, die nicht zum 
erkennen von Befehlen (erster Buchstabe) benötigt werden.
Freie Buchstaben wären: B, D, G, I, K, R, Z.

Wenn ich auf CAL und CAS verzichte, reicht es trotzdem nicht. Sieben 
freie Buchstaben, und acht Befehle. Also eine Taste mehr, 26.
----------------------------------------------
Die Matrix der LEDs.
7 + 14 + 14 + 14 + 7 + 7 + 7 = 70 LEDs.
----------------------------------------------
26 + 70 = 95 Signale. 10x10er-Matrix. Da reicht immer noch ein 
Microcontroller im DIP28, wenn ich keinen groben Schnitzer gemacht habe.

von Der müde Joe (Gast)


Lesenswert?

Ein einzeiliges LCD? Ja, ginge auch. 1x8, oder?

von Der müde Joe (Gast)


Lesenswert?

Habe ich den ODER-Befehl übersehen? Oder fehlt der? Machen die den 
irgendwie anders?

von Einstein² (Gast)


Lesenswert?

warum nicht eines der vielen Z80 Projekte oder den Dram <PC vom 8 bit 
guy?
https://www.youtube.com/watch?v=ayh0qebfD2g&t=300s

von Soul E. (Gast)


Lesenswert?

ODER kann man mit NICHT und UND nachbauen. Und umgekehrt

Eigentlich kann man sämtliche Logik aus SN7400 Vierfach-UND-Gattern 
aufbauen. Und die NASA hat aus MC718G triple NOR Gates einen kompletten 
Navigationscomputer für ihre Mondfähren gebaut.

von Einstein² (Gast)


Lesenswert?

Das ist wohl was du suchst:-)
http://www.kswichit.com/Z80/Z80.html

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Der müde Joe schrieb:
> Ein einzeiliges LCD? Ja, ginge auch. 1x8, oder?

Ja, oder auch zweizeilig. 1x8, 2x8, 1x16 oder auch 2x16, preislich kaum 
ein Unterschied.

Und was die Tasten angeht, kannst du mit einer 
Umschalt-(Funktions-)taste Doppelbelegungen machen und so einige Tasten 
einsparen.

von Der müde Joe (Gast)


Lesenswert?

Wow, ein Mordsprojekt, aber ich wollte eigentlich in überschaubarer Zeit 
fertig werden...
Der andere Z80er, braucht einen PLD. Naja, man sieht, dass die 
Z80-Sachen nicht mehr ganz frisch sind.
Ich denke, ein einziger ATmega oder sogar ein aktueller Tiny im 
DIP-Gehäuse reichen. 3x8 Bit für I/O wären toll.

Ja, klar, 2xNegation vor dem UND, gell? Dann hat man das ODER... Aber da 
INV und UND schon drin sind, würde ich das ODER hinzufügen. Damit es 
komplett ist.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Der müde Joe schrieb:
> Wow, ein Mordsprojekt, aber ich wollte eigentlich in überschaubarer Zeit
> fertig werden...

Dann nimm einfach ein LCD und implementiere eine PS/2 Schnittstelle für 
die Tastatur im AVR.

von Carsten S. (dg3ycs)


Lesenswert?

Hi,
Ahnungsloser schrieb:
> Ralph S. schrieb:
[...]
>> An einen OTP von 8049 erinnere ich mich nicht. Der Typ mit dem
>> Quarzglasfenster zum Löschen mittels UV war ein 8749. Wieder Hersteller
>> Intel.
[...]
> Ich meine das war der 8039 und bei Völkner gab es eine Software
> (Assembler)
> die MSC48 von Weidner. alles Komandozeile für Dos.

Wie von Soul E. geschrieben wurden die 8049 mit Eprom als 8749 gelabelt.
Egal ob mit oder ohne Fenster. Elektrisch spielt das Fenster ja keine 
Rolle.

Die 8039 waren die ROMless Variante des 8049/8749.
(Angeblich wurden auch welche mit nicht mehr benutzen Maskenversionen 
oder Fehlern in den Programmiermasken dann als 8039 gelabelt. Aber 
sicher weiß ich das nicht)

Jeder 8049 kann, wie viele Mitglieder der Nachfolgefamilie(8051) mit 
internem ROM auch, durch Beschaltung eines selevt-Pins auch als ROMless 
Variante mit externen Speicher betrieben werden.

> die MSC48 von Weidner.
Du meinst wahrscheinlich MCS48 ;-)
Denn das ist der offizielle Name von Intel für die Produktfamilie zu der 
der 8049 gehört. (Wie MCS51 für die 8051er)
Für diese Familie gibt und gab es eine Menge an verschiedenen Tools von 
verschiedenen Anbietern
(OK einen C Compiler habe ich noch nie gesehen ;-), halte es zwar 
angesichts der Architektur in Verbindung mit dem Alter für 
unwahrscheinlich das es einen gibt, aber völlig unmöglich ist es nicht)

Der müde Joe schrieb:
> Wow, ein Mordsprojekt, aber ich wollte eigentlich in überschaubarer Zeit
> fertig werden...
> Der andere Z80er, braucht einen PLD. Naja, man sieht, dass die
> Z80-Sachen nicht mehr ganz frisch sind.
> Ich denke, ein einziger ATmega oder sogar ein aktueller Tiny im
> DIP-Gehäuse reichen. 3x8 Bit für I/O wären toll.

Naja, wenn du HArdwareentwickler bist, dann würde ich zum Lernen die 
Hardware so einfach wie möglich halten und mir z.B. als Ziel setzen 
statt den alten Lerncomputer 1-1 Nachzubauen diesen auf einem aktuellen 
µC weitgehend funktionskompatibel nachzuempfinden.
Also mit dem Ziel das du am Ende ein System hast wo du die Beispiele 
oder eigene Programme für den alten Kosmos Computer eingeben kannst und 
dein System erzeugt genau dieselben Ausgaben.
Dabei lernt man mit sicherheit deutlich mehr als nur die alten Übungen 
durchzuspielen und zu erweitern.

Kann man mit einem kleinen AVR machen. Selbst 3x8Bit I/O ist damit 
machbar wenn man noch drei/vier IO Pins frei hat. Ein paar 
Schieberegister und es gibt keine IO Grenzen mehr.

Oder du greifst gleich zu einem größeren Controller (Cortex M3, PIC32) 
und machst alles mit dem einen µC.


BTW: Wenn jemand mit einem alten 8039/8049 System etwas spielen will und 
dem ein Drehencoder, ein paar Taster, drei LED und vier 
7-Segmentanzeigen reichen:

Ich habe noch ein paar von diesen Funkgeräten (TMC84):
http://amateurtele.com/index.php?artikel=95
(weiter unten gibt es eine Detailaufnahme des Logikboards)
Diese stellen im Prinzip ein voll funktionsfähiges 8039 µC System mit 
Eingabe und Ausgabe dar. (Schaltpläne vorhanden)

Wenn interesse besteht kann da welche aus der Grabbelkiste raussuchen wo 
die Logikeinheit und BG funktioniert und gegen aufgerundetes Porto 
abgeben.
(HF & NF Teil dann halt "AS IS")

Gruß
Carsten

von Thomas G. (Firma: Frickelhauptquartier) (taximan)


Lesenswert?

Ich glaub nicht, dass ich das nachbaue, aber 7- und 14-Segmentanzeigen 
müssen sein!

von Crazy Harry (crazy_h)


Lesenswert?

Könnte man nicht nach Eingabe des Befehls automatisch auf Zahleneingabe 
umschalten? Doppelbelegung aber automatisch.

von Ralph S. (jjflash)


Lesenswert?

Eine eindeutige Befehlsliste wäre nicht schlecht (nicht die vom MCS48, 
sondern die vom Interpreter der Firmware).

Ich glaube dann würde das (auch für einen Hobbyisten) sehr leicht und 
sehr schnell realisierbar sein.

Wobei: 30 Tasten ist schon heftig (nicht vom Programmieren): es braucht 
viel Platz auf einer Platine.

Ich würde 2 Folientastaturen zu je 16 Tasten nehmen:

https://www.ebay.de/itm/2PCS-NEU-4-x-4-Matrix-Array-16-Key-Membrane-Switch-Keypad-Keyboard-for-Arduino/263796344890?hash=item3d6b7cc83a:g:iS0AAOSwE3tbPXCf

Benötigt dann 12 Leitungen vom Controller

und (wenn es denn Retro sein muß)

https://www.ebay.de/itm/0-36-0-56-Inch-6-8-Digit-7-segment-LED-Display-Module-TM1637-74HC595/402408108826?hash=item5db164731a:g:RiIAAOSwDkJfUbzM

aber zwingend mit TM1637 Chip und nicht mit Schieberegister, denn dann 
muß lediglich die Tastatur gemultiplexed werden.

Davon ausgehend bräuchte es dann noch einen Controlller, der 12 I/O für 
die Tastatur und 2 I/O für die Anzeige benötigt.

Kandidaten wären hier dann:

STM32F030
ATMega irgendwelcher
STM8S103

Aber wie gesagt, man bräuchte das Manual des "Rechners"

von Stefan F. (Gast)


Lesenswert?

Da gibt es doch diese Taschenrechner-Bausätze, so einen könnte man 
umprogrammieren: https://de.aliexpress.com/item/32974585332.html

von MCUA (Gast)


Lesenswert?

> Hmm, gerade mal geschaut was das Ding genau gemacht hatte:
> 128 Befehlszeilen mit Pseudo Maschinen code (21 Befehle).
Warum sollte man sich irgent einen Pseudo! Maschinen code ansehen, wenn 
es mehrere wirkliche (unterschiedliche) CPU-Familien gibt?

von Der müde Joe (Gast)


Lesenswert?

Weil dieser Computer nach außen hin ein gaaanz einfacher Computer ist. 
Darum kann er nur 24 Befehle. Das Gerät ist für Kinder ab 12 Jahren 
gedacht, und benötigt keinen Extra-Computer. Ich finde, das hat seinen 
Reiz. Schön wäre es auch, wenn man sich das Gerät selbst zusammenbauen 
kann. Wobei, 1.27mm Rasterabstand halte ich für Anfänger schon für 
grenzwertig. Aber die 7-/14-Segment-Anzeigen in SMD/THT sind in einem 
ausreichend groben Raster. Alle anderen Bauteile gibt es mit 2.54mm 
Rasterabstand. Ich glaube, für einen Nachbauerfolg kommt man beim 
Controller nicht um ein DIP-Gehäuse herum.

von Der müde Joe (Gast)


Lesenswert?

Crazy H. schrieb:
> Könnte man nicht nach Eingabe des Befehls automatisch auf
> Zahleneingabe umschalten? Doppelbelegung aber automatisch.

Genau! Es ist ja klar, wann Zahlen kommen und wann Buchstaben.

von Stefan F. (Gast)


Lesenswert?

Der müde Joe schrieb:
> Das Gerät ist für Kinder ab 12 Jahren gedacht

Glaube mir, die programmieren lieber 3D Animationen.

von MCUA (Gast)


Lesenswert?

Bei älteren DEC-Maschinen oder auch beim ALTAIR konnte jeder Befehl Bit 
für Bit in den Speicher geladen werden. Keine Tastatur, dafür jede Menge 
Kippschalter und einzelne LEDs.

von Carsten S. (dg3ycs)


Lesenswert?

Stefan ⛄ F. schrieb:
> Der müde Joe schrieb:
>> Das Gerät ist für Kinder ab 12 Jahren gedacht
>
> Glaube mir, die programmieren lieber 3D Animationen.

Genau! Wer erinnert sich nicht an das Jahr 1983, das als das Jahr in 
die Geschichte einging wo Horden von Teenies den ganzen Tag nichts 
anderes gemacht haben als 3D Animationen an ihrem Computer zu erstellen 
;-)

OHJE...

Gruß
Carsten

von Ralph S. (jjflash)


Lesenswert?

Ich habe mir mal das Manual unter:

https://www.retrozone.ch/cp1/

angesehen. Angesehen im Sinne von: einiges gelesen (nicht das ganze 
Handbuch) und einiges überflogen.

Verrückt, dass so etwas im Jahre 1983 angenommen wurde. 1985 (aus 
persönlichem Grund weiß ich das Jahr sehr genau) hatte ich damals für 
sündhaft teures Geld meinen Sinclair ZX80 gegen einen Schneider CPC64 
ausgetauscht.

Beim Kosmos CP1 erkennt man Ansätze, wie die interne Struktur 
"umgebogen" wird. D.h. aus einer Registermaschine wird nun eine Mnemonic 
generiert, bei der der Akku mit Speicherinhalten verrechnet wird.

"Befremdlich" wirkt, dass die Mnemonic deutsche Abkürzungen sind. Hm, 
noch befremdlicher ist für mich irgendwie, dass Eingaben in dezimaler 
Weise (und nicht in hexadezimaler Schreibform erfolgt).

Wollt ihr wirklich so ein Teil in dieser Funktion nachbauen? Der 
Interpreter hierfür dürfte relativ einfach sein, das Monitorprogramm 
etwas - aber nur etwas - schwieriger.

Eine Modifikation würde ich vornehmen: Statt der 30 Tasten (wobei die 
Ziffern 0 bis 9 jeweils doppelt sind, funktional also nur 20 Tasten 
vorhanden) ein Standard - 16 Tastenfeld nehmen mit 7-Segmentanzeige. 
Hier wie dafür gemacht:

https://www.ebay.de/itm/8-Bit-Digital-LED-Tube-TM1638-Anzeige-Modul-8-16-Key-Keyboard-Arduino-AVR/322983418007?hash=item4b334fd897:g:hEwAAOSwv-ZaL42F

Eine Taste gedrückt halten, bspw. links unten, als "Shift"-Taste ist im 
"Funktionstastenmodus", Shift nicht gedrückt eben Zifferneingabe. Das 
Modul benötigt  3 Steuerleitungen. Für die Ports (damit man das alles 
aus dem Handbuch auch nachmodulieren kann) gibts dann (nein, keine 
Schieberegister, denn die können nur OUT) den PCF8574 in doppelter 
Ausführung. Somit wären insgesamt 5 I/O Pins von Nöten und damit könnte 
das ganze in einem 8 pol. ATtiny 85 (wenn man gut ist auch in einem 
45er) unterkommen.

Oder man spart sich die beiden I2C I/O Expander und realisert 2 Ports 
auf bspw. einem ATMega8.

Das Speichern auf Kassette "emuliert" man auf dem internen EEProm des 
AVR. Auf einem ATtiny85 oder einem ATmega8 hat man dann doch glatt 512 
Bytes Platz, was dann 4 kompletten Programmen des Kosmos CP1 entsprechen 
würde.


Würde mich wirklich interessieren, ob ihr da dran geht und das nachbaut 
!

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

No, zumindest ich würde so ein Teil nicht bauen, weder mit nem µC noch 
im FPGA. Nicht weil es in irgendeiner Hinsicht schwer oder auch nur 
fordernd wäre, sondern weil ich es einfach für eine sinnlose Krücke 
halte. Aber wer Spaß dran hat, bitte. Nur wenn ich es machen würde, 
würde ich wie schon von Stefan geschrieben eher einen der 
Taschenrechner-Bausätze dafür abändern.

von Georg G. (df2au)


Lesenswert?

Ralph S. schrieb:
> "Befremdlich" wirkt, dass die Mnemonic deutsche Abkürzungen sind.

Dann besorg dir mal ein paar Handbücher über zB den 8080 von Fa Siemens. 
Da findest du dann den Kellerspeicherzeiger und ähnlich schöne Dinge.
Auch IBM war gut. Was ist "Einzelkreis pro Kanal Technik"?

von (prx) A. K. (prx)


Lesenswert?

Ralph S. schrieb:
> "Befremdlich" wirkt, dass die Mnemonic deutsche Abkürzungen sind.

Als ich mit dem Studium anfing, hatte man es auf dem Instituts-Mainframe 
mit originär deutscher Assembler-Sprache zu tun ("bringe" statt "move"), 
und natürlich waren auch die Job-Kommandos deutsch ("montiere" für den 
Linker). Das waren auch keine Übersetzungen aus Sonstwoher, sondern die 
ganze Kiste war deutsch, von Telefunken.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Georg G. schrieb:
> Auch IBM war gut. Was ist "Einzelkreis pro Kanal Technik"?

Es gibt eben auch mehrere Dialekte in Fachenglisch. Das Englisch von 
IBM, und das vom Rest der Welt. So wird eine HDD zum DASD, ein ROM zum 
ROS, Firmware zum Microcode und ein Device zur Unit. Für IBMs PC/XT gab 
es ein technisches Handbuch in Deutsch. Allerdings in IBMs Sprachwelt, 
weshalb das, was man gemeinhin als "device driver" kennt, zum 
Einheitenverstärker wurde.

Deutsch war damals auf unterer Ebene durchaus verbreitet! Von Motorola 
gab es ein deutsches 68000 Handbuch - allerdings hiess ADD immer noch 
ADD. Ich verlegte ich mich freilich frühzeitig auf verständlicheres 
Englisch und bin dabei geblieben, Das kann ich einfach besser.

: Bearbeitet durch User
von Der müde Joe (Gast)


Lesenswert?

Das Gerät sollte so einfach wie möglich sein. Dezimalschreibweise ist 
halt für Kinder einfacher,  als wenn sie obendrauf zu den englischen 
Fachbegriffen auch noch hexadezimal lernen sollen. Die Konzeption wurde 
nicht von Elektroingenieuren erstellt, sondern von Pädagogen. :-)

von Der müde Joe (Gast)


Lesenswert?

Ich denke, mehr als ein IC, den Microcontroller, braucht man als aktive 
Bauteile nicht. Im Original ist auch fast nichts drin. Der ATmega32 im 
DIP28 scheint mir mehr als geeignet und günstig bei Reichelt.

von Der müde Joe (Gast)


Lesenswert?

Viele von uns hatten in den 80ern Elektronikbaukästen. Die Computer dazu 
waren die logische Folge. Ja, sie wurden gerne angenommen. :-)

Commodore C64 etc. kamen später und waren sehr teuer. Auch der ZX81 war 
teuer.

von Der müde Joe (Gast)


Lesenswert?

Hm... oder habe ich jetzt da einen Denkfehler?

Die Tasten und LEDs von der Anzeige, ca. 96 Signale, in einer 10 x 10 
Matrix. 20 Pins.

Okay, ich habe die drei I/O-Ports vergessen! Also nochmal 24 Leitungen 
dazu. Dann reicht ein DIP28 nicht mehr, bei 44 Pins. DIP40?

Müssmer vielleicht doch mit Port-Expander arbeiten. Ich schau mal, 
welche AVRs es in DIP40 gibt, und wieviele I/Os man dann hat. Sch...ss 
Alzheimer.

von ardu (Gast)


Lesenswert?

Der müde Joe schrieb:
> Commodore C64 etc. kamen später und waren sehr teuer. Auch der ZX81 war
> teuer.

Na sooo sehr teuer ja nun auch nicht. Den ZX81 kostete 1983 (bei 
erscheinen des Kosmos CP1) um die 300 Mark, wenig später war der 
ZX-Spectrum für wenig mehr zu bekommen.
Und nen C64 gabs Mitte der 80 Jahre auch für 600 Mark.
Das war damals genau so bezahlbar wie für heutige Kids 500 Teuro 
Telefone + Tablet + Playstation...
Und der C64 hat sogar ohne in-app Käufe funktioniert...

Der müde Joe schrieb:

> Okay, ich habe die drei I/O-Ports vergessen! Also nochmal 24 Leitungen
> dazu. Dann reicht ein DIP28 nicht mehr, bei 44 Pins. DIP40?
>
> Müssmer vielleicht doch mit Port-Expander arbeiten. Ich schau mal,
> welche AVRs es in DIP40 gibt, und wieviele I/Os man dann hat.

Bitte nicht hauen, aber..
wenn schon schnell und billig auf Fremdhardware emulieren, dann bildet 
doch ein Arduino Mega 2560 die ideale Basis dafür, inclusive genügend 
Ports und wenig Aufwand. Auch in finanzieller Hinsicht.
Außerdem ist dort schon ein gewisser Standardisierungsgrad erreicht, 
beispielsweise bezüglich der Displayansteuerung.
Egal was man von der Sprache hält, für solche Fälle bildet das System 
eine einfache und schnelle Mögflichkeit zur praktischen Umsetzung ohne 
Port-Expander und sonstige frickelei.

von MCUA (Gast)


Lesenswert?

>Ich schau mal, welche AVRs es in DIP40 gibt,
Dann nimm einen '324, der hat genug Ports.
Damit kann man schon mehr Perif. ansprechen, als man je benutzen kann.
(Oder einen grösseren mit ExtBusIF)

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

MCUA schrieb:
>>Ich schau mal, welche AVRs es in DIP40 gibt,
> Dann nimm einen '324, der hat genug Ports.
> Damit kann man schon mehr Perif. ansprechen, als man je benutzen kann.
> (Oder einen grösseren mit ExtBusIF)

Genau einfach einen 324PA für 3 Euronen hat sogar Reichelt. Und wie 
eigentlich alle AVR im PDIP-40 hat der 4 komplette Ports, also 32 
IO-Pins.

Ungeachtet dessen, halte ich die Idee für nicht sonderlich ergiebig. Aus 
eigener Erfahrung kann ich sagen die Kinder (ok, die mir bekannten 
Kinder) interessieren sich nicht für sowas. Mehr als ein Arduino zum 
Basteln bekommt man da nicht unter; für eingeschränkte Userinterfaces 
ist keines davon zu begeistern, weil es eben Ipad und co gibt.

von Ralph S. (jjflash)


Lesenswert?

Tim T. schrieb:
> Ungeachtet dessen, halte ich die Idee für nicht sonderlich ergiebig. Aus
> eigener Erfahrung kann ich sagen die Kinder (ok, die mir bekannten
> Kinder) interessieren sich nicht für sowas. Mehr als ein Arduino zum
> Basteln bekommt man da nicht unter; für eingeschränkte Userinterfaces
> ist keines davon zu begeistern, weil es eben Ipad und co gibt.

Sehr schmunzeln muß: ich gebe dir in allem Recht. Das... ist eher ein 
Spielzeug für die alten (die ganz alten). Wenn einem zu langweilig ist. 
Oder wie in meinem Falle mein momentanes primäres Projekt hängt und ich 
einfach an etwas anderes herangehen muß um mich später dem primären 
Projekt zu widmen.

Im Moment bin ich dabei, das lange nicht aus der Schublade geholte Board 
mit TM1638 und den 16 Tasten zu programmieren. So, dass man mittels 
einer Taste zwischen Ziffern und Funktionstasten umschalten kann.

Das wird dann so sein wie einen Emulator den ich auf einem STM32F4 
laufen hatte und der Sinclair Spectrum Spiele abspielen konnte. Das hast 
du ein paar mal gemacht, aber wenn du Retro-Games Spielen willst, dann 
spielst du das am PC oder in dem Gameboy-Retro-Pi mit Raspberry Zero 
(das hat mein Sohnemann, der ist 31), aber auch den legt er dann immer 
wieder weg. ;-) er hat jetzt eine Retrokonsole am Fernseher mit 
Raspberry PI.

Hier gehts einfach nur darum, das zu machen. Ohne Sinn und Verstand (und 
wer mir unterstellt ich hätte Verstand, der hat selbst keinen).

von Ralph S. (jjflash)


Lesenswert?

PS. Im Übrigen mach ich es mit nem ollen ATmega8, weil hier eine alte 
Platine rumfliegt, auf der ich normalerweise einen ISP-Programmer mit 
STK500 Protokoll laufen lasse. Wenn man die Ports wirklich noch 
implementieren will sollte auch der noch reichen, denn:

Das 7-Segment Anzeigeboard mit Tasten benötigt 3 I/O Pins. Zieht man von 
einem DIP28 ATmega 6 Anschlüße ab (für Vcc, GND, AVcc, AGND, Aref, /res) 
bleiben 22 Pins übrig. Das reicht für das Anzeigeboard und 2 mal 8-Bit 
Port

von Ralph S. (jjflash)


Lesenswert?

ardu schrieb:
> Na sooo sehr teuer ja nun auch nicht. Den ZX81 kostete 1983 (bei
> erscheinen des Kosmos CP1) um die 300 Mark, wenig später war der
> ZX-Spectrum für wenig mehr zu bekommen.
> Und nen C64 gabs Mitte der 80 Jahre auch für 600 Mark.
> Das war damals genau so bezahlbar wie für heutige Kids 500 Teuro
> Telefone + Tablet + Playstation...

Das stimmt so nicht ganz:

Ich habe meinen ZX81 für 499.- DM 1981 gekauft. Als Bausatz wohlbemerkt, 
die Platine mußte selbst bestückt werden. Der wurde sensationell 
beworben mit "erster PC für unter 500.- DM).

Was ich für den CPC bezahlt habe weiß ich nicht mehr, ich weiß nur, dass 
ich mich entscheiden mußte zwischen C64 und CPC und zu meinem 
Entscheidungspunkt kostete ein C64 (ohne Datasette) 800.- DM und ich 
meine der CPC war knapp drunter (mit dem Kassettenlaufwerk im Gehäuse).

So.. damals habe ich knapp (Nichtlehrling) 1700.- DM verdient, der 
Computer war also nicht ganz ein halber Monatslohn !

Dass heutige "Kids" 500 € zur Verfügung haben finde ich an sich schon 
ein Wahnsinn, aber: 500 € sind nicht mal im Ansatz "nur" ein halber 
Monatslohn, von daher sind die "Spielzeuge" im Vergleich zu damals irre 
billig.
------------------------------------------
Heute gebe ich bei weitem keinen halben Monatslohn für einen Computer 
aus (mal abgesehen davon, dass ich Computer ultralange nutze und ich 
auch immer nur relativ leistungsschwache Computer habe, schlicht weil 
ich kein Computerspieler bin):

Desktoprechner hier:

Ryzen 5 - 1600
16 GB RAM
256 GB SSD
1 TB konventionelle Festplatte

Grafikkarte weiß ich gar nicht so genau. Das Teil reicht mir 
wahrscheinlich noch ein paar Jahre. Natürlich ist der Rechner nicht am 
Stück gekauft, sondern einfach immer nur mal ausgetauscht, so alle 3 bis 
5 Jahre

von Andreas T. (andreas_t210)


Lesenswert?

Sollte eigendlich kein Problem sein, hab mir vor einiger Zeit einen 
Altair 8800 auf nem Arduino Uno mit 4xMCP23017 und ein 128kb EEPROM 
emuliert mit den ganzen Schaltern und Leds. Das war zwar nur das 
Grundgerüst mit 1kb Ram(328p intern) für die Maschine aber es 
funktionierte! :D

von Der müde Joe (Gast)


Lesenswert?

86 Signale für Tastatur und LEDs, in einer Matrix von 11 x 8 Signalen, 
also 19 Bit. Bleiben 2 Kombinationen übrig.
Wurzel 86 ist 9,3. Wären 10 x 9 Signale. Auch 19 Bit. Bleiben aber sogar 
4 Kombinationen übrig.
2 x 8 Bit plus 3 Bit vom dritten Port. Beim DIP28 würden nur 4 Bit für 
die I/Os übrig bleiben,  das reicht nicht. Beim DIP40 würden 13 Bit für 
die I/Os bleiben. Gar nicht mal so schlecht.

Oder auf die 14-Segment-Displays verzichten.

Oder Port-Expander nehmen. Müssten halt auch im DIP-Gehäuse sein.
DIP40 hat 32 I/Os. DIP28 hat 23 I/Os.

Beim DIP40 hätte man drei 8-Bit I/O-Ports, und 8 Leitungen frei, um die 
Ansteuerung für die Tastatur und die LEDs zu realisieren.

Beim DIP28 hätte man zwei 8-Bit I/O-Ports, und 7 Leitungen frei, um die 
Ansteuerung für die Tastatur und die LEDs zu realisieren.

Ich denke, beide Varianten laufen auf eine Port-Expander Lösung hinaus, 
wenn man die 14-Segment-Displays haben will.

von MCUA (Gast)


Lesenswert?

Nix Wurzel!
1) Nimm einen 8-Bit-Data-Bus (hat der AVR sowiso), ein paar 
Adr-Leitungen, und 2..3 Ctr-Leitungen. Damit kann man alles ansteuern.
(Data-Bus könnte noch mux'en)
2) oder alles über Shift-Register

von Ralph S. (jjflash)


Lesenswert?

.. ich spiele ja schon die ganze Zeit damit herum, und wahrscheinlich 
braucht es ausser dem ATmega8 (oder größer) und dem TM1638 nichts 
weiter.

;-) mittlerweile habe ich fast das Handbuch durch (okay irgendie halt 
selektiv gelesen) und stelle fest, dass die Eingaberoutinen irgendwie 
wohl das "arbeitsintensivste" sein dürfte (vor allem wenn man das mit 
dem TM1638 macht).

Und man stellt fest, dass diejenigen, die das entwickelt haben wohl 
schon irgendwie die gängigen RISC Controller im Sinne hatten, weil:

Eine Eingabe beinhaltet die Eingabe den Opcode und das Datum zugleich.

Ich denke, der Maschineninterpreter ist weniger schreibintensiv als der 
Monitor (wahrscheinlich deutlich einfacher).

Und sie hatten schon an eine Art Debugger gedacht, um zum einen 
Speicherzellen anzusehen und zum anderen ein Programm mittels 
Single-Step durchzusteppen.

von Ralph S. (jjflash)


Lesenswert?

soooooooo .... ;-) ich habe eine CP1 Emulation doch tatsächlich gemacht 
und kann man hier im Forum bei den Projekten nachschauen.

Beitrag "Kosmos CP1 Emulator mit ATmega"

Port I/O und Speicherbefehle fehlen noch, aber alles andere läuft ... 
;-) ausgiebig beim Programmieren damit gespielt.

Schöne Weihnachten,

JJ

von Der müde Joe (Gast)


Lesenswert?

Auch schöne Weihnachten, und Dankeschön für diesen tollen Emulator! :-)

von Andreas B. (bitverdreher)


Lesenswert?

Warum nicht einfach so etwas (notfalls 2 oder 2) anstatt dieser I/O 
Schlachten?:
https://www.ebay.com/itm/I2C-Keypad-Module-16-Key-Membrane-Switch-Keypad-Matrix-keyboard-NEW/153432775544?hash=item23b94e5b78:g:okMAAOSwIhxZZcT4
Da findet man auch anderes unter "Keypad i2c" in der Bucht.

Sehe gerade: Da bin ich wohl schon zu spät, da hat sich Ralph schon die 
ganze Arbeit gemacht. Respekt!

: Bearbeitet durch User
von Ralph S. (jjflash)


Lesenswert?

Diese "I/O" Schlachten sind aber notwendig weil sie das wichtigste an so 
einem "Projekt" sind. Der Maschineninterpreter ist hingegeben relativ 
simple und sehr sehr schnell gemacht.

Wie man dann das Interface programmiert, vor allem wenn man nicht die 
Anzahl der originalen Konstruktion verwenden mag ist dann 
zeitintensiver.

Verrückt: Man hat zwar das Teil schon einmal programmiert gehabt (das 
I/O Board), aber die Funktionen sind so anderst als das Einsatzszenario 
das man so im Kopf hatte, dass man besser das komplett neu geschrieben 
hätte als das, was man hat anzupassen (jetzt ist es halt angepasst).

Im Moment reift in mir so der Gedanke (auch wenn's kein Mensch braucht), 
eine Platine mit ATmega8 oder ATmega88 zu routen, mit ausgeführten 
SPI-Pins zum Flashen der Firmware, auf einer Leiste mit RxD / TxD der 
seriellen Schnittstelle (ohne Bridge), damit man Programme vom PC zu dem 
Teil übertragen kann und die originalen Funktionen zum Speichern/Laden 
erweitert auf EEProm, RS232.

Als I/O (das ist keine Schlacht) wird ein TM1637 verwendet, der genau 
die Anzahl der 7-Segmentanzeigen kann die man braucht und auch die 
Tasten kann.

Das wäre dann eine Platine, die dann eben so groß ist wie das oben 
angegebene I/O Board.

;-) ob ich Lust auf so eine Platine habe weiß ich nicht, weil: Das 
Teilchen macht zwar Spaß, aber ob es auch Sinn macht weiß ich nicht, 
weil die Dinge die mit dem Teil vermittelt werden sollen kann ich ja und 
kein junger Mensch wird das in die Hand nehmen (wobei das vllt. gar 
nicht mal so schlecht wäre um ein bischen mehr Verständnis für die 
Technik zu erlangen und nicht nur Konsument sein).

;-) ich hab n bissi Zeit und guck mir mal an, wie ich die Portbefehle 
machen kann !

von Der müde Joe (Gast)


Lesenswert?

Genau! :-)
Aber ich habe Sorge wegen dem Treiber-IC. Es ist in SMD und nicht so 
einfach zu löten. Es gibt aber ein paar Möglichkeiten in THT. Bin ich 
grade am prüfen.

von Michael W. (Gast)


Lesenswert?

Ralph S. schrieb:

> Im Moment reift in mir so der Gedanke (auch wenn's kein Mensch braucht),
> eine Platine mit ATmega8 oder ATmega88 zu routen, mit ausgeführten
> SPI-Pins zum Flashen der Firmware, auf einer Leiste mit RxD / TxD der
> seriellen Schnittstelle (ohne Bridge), damit man Programme vom PC zu dem
> Teil übertragen kann und die originalen Funktionen zum Speichern/Laden
> erweitert auf EEProm, RS232.

> ;-) ob ich Lust auf so eine Platine habe weiß ich nicht, weil: Das
> Teilchen macht zwar Spaß, aber ob es auch Sinn macht weiß ich nicht,
> weil die Dinge die mit dem Teil vermittelt werden sollen kann ich ja und
> kein junger Mensch wird das in die Hand nehmen (wobei das vllt. gar
> nicht mal so schlecht wäre um ein bischen mehr Verständnis für die
> Technik zu erlangen und nicht nur Konsument sein).

Ach das ist komplett egal ob das nun für andere relevant ist oder 
nicht... mach einfach Dein Ding. Wenn es danach ginge, hätte ich meinen 
Microtronic Next Generation auch nicht gemacht. Aber da es mir wichtig 
ist und es mir Spaß macht, mache ich es halt!

Dein Kosmos-Ding ist mindestens so relevant wie die anderen Sachen die 
hier zusammengebastelt werden. Wer braucht schon einen ATMega 
Taschenrechner, einen MP3-Player für Kinder, eine Wordclock... gibt es 
alles besser und "relevanter" zu kaufen. Ist doch ohnehin alles nur für 
den eigenen Ego- und Lern-Tripp. Kann mir doch keiner erzählen, dass 
hier in diesem Forum irgendwas von praktischer Relevanz gebaut wird.

Also, mach Dein Ding. Platine. Und dann bei Tindie verkaufen als Bausatz 
mit kleiner Anleitung (oder zusammen gebaut). So mache ich es mit meinem 
Microtronic Next Generation Board. Dem ein oder anderen wird es 
gefallen. Du machst was Dir gefällt; egal, was die Leute hier sagen.

von Der müde Joe (Gast)


Lesenswert?

Ich bin jetzt ein paar Stunden weiter. :-)

Am meisten Probleme bereiten die 14-Segment LED-Anzeigen. Da scheint es 
nicht so viele preisgünstige Alternativen zu geben.

Bei Reichelt habe ich PSA 08-11 RT gefunden. Sind ein bisschen groß, 
aber rot und mit CA. Günstigere habe ich nur noch bei TMS gefunden, weiß 
jetzt aber nicht, ob die an privat liefern.

Parallel dazu würde ich gerne etwas kleinere, normale 7-Segment 
LED-Anzeigen setzen.

Bei der Ansteuerung gibt es die Ur-Variante mit PNP- und 
NPN-Transistoren als Zeilen- und Spaltentreiber. Eine weitere 
Alternative wäre der MCP23017 von Microchip oder der TPIC6B595 von Texas 
Instruments. Haben zwar nur 8 Bit, sind dafür aber in THT. Ich meine, 
mich auch an eine 16-Bit-Variante im DIP-Gehäuse erinnern zu können. 
Generell sind solcherart Chips (Seriell-zu-parallel Wandler) mit oder 
ohne integrierte Strombegrenzung.

Man könnte das kombinieren, mit PNP-Transistoren als Zeilentreiber und 
TPIC6B595 als Spaltentreiber. Der Strom kann auf 1/6 Duty-Cycle 
eingestellt werden für die 6 Stück  7-Segment LED-Anzeigen, oder auf 1/7 
Duty-Cycle für die 14-Segment LED-Anzeigen. Sollten dann im Mittel bei 
allen Segmenten 20mA fließen.

Mit 16 Tasten auszukommen, ist natürlich eine feine Sache, zumal die 
14-Segment-Displays eh' schon 25mm lang sind. Dafür würde dann ein 
8-Bit-Port ausreichen.

Ich werde jetzt mal einen Schaltplan zeichnen und hier vorstellen.

von Der müde Joe (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe jetzt mal das LED-Display Array aufgebaut, um zu sehen, wie 
groß das überhaupt wird, wenn man die Displays von reichelt nimmt.

Na ja, 207mm ist schon recht breit. Allerdings, habe ich die Problematik 
der fehlenden Anzeige der Adresse aufgenommen, und dafür auch Displays 
spendiert. :-)

von Michael W. (Gast)


Lesenswert?

Der müde Joe schrieb:
> Ich habe jetzt mal das LED-Display Array aufgebaut, um zu sehen, wie
> groß das überhaupt wird, wenn man die Displays von reichelt nimmt.
>
> Na ja, 207mm ist schon recht breit. Allerdings, habe ich die Problematik
> der fehlenden Anzeige der Adresse aufgenommen, und dafür auch Displays
> spendiert. :-)

Wie wäre es mit HP alphanumeric bubble displays....

von Der müde Joe (Gast)


Lesenswert?

Sowas wie SCD55100? Mit flacher Oberfläche, und 10-stellig. Aber woher 
nehmen?

von Der müde Joe (Gast)


Angehängte Dateien:

Lesenswert?

Vielleicht habe ich einen Kompromiss gefunden, mit ca. 10cm Breite.

Die erste Idee ist, mit Anzeige der Adresse, aber dafür die Befehle in 
Dezimal anzuzeigen.

Die zweite Idee ist, die Adresse anzuzeigen und die Befehle 
alphanumerisch. Ich denke, die schönste Verbesserung gegenüber dem 
Original-CP1. Allerdings muss man dann die LED-Anzeigen in SMD nehmen. 
Gäbe es aber, auf für kleines Geld, bei reichelt. Diese SMD-Anzeigen 
sind schmäler, ca. 10mm, dafür etwas länger, ca. 19mm. Ich meine, auch 
Ungeübte könnten diese Anzeigen einlöten.

von Der müde Joe (Gast)


Lesenswert?

Mit "Rauf" und "Runter"-Tasten könnte man dann durch das Programm 
scrollen. Finde ich sehr drollig. :-)

von MCUA (Gast)


Lesenswert?

> Und man stellt fest, dass diejenigen, die das entwickelt haben wohl
> schon irgendwie die gängigen RISC Controller im Sinne hatten, weil:
> Eine Eingabe beinhaltet die Eingabe den Opcode und das Datum zugleich.
..zeigt eher auf CISC hin..


>Am meisten Probleme bereiten die 14-Segment LED-Anzeigen.
Es gibt Kingbright kleinere 14-Segm-Anzeigen, PS(X)05 , 0,5 Inch.
SA05 sind 7-Segm.

von Stefan F. (Gast)


Lesenswert?

MCUA schrieb:
> Es gibt Kingbright kleinere 14-Segm-Anzeigen, PS(X)05 , 0,5 Inch.
> SA05 sind 7-Segm.

bei Kingbright bin ich immer enttäuscht, das deren Produkte nach 
aktuellen Maßstäben alles andere als "bright" sind.

Achtung beim Katalog: Kingbright verwendet dort die Einheit µCd, wo man 
eigentlich mCd erwarten würde!

von MCUA (Gast)


Lesenswert?

>bei Kingbright bin ich immer enttäuscht, das deren Produkte nach
>aktuellen Maßstäben alles andere als "bright" sind.
Das kann ich nicht bestätigen.
Bereits ab ca 1 mA 'sieht' man das Segment.

von Stefan F. (Gast)


Lesenswert?

MCUA schrieb:
> Bereits ab ca 1 mA 'sieht' man das Segment.

Das war schon in den 80er Jahren so. Es geht um die Helligkeit. Bei 
denen hat ein Segment zum Beispiel 5 mcd während selbst die billigste 
China LED schon 500 mcd hat.

von Michael W. (Gast)


Lesenswert?

Der müde Joe schrieb:
> Mit "Rauf" und "Runter"-Tasten könnte man dann durch das Programm
> scrollen. Finde ich sehr drollig. :-)

Ja, in der Tat... die Tasten habe ich in meinem Microtronic Next 
Generation Emulator mit genau der Belegung...

Wie wäre es mit LEDs für die Ports?

von MCUA (Gast)


Lesenswert?

>> Bereits ab ca 1 mA 'sieht' man das Segment.
> Das war schon in den 80er Jahren so. Es geht um die Helligkeit.
In den 80er war die Helligkeit (bei gleichem I) viel geringer, es war 
ein höherer Mind-I erforderlich.
Diese Anzeigen sind gut und auch sehr hell, gut zu benutzen, jedenfalls 
nicht schlechter als andere auch. (Angabe ca 30000ucd)
(dieser Anzeigen-Typ kann man nicht mit einzelnen LEDs vergleichen)

von Stefan F. (Gast)


Lesenswert?

MCUA schrieb:
> dieser Anzeigen-Typ kann man nicht mit einzelnen LEDs vergleichen

Warum nicht?

von uxdx (Gast)


Lesenswert?

(prx) A. K. schrieb:
> Das waren auch keine Übersetzungen aus Sonstwoher, sondern die
> ganze Kiste war deutsch, von Telefunken.

TR440, richtig? War ich auch dran, habe noch ein Heft mit irgendwelchen 
Befehlen, das muss ich mal suchen.

von Stefan F. (Gast)


Lesenswert?

MCUA schrieb:
> Diese Anzeigen sind gut und auch sehr hell, gut zu benutzen, jedenfalls
> nicht schlechter als andere auch. (Angabe ca 30000ucd)

Das ist hell: https://www.lumex.com/datasheet/LDD-SMHTA304RISITR

4500000 ucd

von MCUA (Gast)


Lesenswert?

> Das ist hell: ...
> 4500000 ucd
ob diese Angabe stimmt ist fraglich,
selbst wenn, du brauchst diese ucd um eine Anzeige an einem Gerät 
abzulesen?
aus 20m Entfernung?

von Stefan F. (Gast)


Lesenswert?

MCUA schrieb:
> ob diese Angabe stimmt ist fraglich

Kennst du diese chinesischen Uhren-Bausätze?: 
https://de.aliexpress.com/item/4000055210456.html

Da werden die LEDs über 330Ω direkt vom Mikrocontroller angesteuert 
(ohne Treiber). Es fließen etwa 6mA zu 25% der Zeit, dabei ergibt sich 
eine angenehme Helligkeit. Aber nur deswegen, weil diese Anzeigen sehr 
viel heller sind, als der alte Kram aus den 90er Jahren.

von Michael W. (Gast)


Lesenswert?

MCUA schrieb:
> aus 20m Entfernung?

Busch hatte damals die Microtronic Klassenraum-Ausgabe - mit extra 
großem und hellen Display :-) 20 cm hohe 7segment Anzeige, damit auch 
die SchülerIn  in der letzten Reihe den Maschinencode lesen konnte.

Das Display war natürlich extern.

Mach das bloß nicht so hell, das schmerzt den Augen sonst.

von MCUA (Gast)


Lesenswert?

> Aber nur deswegen, weil diese Anzeigen sehr
> viel heller sind, als der alte Kram aus den 90er Jahren.
Ja.. aber das trifft auf neuere von Kingbright auch zu!
Und 6mA mit 25% Duty werden bei den PSA.. wohl auch reichen.
ich sehe bei denen 0 Problem.
Zudem muss man erstmal ne Firma finden, die überhaupt eine vergleichbare 
Variantenanzahl von Display-Typen herstellt, gerade bei 14/16 
Segm.LED-Anzeigen.
Ob Lumex das hat bezweifele ich

von MCUA (Gast)


Lesenswert?

LDD-SMHTA304RISITR : lt DB (bei Mouser gefund.) : 4500ucd, also 
schlechter als Kingbright.

von Der müde Joe (Gast)


Lesenswert?

LDS-E3904RI gefunden bei Arrow, 1,40 USD netto! Ist 14-Segment, 
single-digit und THT. Bei dem Preis kann man sich die 7-Segment glatt 
sparen. Es ist zwar auch 25mm lang, aber nur 10mm breit.

von (prx) A. K. (prx)


Lesenswert?

uxdx schrieb:
> TR440, richtig? War ich auch dran, habe noch ein Heft mit irgendwelchen
> Befehlen, das muss ich mal suchen.

Richtig.

von Michael W. (Gast)


Angehängte Dateien:

Lesenswert?

Falls es Euch interessiert - hier ist Matze sein Ding.

https://www.rigert.com/ee-forum/viewtopic.php?f=35&p=16040#p16040

Er hat damals (vorletztes Jahr?) den ersten CP1-Atmega Emulator auf die
Beine gestellt.

Könnte mir gut vorstellen, dass dieser Beitrag jetzt wieder ignoriert
wird, aber so ist es hier nun einmal :D

Na ja ihr könnt ja machen was ihr wollt.

von Der müde Joe (Gast)


Angehängte Dateien:

Lesenswert?

Ein gutes, neues Jahr wünsche ich Euch allen! :-)

Erfreulich, erfreulich; ich bin tatsächlich ein gutes Stück weiter 
gekommen mit meiner Interpretation eines CP1 für 2020.

Was noch fehlt, ist die Spannungsversorgung. Die würde ich mit einer 
Micro-USB-Buchse machen. Gibt's ja auch in THT. Mir schwebt vor, die 
mittleren Pins abzuzwicken, damit man die beiden äußeren Pins, Plus und 
Minus, leichter einlöten kann.

Ist noch nicht alles fehlerfrei, aber ich denke, man sieht das Konzept.

Da ich noch nie mit AVRs gearbeitet habe, bin ich gerne bereit, 
Änderungen aufzunehmen. Die Platine sollte wenn möglich komplett 
funktionieren. :-)
Wichtig wäre mir, dass alles THT bleibt.

von O. R. (oscherischery)


Lesenswert?

Der müde Joe schrieb:

> Ist noch nicht alles fehlerfrei, aber ich denke, man sieht das Konzept.

Aha, eine Plazierungsstudie. Als nächstes solltest Du Dir Gedanken 
machen über das Gehäuse bzw die Aufstellung. Dazu passend werden dann 
Schraubenlöcher positioniert, Außenkontur optimiert, sowie Sperrflächen 
plaziert. Dann kommen die Bauteile, welche mechanische Schnittstellen 
haben (Taster, LEDs), und dann der Rest. Jede Leiterplatte beginnt mit 
der Mechatronik.

Für die, die das vergessen, gibt es Heißkleber.

: Bearbeitet durch User
von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Der müde Joe schrieb:
> Was noch fehlt, ist die Spannungsversorgung. Die würde ich mit einer
> Micro-USB-Buchse machen.

Warum nur kommen Leute auf Micro-USB? Ist es nicht schon schlimm genug 
dass die Wegwerfgeräte-Industrie auf diesen Mist setzt? Es gibt eine 
Fantastillion andere Anschlüsse, darunter auch einige die mechanisch und 
elektrisch deutlich besser und robuster sind. Aber wenn es unbedingt mit 
einer USB-Wandwarze Laufen muss, gibts auch noch USB-B und USB-MiniB, 
nur MicroB muss doch echt nicht sein.

: Bearbeitet durch User
von Der müde Joe (Gast)


Angehängte Dateien:

Lesenswert?

So, jetzt bin ich mal soweit fertig mit dem Layout. Ein paar Änderungen 
musste ich machen, damit das Board zweilagig bleiben kann. Die 
Widerstände und Kondensatoren sind als SMT in der Bauform 1206 auf der 
Rückseite.

Was ich noch ergänzen würde:

- Das 'rauf- und 'runterlaufen (durchsteppen) im Programm-Listing, z. B. 
mittels Pfeil-Tasten(?)
- Einfügen und löschen von Zeilen
- ODR (ODER)-Befehl
- Umschaltung (toggeln) zwischen der originalen dezimalen und einer 
hexadezimalen Anzeige
- Einlesen einer analogen Spannung an z. B. 4 Pins, Befehl "ANA". Dann 
könnte man auch mit Sensoren spielen.

von (prx) A. K. (prx)


Lesenswert?

Tim T. schrieb:
> Warum nur kommen Leute auf Micro-USB?

Weil sie zu Hause eine Kiste mit Handy-Ladern und RasPi-Netzteilen mit 
Mikro-USB-Steckern rumliegen haben?

von Olaf (Gast)


Lesenswert?

> einer USB-Wandwarze Laufen muss, gibts auch noch USB-B und USB-MiniB,
> nur MicroB muss doch echt nicht sein.

Micro-USB und USBC ist fuer 10000 Steckzyklen spezifiziert. Die anderen 
deutlich weniger. Altes Standard-USB nur 500-1000x stecken.

Olaf

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Olaf schrieb:
>> einer USB-Wandwarze Laufen muss, gibts auch noch USB-B und USB-MiniB,
>> nur MicroB muss doch echt nicht sein.
>
> Micro-USB und USBC ist fuer 10000 Steckzyklen spezifiziert. Die anderen
> deutlich weniger. Altes Standard-USB nur 500-1000x stecken.
>
> Olaf

Micro-USB hält real definitiv keine 10000 Steckzyklen aus, egal was auf 
irgendwelchem Papier steht. In der Regel bezieht sich die Anzahl der 
Steckzyklen ja nur auf den Abrieb der Goldbeschichtung unter Einwirkung 
der Federkraft beim Steckvorgang. Ein reales Nutzungsverhalten ist da in 
keinster Weise gegeben; dort halte ich selbst 1000 Steckzyklen für mehr 
als ambitioniert. Nur neben den minderwertigen mechanischen 
Eigenschaften, kommen bei Micro-USB auch noch die grottigen elektrischen 
dazu, also gibt es außer der größeren Verbreitung wirklich keinen Grund 
diesen Stecker zu Benutzen.
Ist halt leider das inverse Henne Ei Problem geworden, man nimmt 
Micro-USB, weil man oft Micro-USB hat und sorgt so dafür das es wieder 
ein Gerät mehr mit Micro-USB gibt...

von Stefan F. (Gast)


Lesenswert?

Olaf schrieb:
> Micro-USB und USBC ist fuer 10000 Steckzyklen spezifiziert. Die anderen
> deutlich weniger. Altes Standard-USB nur 500-1000x stecken.

Das entspricht auch meiner Erfahrung. Obwohl die Buchsen viel kleiner 
und mechanisch empfindlicher sind halten sie länger.

Bei Mini-USB sehe ich zudem den Nachteil, dass die Kontaktfedern in der 
Buchse des Gerätes sind. Bei Micro-USB sind sie hingegen Bestandteil des 
Kabels und daher leichter austauschbar.

Man muss dazu sagen, dass die Micro-USB Buchsen bei einigen Herstellern 
auch sehr viel stabiler geworden sind, als die anfangs waren. Wenn dann 
noch durch die Gehäuseform verhindert wird, dass man den Stecker 
abbrechen kann (wie bei einigen TomTom) ist man schon ganz gut bedient.

von Michael W. (Gast)


Lesenswert?

Der müde Joe schrieb:
> - Das 'rauf- und 'runterlaufen (durchsteppen) im Programm-Listing, z. B.
> mittels Pfeil-Tasten(?)
> - Einfügen und löschen von Zeilen
> - ODR (ODER)-Befehl
> - Einlesen einer analogen Spannung an z. B. 4 Pins, Befehl "ANA". Dann
> könnte man auch mit Sensoren spielen.

Sinnvolle Erweiterungen, und haben wir auch im Microtronic Emulator.
Da Du schon Alphnumerische Azeige hast - wie wäre es mit MNEMONICS? HEX 
halte ich beim CP1 für wenig sinnvoll.

Auch würde ich anraten, das Original-Keylayout soweit als möglich 
beizubehalten. Die Funktionstastenanordnung gefällt mir so nicht.

Stimme zu - Micro-USB ist suboptimal.

von Michael W. (Gast)


Angehängte Dateien:

Lesenswert?

Zu Erinnerung - Tastenlayout der Original-Version. Bitte beachten dass 
das stark verwirrend ist, wenn die Tasten sehr anders angeordnet sind, 
da man als Anfänger gerne eine 1-zu-1-Experience wie im Anleitungsbuch 
haben möchte. Das ist ein Lerncomputer.

Beim Microtronic-Emulator haben wir peinlichst darauf geachtet, dass die 
Tasten wie im Original angeordnet sind. Zusatz-Tasten sind zwar 
vorhanden, aber haben einen separaten Abschnitt mit eigener Beschriftung 
im anderen Font, sodass klar wird, dass das nicht original ist. Ich 
hänge das zur Illustration mal mit an.

von Michael M. (moosy)


Lesenswert?

Hallo zusammen,
falls es wen interessiert:

Ich habe für den CP1 eine kleine Toolchain entwickelt, so dass man auf 
einem Raspberry Pi bequem in der Kosmos-Assemblersprache programmieren 
kann, ohne sich um Zeilennummern kümmern zu müssen usw.

Außerdem kann man damit natürlich den Speicherinhalt des CP1 auslesen 
und zurückschreiben.

Alles unter: https://github.com/moosy/kosmos-cp1-toolchain

Beispielcode:

Eingegeben wird:
1
AKO 0
2
>loop:
3
ANZ
4
VZG 250
5
ADD one
6
SPU loop
7
8
>one:
9
# 1

Der Assembler macht draus:
1
user@machine:# kosmos_asm.php example.koa -c -d
2
3
      AKO 000                 |  000: 04.000  |  Konstante 000 in den Akku laden
4
5
>loop:
6
      ANZ                     |  001: 02.000  |  Akku-Inhalt anzeigen
7
      VZG 250                 |  002: 03.250  |  Verzögern um 250 ms
8
      ADD one                 |  003: 07.005  |  Zum Akku Inhalt von Zelle 005 (one) addieren
9
      SPU loop                |  004: 09.001  |  Springe zu Adresse 001 (loop)
10
11
>one:
12
      # 001                   |  005: 00.001  |  Datenwert 001

Mit der Option -s kann das Ganze dann auch gleich in den CP1 geschrieben 
werden.
Zum Anschluss an den Raspi braucht's nur einen 1kOhm Widerstand und eine 
3,3V Zenerdiode:
1
GPIO: --------o-----[1 kOhm]------ Port 1/8
2
              |
3
            -----,
4
              ^     Zener diode 3,3 V
5
             / \
6
            -----
7
              |
8
GND:  --------o-------------------- GND

Also, wer noch einen Kosmos CP1 rumliegen hat und Zugriff auf einen 
Raspberry Pi hat, der sollte sich das mal ansehen!

Für Nachbauten müsste man halt dann einen Weg finden, die .json Daten in 
den Speicher zu bekommen. Außer man baut die Kassetten Lese- und 
Schreibroutinen auch originalgetreu nach ;)...

LG
Moosy

von Michael W. (Gast)


Lesenswert?

Schöne Sache! Auch wenn Assembler mit CP1 fast umständlicher ist als 
Maschinensprache direkt ;-) Insbesondere die Hochlade-Möglichkeit ist 
nett. Nun fehlt nur noch ein Emulator... testen auf dem Emulator, 
hochladen in den CP1 wenn's fertig ist, insbesondere da das 
Kassetteninterface so lahm ist.

Martin Sauter hat damals was ähliches für den Microtronic gemacht:

https://gitlab.com/heurekus/Busch-2090-Projects

Die Tape Emu haben wir dann in unsere Arduino Projekte / Emulatoren 
integriert:

https://github.com/lambdamikel/microtronic-2095-arduino-emulator
https://github.com/lambdamikel/Busch-2090

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.