Lerncomputer so wie KOSMOS CP1 nachbauen

Gast #6519315
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...
Gast #6519340
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.
Gast #6519349
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?
Gast #6519350
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. ;)
#6519357
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.
Gast #6519358
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.
#6519376
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 !
Gast #6519407
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.
Gast #6519437
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.
Gast #6519458
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.
#6519861
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. ;-)
Gast #6520588
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.
Gast #6520721
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.
Gast #6520896
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.
Gast #6520916
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
  }
Gast #6521315
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.
Gast #6521327
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.
#6521340
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.
#6521569
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.
Gast #6521666
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.
Angehängte Dateien:
Gast #6521671
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.
Gast #6521681
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.
Gast #6521735
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.
Gast #6521976
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.
#6522031
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
#6522123
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"
Gast #6522158
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?
Gast #6522211
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.
#6522313
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
#6523086
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 
!
Gast #6523096
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.
#6523107
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.
#6523120
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.
Gast #6523251
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. :-)
Gast #6523258
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.
Gast #6523266
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.
Gast #6523276
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.
Gast #6523386
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.
Gast #6523413
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.
#6523427
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).
#6523435
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
#6523444
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
Gast #6523607
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.
#6523683
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.
#6524438
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!
#6524465
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 !
Gast #6525092
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.
Gast #6526146
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.
Gast #6526897
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. :-)
Angehängte Dateien:
Gast #6526916
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....
Gast #6527601
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.
Angehängte Dateien:
Gast #6527969
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.
Gast #6527983
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!
Gast #6528071
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)
Gast #6528142
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.
Gast #6528163
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.
Gast #6528225
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
Gast #6528338
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.
Gast #6528355
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.
Angehängte Dateien:
Gast #6535506
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.
Angehängte Dateien:
#6536658
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.
Gast #6537126
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.
Gast #6540642
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.
Angehängte Dateien:
Gast #6540950
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
Gast #6540961
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...
Gast #6540962
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.
Gast #6541098
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.
Gast #6541126
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.
Angehängte Dateien:
#6745247
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
Gast #6745838
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

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