Forum: Mikrocontroller und Digitale Elektronik Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?


von Falk B. (falk)


Lesenswert?

Hippelhaxe schrieb:
> Ich vermisse meinen LC80.
> Mit dem hätte ich das Problem schon lange gelöst...

Faustkeile waren auch sehr vielfältig nutzbar! ;-)

von (prx) A. K. (prx)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Den Z80 und die zugehörigen I/O Bausteine kann man (bei seriösen
> Händlern) nicht mehr kaufen.

Angesichts des Angebots und des Alters der Bausteine, die ich da schon 
mal bekam, habe ich den Eindruck, dass Kessler seit Anbeginn der Zeiten 
noch nie das Lager ausfegte. Und abverkauft wird, was seit Jahrzehnten 
Staub ansetzt. https://www.kessler-electronic.de/de/Article?s=z80

: Bearbeitet durch User
von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Günter K. schrieb:
> Genau wohin wird das Zeichen auf dem Bildschirm gesendet.
> Dann muss der Bildschirm vermutlich in der Grafikkarte
> auch einen Speicherplatz haben.

Richtig. An der Darstellung ist auch ein Zeichensatz beteiligt, der die 
Pixel der Buchstaben festlegt. Dieser wiederum wird beim Start des DOS 
von der Festplatte geladen. Das ist ein Fass ohne Boden, wenn man da 
wirklich jedes Bit sehen will.

von Falk B. (falk)


Lesenswert?

(prx) A. K. schrieb:
> och nie das Lager ausfegte. Und abverkauft wird, was seit Jahrzehnten
> Staub ansetzt. https://www.kessler-electronic.de/de/Article?s=z80

Z85C3008PSC Z80-SCC CMOS 8MHz DIP40 11,50 €

Für weniger als die Hälfte des Geldes bekommt man heute einen RP2040 mit 
geschätzt 1000x mehr CPU-Leistung und 250kB RAM, das Vierfache dessen, 
was ein Z80 direkt adressieren kann.

So sieht Goldstaub aus . . .

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Günter K. schrieb:
> An und für sich, sollte es für jeden Prozessor Assembler geben,
> weil ja jeder Prozessor in Maschinensprache arbeitet.

So absolut ist das falsch
https://www.greenarraychips.com/home/documents/greg/PB003-110412-F18A.pdf

Gerhard O. schrieb:
> C ist ohnehin nur einen Katzensprung von ASM
> entfernt
Früher, mag das mal ein Makroassembler gewesen sein.
Heute optimiert das soweit, dass man manchmal erstaunlich wenig des C im 
Maschinencode wiederfindet. Oder deutlich umsortiert.

Rbx schrieb:
> Zu mindestens sollte man den Unterschied zwischen CISC und RISC kennen.
> Letzteres ist ja beim ARM dominierend und so auch eher
> Programmiertechniken wichtig.

Hmmm...
Wenn ich mich richtig erinnere, hatte man bei CISC ein strengeres Auge 
auf Menschenfreundlichen ASM/Maschinen Code.
RISC Dialekte sind eher auf Compiler ausgerichtet. Wenige ASM 
Statements, aber dafür rasante Ausführung.

: Bearbeitet durch User
von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

(prx) A. K. schrieb:
> https://www.kessler-electronic.de/de/Article?s=z80

Falk B. schrieb:
> Z85C3008PSC Z80-SCC CMOS 8MHz DIP40 11,50 €

Das ist aber kein Z80, sondern eine serielle Schnittstelle. Eine Z80-CPU 
haben die nicht mehr im Programm. Mouser, Digikey, Reichelt, Conrad auch 
nicht.

Dort gibt es noch welche:
https://www.mos-electronic-shop.de/z80z84-c-33_106_281.html
https://pinball-parts.shop/detail/index/sArticle/32760

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Arduino F. (Firma: Gast) (arduinof)
22.10.2024 16:01
>So absolut ist das falsch
>https://www.greenarraychips.com/home/documents/greg/PB003-110412-F18A.pdf

Nö, es ist absolut auch da richtig.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Falk B. schrieb:
> Hippelhaxe schrieb:
>> Ich vermisse meinen LC80.
>> Mit dem hätte ich das Problem schon lange gelöst...
>
> Faustkeile waren auch sehr vielfältig nutzbar! ;-)

Mag wohl sein, aber echtzeitfähige Faustkeile, die
Logikpegel verarbeiten können, sind mir nicht bekannt.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Christoph M. schrieb:
> ist absolut auch da richtig

1. Forth ist eine Hochsprache
2. Es gibt keinen Assembler, und keine Assembler Sprache dafür.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:

> (prx) A. K. schrieb:
>> Es ist nicht einfach, Begriffe und Sachverhalte so
>> zu definieren, dass man darin keine Löcher und
>> Widersprüche findet
>
> Vor allem, weil wir hier gerade eine Zeitspanne von
> mehr als 50 Jahren abdecken.

Nun ja...
Mathematik deckt DEUTLICH mehr als 500 Jahre ab...

Was sagt das über die Informatiker, die sich gern mit
mathematisch-abstrakten Begriffen schmücken...?!

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Hippelhaxe schrieb:
> Mathematik deckt DEUTLICH mehr als 500 Jahre ab...

Im Gegensatz zur IT ist die Mathematik ausgereift.
Die beiden haben auch völlig unterschiedliche Triebfedern.

: Bearbeitet durch User
von Günter K. (enk)


Lesenswert?

Arduino F. schrieb:
> Christoph M. schrieb:
>> ist absolut auch da richtig
>
> 1. Forth ist eine Hochsprache
> 2. Es gibt keinen Assembler, und keine Assembler Sprache dafür.

Aber auch bei Forth muss der Comuter mit Bits rechnen, die sich 
irgendwie in einer Struktur finden lassen.
LG. Enk

von (prx) A. K. (prx)


Lesenswert?

Arduino F. schrieb:
> 1. Forth ist eine Hochsprache
> 2. Es gibt keinen Assembler, und keine Assembler Sprache dafür.

Dennoch gibt es Forth-Systeme, bei denen man in Forth in 
Assembler-Befehlen schreiben kann, ohne auf externe Assembler 
zurückgreifen zu müssen. BTDT

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Das führt alles zu nichts.

Versuch dir mal das hier reinzuziehen:
https://www.youtube.com/playlist?list=PLeGPdggHFfEO0YsZf8LkKmtumaAwrRXvH

Die Folgen 6 und 7 sind am nächsten am Thema.
Aber ich empfehle dir, alle Folgen anzuschauen.

Und wenn du was nicht verstehst, hier konkret nachzufragen.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Günter K. schrieb:
> Aber auch bei Forth muss der Comuter mit Bits rechnen, die sich
> irgendwie in einer Struktur finden lassen.

Nennt sich Hauptspeicher.

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?

(prx) A. K. schrieb:
> Dennoch gibt es Forth-Systeme, bei denen man in Forth in
> Assembler-Befehlen schreiben kann, ohne auf externe Assembler
> zurückgreifen zu müssen.

Und sogar strukturiert. Sieht halt etwas ungewohnt aus. Forth-Stil eben.

: Bearbeitet durch User
von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Günter K. schrieb:
> Aber auch bei Forth muss der Comuter mit Bits rechnen, die sich
> irgendwie in einer Struktur finden lassen.

Was aber nicht unbedingt was mit Assembler zu tun hat, wie dir auch das 
PDF verraten haben könnte.

(prx) A. K. schrieb:
> Dennoch gibt es Forth-Systeme, bei denen man in Forth in
> Assembler-Befehlen schreiben kann, ohne auf externe Assembler
> zurückgreifen zu müssen.
Ja!
Durchaus üblich.
Aber eben nicht beim FA18A

von Günter K. (enk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Hippelhaxe schrieb:
>> Mathematik deckt DEUTLICH mehr als 500 Jahre ab...
>
> Im Gegensatz zur IT ist die Mathematik ausgereift.
> Die beiden haben auch völlig unterschiedliche Triebfedern.

Pascal ist ja eine Mathematisch orientierte Hochsprache.
Und wie ich die Entwicklung sehe, wird auch IT,
das in den Griff haben haben. Nur dann lebe ich nicht mehr.

Immerhin wurde inzwischen die ganze Gen-Kette analysier.'
Auch wenn ich hier und da mal abschweife.
Der 6502 wird die CPU werden.

Die Leute die Programme portierbar mache,
haben die haben die einen Berufsnamen?
Also es wird sein, der emulierte 6502.
Ab Donnerstag,
LG Enk,

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Günter K. schrieb:
> Pascal ist ja eine Mathematisch orientierte Hochsprache.
Nein, du meinst bestimmt Fortran.

Pascal war für Ausbildung/Lehre bestimmt/beabsichtigt.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Günter K. schrieb:
> Die Leute die Programme portierbar mache,
> haben die haben die einen Berufsnamen?

Das Berufsbild nennt sich wohl im Volksmund:
Programmierer!

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


Lesenswert?

Günter K. schrieb:
> Pascal ist ja eine Mathematisch orientierte Hochsprache.

Das ist eine mathematisch orientierte Hochspache!
 life ← {⊃1 ⍵ ∨.∧ 3 4 = +/ +⌿ ¯1 0 1 ∘.⊖ ¯1 0 1 ⌽¨ ⊂⍵}
(APL, Game of life als Einzeiler)

: Bearbeitet durch User
von Thomas W. (Gast)


Lesenswert?

(prx) A. K. schrieb:
> (prx) A. K. schrieb:
>> Dennoch gibt es Forth-Systeme, bei denen man in Forth in
>> Assembler-Befehlen schreiben kann, ohne auf externe Assembler
>> zurückgreifen zu müssen.
>
> Und sogar strukturiert. Sieht halt etwas ungewohnt aus. Forth-Stil eben.

Aber es fehlt das Dictionary, denn LDA und STA sind nicht Standard-Token 
(DEC, BEGIN und UNTIL sehr wohl). Das Konzept des Dictionaries ist schon 
genial. Ich hatte mal eine kleine SUN die einen FORTH-Interpreter in der 
Konsole hatte.

Aber wenn schon: Hello_World in Brainfuck, eine Turing-vollstaendige 
Sprache (https://de.wikipedia.org/wiki/Brainfuck):
1
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

Ich habe eine Diplom-Pruefung in formalen Sprachen ablegen muessen, das 
hat Schaeden hinterlassen.

P.S.: Hast Du eine APL-Tastatur?

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Günter K. schrieb:
> Der 6502 wird die CPU werden.

Ich verstehe nicht, was hier abläuft.

Du hast schon einen funktionierenden Z80 Lerncomputer vorliegen. Eine 
alte Möhre, aber geeignet und bestens dokumentiert. Ich könnte 
verstehen, wenn du etwas moderneres anschauen willst, aber warum zur 
Hölle nun ausgerechnet den 6502? Der ist doch ebenso ein ausgestorbenes 
Fossil der 80er Jahre, dazu noch ein weniger verbreitetes.

Um zu Programmieren muss man vor allem eins können: Strukturiert 
schrittweise auf das Ziel hin arbeiten. Davon sehe ich hier wenig.

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


Lesenswert?

Thomas W. schrieb:
> P.S.: Hast Du eine APL-Tastatur?

Ich habe zwar in APL mit Programmierung angefangen, aber seit ~40 Jahren 
praktisch nichts mehr damit gemacht.

von (prx) A. K. (prx)


Lesenswert?

Thomas W. schrieb:
> Ich habe eine Diplom-Pruefung in formalen Sprachen ablegen muessen, das
> hat Schaeden hinterlassen.

Ich bin zwar von Haus aus nicht der große Theoretiker, aber mit 
"Automatentheorie und Formale Sprachen" konnte ich etwas anfangen.

: Bearbeitet durch User
von Rbx (rcx)


Lesenswert?

(prx) A. K. schrieb:
> Ich habe zwar in APL mit Programmierung angefangen, aber seit ~40 Jahren
> praktisch nichts mehr damit gemacht.

J ist wohl ein aktueller Nachfolger:
https://code.jsoftware.com/wiki/Main_Page

von Norbert (der_norbert)


Lesenswert?

Also…

es kristallisiert sich nun Folgendes heraus:

Dieser Thread braucht unbedingt 200 weitere Personen, welche das Thema 
bis zur Unkenntlichkeit und darüber hinaus zerpflücken.

Gerne auch mit noch mehr Selbstdarstellern, welche allen anderen 
dringend mitteilen möchten was für tolle Hechte sie sind.

Das Potential sich zum Affen zu machen hat dieser Thread auf jeden Fall.
Es bleibt gewiss unterhaltsam. Danke dafür!

von (prx) A. K. (prx)


Lesenswert?

Norbert schrieb:
> Dieser Thread braucht unbedingt 200 weitere Personen, welche das Thema
> bis zur Unkenntlichkeit und darüber hinaus zerpflücken.

Längst zu spät dafür. Zu viele Köche haben den Brei ungenießbar gemacht. 
Ein solches Projekt benötigt einen Mentor, kein naturgemäss 
kakophonisches Forum.

: Bearbeitet durch User
von Thomas W. (Gast)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Günter K. schrieb:
>> Der 6502 wird die CPU werden.
>
> Ich verstehe nicht, was hier abläuft.

Das ist auch alles nicht zu verstehen. Traffic-Generator oder so etwas.

> Du hast schon einen funktionierenden Z80 Lerncomputer vorliegen. Eine
> alte Möhre, aber geeignet und bestens dokumentiert.

Der ist auch genial: Die Christiani-Lehrbriefe sind nicht so toll 
(1980!), aber wenn man sich z.b. die Orginal-Doku (Multitech hatte sogar 
die Handbuecher auf Deutsch uebersetzt und zu der Mappe dazugelegt 
[Gucke hier: 
https://electrickery.hosting.philpem.me.uk/comp/mpf1/doc/MPF-I_Handbuch.pdf]) 
kommt man schon ziemlich weit (das war ca. 1980 - 1983)

> Ich könnte
> verstehen, wenn du etwas moderneres anschauen willst, aber warum zur
> Hölle nun ausgerechnet den 6502? Der ist doch ebenso ein ausgestorbenes
> Fossil der 80er Jahre, dazu noch ein weniger verbreitetes.

Er hat einen Junior: Wenn das Ding laeuft, ist das mehr als genug. Im 
Eprom ist sogar ein kleiner Editor/Assembler dabei, gut dokumentiert 
(die Buecher [auf Deutsch] habe ich dem TO gezeigt. I/O ist mit einer 
6532 (I/O + 128 Byte RAM), 1 ganzes Kilobyte RAM, 1 KB EPROM (im 
original mit einem 2708 [-5V/+5V/+12V mit Power-Up-Sequencing]).

Jetzt traeumt er von der Erweiterungskarte, fuer das zweite Kilobyte, 
die 6522, TTY-Interface (mit 2400 Baud [in Worten: 
zweitausendvierhundert]) und Kassetteninterface (mit PLL-Chip). Man hat 
viel gelernt.

> Um zu Programmieren muss man vor allem eins können: Strukturiert
> schrittweise auf das Ziel hin arbeiten. Davon sehe ich hier wenig.

Deswegen halte ich mich auch zurueck: Morgen (Mittwoch) kommt eine neue 
Sau durchs Dorf (ich bleibe dabei: Ohne PDP11 ist das Haus nicht 
komplett, 
https://www.tindie.com/products/obso/pdp-11-replica-kit-the-pidp-11/). 
Oder eine kleine uVAX (https://en.wikipedia.org/wiki/MicroVAX, perfekt 
fuer den Herbst, wenn Du die Heizung noch nicht einschalten willst). Du 
hast keinen Terminak: Kein Problem (dank 3D-Druck und Raspberry Pi): 
https://github.com/jpasqua/FauxVT?tab=readme-ov-file

von Falk B. (falk)


Lesenswert?

Thomas W. schrieb:
>> Hölle nun ausgerechnet den 6502? Der ist doch ebenso ein ausgestorbenes
>> Fossil der 80er Jahre, dazu noch ein weniger verbreitetes.
>
> Er hat einen Junior: Wenn das Ding laeuft, ist das mehr als genug. Im

Er hat einen an der Waffel! Da sind nicht nur charakterliche Defizite 
sonden schon eine wie auch immer geartete Form der Demenz. So eine Art 
CPU-Tourette. Ne, nicht lustig, einfach nur traurig.

von Christoph M. (mchris)


Lesenswert?

Arduino F. (Firma: Gast) (arduinof)
22.10.2024 16:01
>>>So absolut ist das falsch
>>>https://www.greenarraychips.com/home/documents/greg/PB003-110412-F18A.pdf

mchris:
>>Nö, es ist absolut auch da richtig.

Arduino F. schrieb:
> 1. Forth ist eine Hochsprache
> 2. Es gibt keinen Assembler, und keine Assembler Sprache dafür.
1
: arduinof 10 0 do ." Voll" 112 dup 101 100 4 0 do emit loop CR loop ;

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Thomas W. schrieb:
> Er hat einen Junior: Wenn das Ding laeuft, ist das mehr als genug

Ok, meinetwegen. Aber dann soll er um gottes Willen jetzt auch dabei 
bleiben.

von Günter K. (enk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Günter K. schrieb:
>> Der 6502 wird die CPU werden.
>
> Ich verstehe nicht, was hier abläuft.
>
> Du hast schon einen funktionierenden Z80 Lerncomputer vorliegen. Eine
> alte Möhre, aber geeignet und bestens dokumentiert. Ich könnte
> verstehen, wenn du etwas moderneres anschauen willst, aber warum zur
> Hölle nun ausgerechnet den 6502? Der ist doch ebenso ein ausgestorbenes
> Fossil der 80er Jahre, dazu noch ein weniger verbreitetes.

Ja, der Z80 ist schwerer zu verstehen mit seinen vielen Tabellen im 
Zaks.
Der 6502 ist leichter zu verstehen. Und damit kann man auch viel machen.
Zugegeben beim Z80 wird man durch die Vielen Register fleksibler sein, 
und
erhat nur 6 Flags im Statusregister, das ist auch ein Vorteil. Es sollte 
im Ganzen einfacher sein.
LG. Enk

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Logo:
Wenn der Bauer nicht schwimmen kann, liegts an der Badehose - daher:
Wenn der Enk nicht programmieren kann, liegts am Prozessor.

scnr,
WK

von Günter K. (enk)


Lesenswert?

Dergute W. schrieb:
> Moin,
>
> Logo:
> Wenn der Bauer nicht schwimmen kann, liegts an der Badehose - daher:
> Wenn der Enk nicht programmieren kann, liegts am Prozessor.
>
> scnr,
> WK

Ja, das ist so. Ich sollte wenigstens mit dem einfacheren Prozessor 
anfangen. Dass ich nicht programmieren kan, das stimmt ja.
LG. Enk

von Günter K. (enk)


Lesenswert?

Also Leute,

vielen Dank für Eure Hilfe!
Ich weiß andere Leute sind auch noch da.
Richtig ist auch der Ratschlag,
auf einer Linie zu bleiben.

Und dann hab ich noch das "Haustier",
gemeint ist der PET Computer von Comodore, :-))
(Ein bisschen Englich kann ich doch,  doch dann kam der Tinnitus)
und da habe ich noch den C64. - Ob die noch laufen?
Die Elkos müssen dazu noch ausgetauscht werden.
Die Schwierigkeit hierbei wäre die weitere Peripherie,
doch irgendwie wirds schon werden.

Zur Vereinfachung für Kinder hatte Wolfgang Back
den 1-Bit Computer entworfen.
Nun der Nobel-Preisträger Richard Freemann
hat mit dessen Prozessor seine Konnektionsmaschine gebaut.
Ein Bit ist selten alleine.

Also Dankeschön an alle
Die Fragen sind als 1. beantwortet
Mein 1. Programm wird eine Eieruhr sein.
Also, ich melde mich erst wieder
wenn die Eieruhr läuft.
LG Enk


PS.:
Ob dieser Thread geschlossen wird
überlasse ich den Moderatoren,
sumit auch vielen Dank an die Moderatoren.
Ich bitte Euch auch um Entschuldigung
für meine vielleicht oft unglückliche
Ausdruchsweise. Wenn geschlossen wird,
ist das ok. Ich melde mich wieder,
wenn was neues ansteht.

von Günter K. (enk)


Lesenswert?

Hallo Leute,

ich war unabsichtlich unhöflich
 weil ich mich im Internet nicht so gut auskenne.

Wenn Ihr noch was zu sagen habt, ist das ok.
Ich wollte einfach nur nicht - so, abbrechen.
Nochmals vielen Dank für Eure Hilfe.
Euch alles Gute und viel Erfolg
bei Euren Projekten.

LG. Günter K.

: Bearbeitet durch User
von Roland F. (rhf)


Lesenswert?

Hallo
Günter K. schrieb:
> ...Nobel-Preisträger Richard Freemann...

Feynman, Richard Feynman.

rhf

von Rbx (rcx)


Lesenswert?

(prx) A. K. schrieb:
> Zu viele Köche haben den Brei ungenießbar gemacht.

So ungenießbar ist das hier doch gar nicht. In diesem Thread hier stehen 
viele gute Hinweise drin. Also für Interessierte auf jeden Fall ein 
Lesezeichen wert, trotz der wirren Worte zwischendrin.
Einen Lob-Thread für Hahnenkämpfe zu missbrauchen, ist da viel 
schlimmer. Naja, Schmeicheleien..da kann man schon verstehen, warum 
manche hier empfindlich reagieren.

Wenn man mit Entscheidungsproblemen zu kämpfen hat, kann man sich auch 
in der Artikelsammlung hier umsehen, da ist oft was dabei, was auf einen 
schon gut ansprechend wirken kann.

von Christoph M. (mchris)


Lesenswert?

>Also Dankeschön an alle
>Die Fragen sind als 1. beantwortet
>Mein 1. Programm wird eine Eieruhr sein.

Hier hat einer eine Eieruhr mit der TPS gemacht:
https://www.elektronik-labor.de/Lernpakete/TPS/TPS17.html#b13

So programmiert man eine TPS:
https://www.youtube.com/watch?v=Jo7aX1WqtD8

Die virtuelle TPS kann man auf dem Arduino laufen lassen:
https://github.com/willie68/Arduino_TPS

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> Wenn Ihr noch was zu sagen habt, ist das ok.
> Ich wollte einfach nur nicht - so, abbrechen.
> Nochmals vielen Dank für Eure Hilfe.
> Euch alles Gute und viel Erfolg
> bei Euren Projekten.
>
> LG. Günter K.

Hallo Günter,

6502 ist eine gute Wahl. Viel Erfolg beim Lernen!

von Peter D. (peda)


Lesenswert?

Christoph M. schrieb:
> Hier hat einer eine Eieruhr mit der TPS gemacht:
> https://www.elektronik-labor.de/Lernpakete/TPS/TPS17.html#b13

Ich denke mal auch, die TPS ist, für einen blutigen Laien wie hier, eine 
gute Idee zum Einsteig in die Programmierung.

: Bearbeitet durch User
von Hippelhaxe (hippelhaxe)


Lesenswert?

>> Du hast schon einen funktionierenden Z80 Lerncomputer
>> vorliegen. [...]
>
> Er hat einen Junior: [...]

Habe gerade nochmal nachgelesen: Offenbar hat er beides :

Einen MPF-1 (mit Z80) und einen Junior-Computer (mit 6502).

Zu meinem Bedauern hat er sich entschieden, sich intensiver
mit dem 6502 zu befassen...

**schnief**

von Hippelhaxe (hippelhaxe)


Lesenswert?

Günter K. schrieb:

> Ja, der Z80 ist schwerer zu verstehen mit seinen vielen
> Tabellen im Zaks.

Das liegt dann aber an der Beschreibung im Zaks (den ich
nicht kenne) -- und nicht am Aufbau des Z80.

Für den Anfang kommt man mit (einer Auswahl aus) den
Befehlen der Grundgruppe aus. Darüberhinaus ist die eine
Hälfte der Grundgruppe ganz regelmäßig aufgebaut, was den
Lernaufwand stark reduziert.

Sei's drum.

Du hast Dich entschieden; das ist ein guter Anfang. Ich
wünsche viel Erfolg und viel Spaß.

Beitrag #7760632 wurde vom Autor gelöscht.
von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Egal was, aber einfach mal anfangen wär schon was...

von Cyblord -. (cyblord)


Lesenswert?

Wolfgang R. schrieb:
> Egal was, aber einfach mal anfangen wär schon was...

Wird nicht passieren. Es gibt Leute die machen und Leute die labern. Den 
Unterschied merkt man sofort.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Hippelhaxe schrieb:
> Einen MPF-1 (mit Z80) und einen Junior-Computer (mit 6502).

Und einen Commodore PET und einen Commodore 64
Offenbar betreibt er ein Museum.

von Al. K. (alterknacker)


Lesenswert?

Falk B. schrieb:
> Hippelhaxe schrieb:
>> Ich vermisse meinen LC80.
>> Mit dem hätte ich das Problem schon lange gelöst...

Das wird das letzte Stück sein was ich abgeben werde.

Soll in dich in die Liste eintragen.
;-)))

MfG
alterknacker

von Hippelhaxe (hippelhaxe)


Lesenswert?

Al. K. schrieb:

> Falk B. schrieb:
>> Hippelhaxe schrieb:
>>> Ich vermisse meinen LC80.
>>> Mit dem hätte ich das Problem schon lange gelöst...
>
> Das wird das letzte Stück sein was ich abgeben werde.

Naja, einen halbwegs unverbastelten LC80 würde ich sofort
nehmen...


> Soll in dich in die Liste eintragen.
> ;-)))

Hmm... ich bräuchte das Ding in der Gegenwart -- und nicht
in 10 Jahren als Grabbeigabe... :)

von Cyblord -. (cyblord)


Lesenswert?

Hippelhaxe schrieb:
> Naja, einen halbwegs unverbastelten LC80 würde ich sofort
> nehmen...

So was wird man beim Knacker nicht finden. Das Ding ist wahrscheinlich 
an allen Ecken vom Lötkolben angeschmolzen und einmal durch den 
Staubsaugerbeutel gezogen.

von Al. K. (alterknacker)


Lesenswert?

Cyblord -. schrieb:
> So was wird man beim Knacker nicht finden. Das Ding ist wahrscheinlich
> an allen Ecken vom Lötkolben angeschmolzen und einmal durch den
> Staubsaugerbeutel gezogen.

Na ja, mein lieber du liegst sehr oft falsch mit deinen Behauptungen,
aber das ist ja auch bekannt.

Beitrag "Bastler_LC80 war Steuerungszentrale einer Kleinmodellbahn."

Hier kann man sehen was aus einen Verbastelten LC80 wieder werden kann.
Mein letzter sieht natürlich besser aus, und er Funktioniert immer noch.
;-)))


MfG
alterknacker

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Angehängte Dateien:

Lesenswert?

Al. K. schrieb:
> Hier kann man sehen was aus einen Verbastelten LC80 wieder werden kann.

Ich habe ganz vergessen, wie viel Wärme die ICs damals noch abgegeben 
hatten. Kann man sich heute (für so wenig Funktionale Leistung) kaum 
noch vorstellen.

von Cyblord -. (cyblord)


Lesenswert?

Al. K. schrieb:
> Verbastelten LC80

Inwiefern widerlegt das meine Behauptung?

von Axel S. (a-za-z0-9)


Lesenswert?

Al. K. schrieb:
> Hippelhaxe schrieb:
>> Ich vermisse meinen LC80.
>> Mit dem hätte ich das Problem schon lange gelöst...
>
> Das wird das letzte Stück sein was ich abgeben werde.
>
> Soll in dich in die Liste eintragen.

Für die DDR-Computer gibt es einen wunderbaren Emulator:

http://www.jens-mueller.org/jkcemu/index.html

Wozu sollte man sich da noch verstaubte Hardware hinstellen, die zu 
altersbedingten Ausfällen neigt?

Gerade zum Lernen hat ein Emulator nur Vorteile. Man kann der CPU genau 
auf die Finger schauen, was sie gerade macht. Registeranzeige, Takt 
runterdrehen bis auf 0, Einzelschrittbetrieb. Man kann den Code 
disassemblieren oder neuen hinzufügen während er läuft. Etc. pp.

Natürlich gibts auch für 6502 basierte Hardware phantastische 
Emulatoren. Z.B. https://vice-emu.sourceforge.io/

PS: ja ich habe auch noch einen Z9001 im Schrank stehen und einen C64 
nebst 1541. Und auf dem Dachboden lungert noch ein Z1013 und sogar ein 
EC1834 herum. Das ist aber nur (N)ostalgie. Ob der C64 mit einen 
FBAS→HDMI Converter läuft?

von J. T. (chaoskind)


Lesenswert?

Wenn man nicht davon von der Vorstellung abgeschreckt ist, bei einem 
Computerspiel etwas lernen zu können, wäre das Spiel "Turing-Complete" 
einen Blick wert. Gibt es für kleines Geld bei Steam.

Fängt damit an, dass du einen Eingang mkt dem Ausgang verbindest, der 
natürlich alles so weitergivt, wie es reinkommt.

2te Lektion ist dann ein Not-Gatter dazwischen.

Danach werden dann die anderen Gatter vorgestellt.

Dann Halbaddierer usw bis hin zur ALU mit eigenen Opcodes.

Fand ich sehr schön um die allgemeine Funktionsweise von Computern zu 
verstehen.

von Al. K. (alterknacker)


Lesenswert?

Axel S. schrieb:
> Gerade zum Lernen hat ein Emulator nur Vorteile. Man kann der CPU genau
> auf die Finger schauen, was sie gerade macht. Registeranzeige, Takt
> runterdrehen bis auf 0, Einzelschrittbetrieb. Man kann den Code
> disassemblieren oder neuen hinzufügen während er läuft. Etc. pp.
>
> Natürlich gibts auch für 6502 basierte Hardware phantastische
> Emulatoren. Z.B. https://vice-emu.sourceforge.io/
>
> PS: ja ich habe auch noch einen Z9001 im Schrank stehen und einen C64
> nebst 1541. Und auf dem Dachboden lungert noch ein Z1013 und sogar ein
> EC1834 herum. Das ist aber nur (N)ostalgie. Ob der C64 mit einen
> FBAS→HDMI Converter läuft?


Es gibt Interessenten welche das Original besitzen wollen, keinen 
Emulator.

Warum gibst du deine nicht gebrauchte  alte funktionierende Hardware 
nicht ab.

Es gibt Sammler dafür die sich freuen wenn du nicht Mondpreise dafür 
haben willst.


MfG
alterknacker

von Falk B. (falk)


Lesenswert?

Hippelhaxe schrieb:
> Naja, einen halbwegs unverbastelten LC80 würde ich sofort
> nehmen...
>
>> Soll in dich in die Liste eintragen.
>> ;-)))
>
> Hmm... ich bräuchte das Ding in der Gegenwart -- und nicht
> in 10 Jahren als Grabbeigabe... :)

Das was dein heißgeliebter LC80 mit Müh und Not macht, erledigt ein 
PIC/AVR/MSP430/Whatever mit DEUTLICH weniger Aufwand an Hardware, 
Stromverbrauch, Programmieraufwand etc. Die kann man alle für nen Appel 
& Ei kaufen, tonnenweise!

von Al. K. (alterknacker)


Lesenswert?

Falk B. schrieb:
> Das was dein heißgeliebter LC80 mit Müh und Not macht, erledigt ein
> PIC/AVR/MSP430/Whatever mit DEUTLICH weniger Aufwand an Hardware,
> Stromverbrauch, Programmieraufwand etc. Die kann man alle für nen Appel
> & Ei kaufen, tonnenweise!

Es ist erstaunlich das du dein Wissen hier teilst,
das wusste bis jetzt niemand.
;-))))

MfG
alterknacker

von Axel S. (a-za-z0-9)


Lesenswert?

Al. K. schrieb:

> Es gibt Interessenten welche das Original besitzen wollen, keinen
> Emulator.

Na klar. Aber zum Lernen hat das Original nur Nachteile. Das fängt schon 
mit dem Massenspeicher an. Hast du noch einen funktionsfähigen 
Kassettenrecorder zu deinem LC80? Und läuft auf deinem LC80 ein 
Debugger, Assembler, Reassembler nebenher?

> Warum gibst du deine nicht gebrauchte  alte funktionierende Hardware
> nicht ab.

Hab ich doch geschrieben. Nostalgie. Das meiste war auch seit >10 Jahren 
nicht mehr eingeschaltet. Wer weiß ob das noch funktioniert? Oder es 
krankt an nicht (mehr) verfügbaren Peripheriegeräten. Ich schalte sie 
aber absichtlich nicht an. Denn wenn sie dann nicht mehr funktionieren, 
sind sie definitiv für die Tonne...

von Thomas W. (Gast)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Al. K. schrieb:
>> Hier kann man sehen was aus einen Verbastelten LC80 wieder werden kann.
>
> Ich habe ganz vergessen, wie viel Wärme die ICs damals noch abgegeben
> hatten. Kann man sich heute (für so wenig Funktionale Leistung) kaum
> noch vorstellen.

Kleines Anekdoetchen: Das Living Computer Museum (gegruendet von Paul 
Allen) hatte mehrere Rechner laufen. Die erste Maschine (IBM4361) wurde 
sehr schnell virtualisiert, sie hatten mehrere PDP10 und eine VAX 780-5 
am laufen. Nach dem Tod von Allen war die Zeit des Museums zu Ende. Die 
PDP10-KL liessen sich gut verkaufen (fuer 189000 US$ bei Cristie's 
versteigert 
[https://www.uni-kiel.de/de/detailansicht/news/144-versteigerung-uni-rechner-ergebnis]), 
die VAX hat der https://sdf.org/ uebernommen.

Es kam ein Bettelbrief: Wir brauchen jetzt Drei-Phasen-Strom, und die 
monatlichen Kosten fuer den Betrieb dieser VAX sind ca. 500US$ (die kWh 
wurde fuer 10USc angeboten). Das konnte der Verein nicht schultern, hat 
jetzt nur noch eine Vaxstation 4000-96 (ist auch schneller, leiser).

In den 30 Jahren ist schon etwas Fortschritt passiert.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Axel S. schrieb:
> Gerade zum Lernen hat ein Emulator nur Vorteile. Man kann der CPU genau
> auf die Finger schauen, was sie gerade macht.

Mir persönlich fehlt bei Emulatoren die Möglichkeit, den Logiktester 
oder das Multimeter anzuschließen. Oder eine LED. Die Emulation ist mir 
im wahrsten Sinne des Wortes unbegreifbar. Damals als ich die Grundlagen 
lernte, brauchte ich das, um es zu verstehen.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Axel S. schrieb:

> Wozu sollte man sich da noch verstaubte Hardware
> hinstellen, die zu altersbedingten Ausfällen neigt?

Vorsicht, ich bin nicht der TO. Ich möchte ein paar
MIDI-Geschichten probieren, die der LC80 ganz sicher
stemmen könnte. (Das weiss ich deshalb, weil ich früher
einen besessen und ähnliches Zeug schon gemacht habe...)


Wenn ich nicht einen LogiLink-MIDI-to-USB-Konverter
hier liegen hätte, der an meiner Linuxkiste nur stark
stotternde Aufzeichnung produziert, hätte ich gar nicht
mit diesem Thema angefangen...


> Gerade zum Lernen hat ein Emulator nur Vorteile.

"... NUR Vorteile..." Das sehe ich nicht so.

Mit einem Emulator kann man erstmal nur "so tun, als
ob". Eine Weile mag das erstmal genügen, ja.

Ein Einplatinenrechner ist tatsächlich echtzeitfähig,
und man kann damit echte, harte Hardware steuern -- zum
Beispiel Endlagenschalter abfragen, Motoren linksrum oder
rechtsrum drehen lassen, Schrittmotoren ansteuern...
Das hätte bei mir schon eine gesteigerte Lernmotivation
zur Folge.


> Man kann der CPU genau auf die Finger schauen, was sie
> gerade macht. Registeranzeige, Takt runterdrehen bis
> auf 0, Einzelschrittbetrieb. Man kann den Code
> disassemblieren oder neuen hinzufügen während er läuft.
> Etc. pp.

Das meiste davon geht auch auf echter Hardware. Für den
Z9001 hatte ich mir damals einen Testmonitor programmiert,
der bot eine komplette Registeranzeige und einen Einzel-
schrittbetrieb.
Mein Disassembler ist allerdings nie fertig geworden...

Auf dem LC80 sind solche Späße natürlich mangels
komfortabler Anzeige nicht machbar... aber darum geht
es mir ja auch nicht.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Axel S. schrieb:

> Al. K. schrieb:
>
>> Es gibt Interessenten welche das Original besitzen wollen,
>> keinen Emulator.
>
> Na klar. Aber zum Lernen hat das Original nur Nachteile.

Bitte nicht alles in einen Topf werfen:

1. Wer unbedingt ein Original haben will, wird das wohl
   in den seltensten Fällen zum Lernen verwenden wollen.

2. Wer die Grundlagen erlernen will, kann sehr wohl mit
   einem Emulator gut bedient sein -- zumindest eine Zeit
   lang. Es mag der Punkt kommen, wo Interaktion zu echter
   Hardware gewünscht wird; da ist m.E. ein Einplatinen-
   rechner im Vorteil. Der kann (und sollte) aus einigermaßen
   aktuellen Komponenten aufgebaut sein...


> Das fängt schon mit dem Massenspeicher an. Hast du noch
> einen funktionsfähigen Kassettenrecorder zu deinem LC80?

Nein -- aber einen PC mit Soundkarte. Wenns ganz schlimm
kommt, auch noch einen TASCAM DR-07X.


> Und läuft auf deinem LC80 ein Debugger, Assembler,
> Reassembler nebenher?

DD 21 00 21 CD EA 08 76

von Axel S. (a-za-z0-9)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Axel S. schrieb:
>> Gerade zum Lernen hat ein Emulator nur Vorteile. Man kann der CPU genau
>> auf die Finger schauen, was sie gerade macht.
>
> Mir persönlich fehlt bei Emulatoren die Möglichkeit, den Logiktester
> oder das Multimeter anzuschließen. Oder eine LED.

Punkt für dich. Beim Emulator geht das wenn, dann nur virtuell.


Hippelhaxe schrieb:
>> Man kann der CPU genau auf die Finger schauen, was sie
>> gerade macht. Registeranzeige, Takt runterdrehen bis
>> auf 0, Einzelschrittbetrieb. Man kann den Code
>> disassemblieren oder neuen hinzufügen während er läuft.
>> Etc. pp.
>
> Das meiste davon geht auch auf echter Hardware. Für den
> Z9001 hatte ich mir damals einen Testmonitor programmiert,
> der bot eine komplette Registeranzeige und einen Einzel-
> schrittbetrieb.

Es geht nur mit Verrenkungen. Gerade beim Z9001 kenne ich das. Ich hatte 
IDAS (interpretierender Dialog-Assembler) - im Prinzip ein Monitor auf 
Steroiden - als ROM-Modul. Der ging aber nicht mit dem ROM-BASIC 
zusammen (Adresskonflikt). Debuggen von gemischten BASIC/ASM Programmen? 
Nope. Debuggen von Programmen, die im Addressraum des ROM-Moduls laufen? 
Nope. usw. usf.

Wieviel einfacher ist das im Emulator. Da läuft der Assembler, Monitor, 
$YOU_NAME_IT nicht im Adressraum der zu untersuchenden CPU. Da kann der 
auf alles zugreifen. Klar ist das nicht das gleiche wie auf der alten 
Hardware zu spielen. Es ist besser! Schon die "Tastatur" des Z9001 ist 
doch eine Zumutung. Klar wir hatten damals nichts besseres. Aber das ist 
kein Grund, es heute noch unbedingt benutzen zu wollen.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Axel S. schrieb:

> Hippelhaxe schrieb:
>>> Man kann der CPU genau auf die Finger schauen, was sie
>>> gerade macht. Registeranzeige, Takt runterdrehen bis
>>> auf 0, Einzelschrittbetrieb. Man kann den Code
>>> disassemblieren oder neuen hinzufügen während er läuft.
>>> Etc. pp.
>>
>> Das meiste davon geht auch auf echter Hardware. Für den
>> Z9001 hatte ich mir damals einen Testmonitor programmiert,
>> der bot eine komplette Registeranzeige und einen Einzel-
>> schrittbetrieb.
>
> Es geht nur mit Verrenkungen.

Die einzige "Verrenkung" bestand bei mir darin, dass ich den
Testmonitor erstmal programmieren musste...


> Gerade beim Z9001 kenne ich das. Ich hatte IDAS
> (interpretierender Dialog-Assembler) - im Prinzip ein Monitor
> auf Steroiden - als ROM-Modul.

Ich musste den IDAS immer erst per Tonband in den RAM laden...


> Der ging aber nicht mit dem ROM-BASIC zusammen
> (Adresskonflikt).

ROM-BASIC gab' bei mir nicht. Dafür später ein von meinem
Vater selbstgefädeltes PIO-Modul...


> Debuggen von gemischten BASIC/ASM Programmen? Nope.

War nicht relevant für mich.

Es sollte ein reines Assemblerprogramm entwickelt werden,
dass später auf einem eingebetteten K1520 laufen sollte,
also im Zielsystem keine Tastatur, keine Anzeige, nix.
Nur Dateninput per PIO und Datenausgabe auf einen Drucker,
und natürlich bissl Verarbeitung zwischendurch.


> Debuggen von Programmen, die im Addressraum des ROM-Moduls
> laufen? Nope. usw. usf.

Traf mangels ROM-Modul bei mir nicht zu.


> Wieviel einfacher ist das im Emulator. Da läuft der Assembler,
> Monitor, $YOU_NAME_IT nicht im Adressraum der zu untersuchenden
> CPU.

Es hängt vom Einzelfall ab, ob das relevant ist.

Für uns war damals entscheidend, dass wir die Dateneingabe per
PIO hardware- und interruptmäßig GENAU SO nachbilden konnten,
wie es dann auf der Zielhardware sein würde. Die Testdaten für
den Z9001 (den Entwicklungsrechner) kamen über das selbst-
geklöppelte PIO-Interface von einem -- TUSCH -- LC80...


> Klar ist das nicht das gleiche wie auf der alten
> Hardware zu spielen.

Ich fürchte, Du missverstehst mich.

Es geht mir nicht darum, dass man unbedingt auf der ALTEN
Hardware herumspielen muss, denn, wie Du selbst sagst...

> Schon die "Tastatur" des Z9001 ist doch eine Zumutung.

...in der Tat, das ist sie wirklich.

Es geht mir nur darum, dass es manchmal nützlich sein kann,
auf REALER Hardware herumzuspielen -- und nicht alles nur
zu simu- oder zu emulieren.

von Mario M. (thelonging)


Lesenswert?

Hippelhaxe schrieb:
> Ich möchte ein paar
> MIDI-Geschichten probieren, die der LC80 ganz sicher
> stemmen könnte.

Stelle ich mir spannend vor mit einem freischwingenden(!) CPU-Takt von 
900 kHz.

von Spess53 .. (hardygroeger)


Lesenswert?

Hi

>Stelle ich mir spannend vor mit einem freischwingenden(!) CPU-Takt von
>900 kHz.

Wenn der Takt stabil genug für das Kassetteninterface ist, reicht es 
auch für MIDI.

MfG Spess

von Al. K. (alterknacker)


Angehängte Dateien:

Lesenswert?

So sah mein LC80 Nachbau aus, mit 1510/1520 Busverbindung.

MfG
alterknacker

: Bearbeitet durch User
von Günter K. (enk)


Lesenswert?

Spess53 .. schrieb:
> Hi
>
>>Stelle ich mir spannend vor mit einem freischwingenden(!) CPU-Takt von
>>900 kHz.
>
> Wenn der Takt stabil genug für das Kassetteninterface ist, reicht es
> auch für MIDI.
>
> MfG Spess

Hallo Leute,  ...
... wie ich sehe, wurde da ganz gut was zusammengebaut.
Ist das ein MIDI um Musik zu machen? Oder ist MIDI hier was anderes?

Aber ich habe noch eine Frage:
Jemand hatte freundlicherweise, das Buch vom Junior geschickt.
Leider hatte ich mir das nicht kopiert; ist es möglich,
das ich mir das auf den Rechner so, auf dem Rechner Speichere?
LG. Enk

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> Hallo Günter,
>
> 6502 ist eine gute Wahl. Viel Erfolg beim Lernen!

Hallo Wolfgang R.

Vielen Dank für deine guten Wünsche, und Dir zu Deier Arbeit viel 
Erfolg.
Hier im Thread beim flüchtigen Durchlesen, las ich schon interessantes. 
Leider habe ich diesen LINK nicht mehr gefunden. Ich las sogar, das er 
einen Assembler hätte. Kann ich mir im 7-Segmentcode aber kaum 
vorstellen. Jetzt würde ich gerne dieses Link wieder anklicken, oder kam 
es sogar von Dir?

Damals wurde dieser Computer im Buchhandel angeboten. Bekam aber auch 
ein Angebot im Elektronik-Laden. Also kaufte ich das Gerät im 
Elektronik-Laden.
Ein Buch war auch dabei. - Aber nun habe ich es nicht mehr.
Auch im Internet fand ich nur noch die Vorder-Seite des Buches. Hier im 
Thread, hatte ich aber darin gelesen.

LG. Enk

PS.:
Ich hatte nochmal durchgescrollt
und leider nicht mehr gefunden.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> Hallo Wolfgang R.

Hallo Günter,

ich habe dir eine PN gesendet...

LG,
Wolfgang

von Jens B. (dasjens)


Lesenswert?

Thomas Z. schrieb:

> Lass dir gesagt sein ASM mit 8086 ist zwar machbar für dich aber in den
> nächsten 10 Jahren unerreichbar.

So schwer isses nicht.

cli
hlt

von Jens B. (dasjens)


Lesenswert?

Axel S. schrieb:
> Schon die "Tastatur" des Z9001 ist
> doch eine Zumutung.

Hey, das ist die größte Resettaste die ich je gesehen hatte.
Pullover ausziehen und das Metall anfassen. reset

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> Günter K. schrieb:
>> Hallo Wolfgang R.
>
> Hallo Günter,
>
> ich habe dir eine PN gesendet...
>
> LG,
> Wolfgang

Hallo Wolfgang,

trotz guter Wille;
leider war ich mit der PN nicht klar gekommen, - . - ?

Ich antwortete ungewollt, an mir selber.
Ich sah sehr viele Bilder. Wie komme ich an das Buch?
LG. Enk  Günter K.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Hi Günter,

Ich hab dir noch eine PN gesendet mit meiner Mailadresse. Du musst mir 
eine Mail senden. Dann kann ich direkt antworten.

von Thomas W. (Gast)


Lesenswert?


von Mario M. (thelonging)


Lesenswert?

Spess53 .. schrieb:
> Wenn der Takt stabil genug für das Kassetteninterface ist, reicht es
> auch für MIDI.

Die 31250 Baud von MIDI sind eine ganz andere Hausnummer als die 111 
Baud des Kassetteninterfaces.

von Günter K. (enk)


Lesenswert?

Thomas W. schrieb:
> Gibt ihm doch den Link (Erster Band Junior deutsch):
>
> 
http://retro.hansotten.nl/uploads/junior/books/de/ElektorJuniorComputerBuchDE1.pdf
>
> Und den zweiten Band, deutsch:
>
> http://retro.hansotten.nl/uploads/junior/books/de/JuniorComputer_book_02.pdf

Hallo Thomas W.

ein vielfaches DANKESCHÖN! Es hat mich sehr gefreut.
Ich habe auch Deine vielen Sachen bewundert, das ist wirklich 
erstaunlich.
Diese guck ich mir noch einmal an, vielleicht auch nur, um mein Wissen 
ein klein wenig zu erweitern.
LG. Enk alias Günter K.

von Günter K. (enk)


Lesenswert?

Hallo leute,

damit ich es nicht vergesse im Stress der Vorweihnacht u. Weihnachszeit;
ich wünsche allen frohe Weihnachten und ein frohes neues Jahr mit 
Gesundheit und Erfolg bei den Konstruktionen im Jahre 2025!

Dies sendet der enk
Günter K.

von Norbert L. (norbert_l780)


Lesenswert?

Hallo,

(Verfasser der erwähnten Seiten zum 6502, https://masswerk.at/6502, 
hier.)

Zur Frage: Wie funktioniert ein Assembler oder Disassembler?

Ich denke, die Frage ist am Einfachten mit einem historischen Rückblick 
beginnend zu beantworten.

Einige der ersten symbolischen Assembler sind für die DEC PDP-1 (der 
Computer, auf dem 1962 das erste digitale Videospiel "Spacewar!" 
entstand). Wie viele Computer aus dieser Zeit hatte die PDP-1 ein 
"single word instruction set", will heißen, der Prozessor verarbeitete 
ein einziges, längeres Befehlswort (hier 18-bit). Dieses Befehlswort 
besteht aus der eigentlichen Anweisung in den höchtswertigen bits und 
der Addresse, auf die es sich bezieht. In diesem Fall sieht dies etwa 
so aus:
1
BBBBBiAAAAAAAAAAAA

(B: 5-bit Befehlscode, i: Bit für indirekte Addressierung, A: 12-bit 
Adresse)

D.h.: Wir haben immer (inklusive dem "i-bit") 6 bits Befehlscode und 
eine 12-bit Addresse. Typischerweise gibt es nur einen 
Adressierungsmodus: eine Speicheradresse, aus der der eigentliche Wert 
gehohlt werden soll oder in die ein Wert geschrieben werden soll.

Beispiel: wir laden den Wert in Speicheradresse dezimal 1024 oder oktal 
2000 in den Akkumulator. (In der Zeit kamen bits üblicherweise in 
Vielfachen von 3, was sich einfach auf Kontrollanzeigen, etc, in 
Dreiergruppen zusammenschauen lässt und sich dann in Oktalzahlen 0...7 
übersetzen. Beispielsweise sind die 6 bit Befehlscode dann 2 
Oktalziffern, und die Adresse in 4 Oktalziffern. Insofern verwenden wir 
das auch hier.)
1
lac 2000  =  202000

D.h.: das Befehlswort besteht aus der eigentlichen Anweisung 20xxxx 
("lac", Load Accumulator) und der Adresse 2000, auf die sich diese 
Anweisung bezieht (dem Operanden).

Ein Assembler für ein solches System addiert einfach Werte in einer 
Zeile zum entsprechenden Befehlswort. Dazu unterhält es ein 
Symboltabelle, in der beispielsweise "lac" als (oktal) 200000 
vordefiniert ist. Wir können allerdings selbst Symbole hinzufügen, etwa, 
indem wir eine Speicherstelle mit einem Label markieren oder ein Symbol 
direkt definieren ("x = 1000", etc.)
1
      lac x      /200000 + x
2
      ...
3
x,    1000       /Speicherstelle für x mit Wert 1000

Ein allgemeines Problem dabei ist, dass wir hier "x" zuerst in seiner 
Verwendung als Operand begegnen, bevor wir auf dessen Definition (das 
Label) stoßen. Darum arbeiten Assembler im allgemeinen einen 
Programmtext zweimal ab: Ein erstes Mal, um alle Definitionen mit den 
zugehörigen Speicheraddressen zu sammeln, und ein zweites Mal, um dann 
den eigentlichen Programmcode zu generieren (mit den dann bekannten 
Definitionen).

Ein Disassembler funktioniert entsprechend einfach umgekehrt: Wir 
"sehen" das Befehlswort "202000" und können dies unmittelbar in die 
eigentliche Anweisung (20xxxx = "lac") und die Adresse (2000) zerteilen. 
Eine einfache, vordefinierte List hält dabei die Symbole für die 
übersetzten Befehlscodes ("20": "lac", etc).

Typischerweise produziert ein Assembler auch eine Liste der verwendeten 
Symbole und der zugehörigen Adressen, den sogenannanten "symbol table". 
Solche Symbol Tables lassen sich meist in Assembler und Disassembler 
importieren, um diese als Definitionen einzubeziehen. (Im Assembler, um 
bereits bestehende Definitionen wiederzuverwenden, im Disassembler, um 
den generierten Programmcode mit mehr Bedeutung zu erfüllen.)
Ist beispielsweise in einem solchen Symbol Table definiert, dass die 
Adress "2000" als "x" definiert ist, können wir dann "lac 2000" als "lac 
x" ausgeben.

Als letztes wesentliches Element gibt es sogenannte Assemblerdirektiven 
(mitunter auch "Pragma" genannt), die den inneren Zustand des Assemblers 
betreffen. Etwa: Was ist die Startadresse für unseren Code? In welchem 
Zahlensystem sind unsere  Daten angegeben, stc. (Diese können auch 
durchaus komplex werden und Dinge wie bedingte Assemblessierung mit "IF 
…" beinhalten, was wiederum eine kleine Programmiersprache im Assembler 
selbst voraussetzt.)

Soweit, so eigentlich ganz einfach. Auch wenn diese einfacheren Zeiten 
nun weit zurück liegen, sollte es doch das Grundprinzip illustrieren.

Mit der Zeit werden Speicherzugriffe immer schneller, was wiederum 
erlaubt, mit kleineren Einheiten und mehreren Speicherzugriffen zu 
arbeiten. Das bedeutet v.a.: kleinere Register und damit billigere 
Hardware bei zumindest gleicher Rechenleistung. So begegnen wir dann in 
den 1970ern Microprozessoren und Microcontrollern.

(Der Intel 8008 ist noch eine System-on-a-Chip Implementation des aus 
diskreten Komponenten aufgebauten Prozessors des Datapoint DP2200 
Terminals (insgeheim der erste PC), der Motorla M6809 ist dann der 
erste, explizit dafür ausgelegte Prozessor, der wiederum für den 
vereinfachten und deutlich kostengünstigeren MOS 6502 Paten steht. Aus 
dem 8008 entsteht dann wiederum der 8080, der vermehrt direkten 
Speicherzugriff erlaubt – das DP2200 Terminal und damit auch der 8008 
war rund um ein sequenzielles Intel Scheiberegister als Speicher 
aufgebaut (einer der ersten gangbaren und erfolgreichen Chips), darum 
die viele interne Register und ursprünglich nur beschränkten 
Speicherzugriffe – und daraus dann wiederum der Z80 mit seinen 
erweitertem Befehlssatz.)

Speicherstellen kommen nun typischerweise in 8-bit Einheiten, dem 
wohlbekannten Byte (oder Oktett) und wir plagen uns mit 
Hexadezimalzahlen (um den 8-bit Umfang 0..255 als 00..FF einigermaßen 
übersichtlich abzubilden). Der Befehlscode nimmt nun ein eigenes Byte 
ein, gefolgt (so erforderlich) von einem oder mehreren Bytes für den 
Operanden (die Adresse oder ein direkt zu verwendender Wert).

In der Zwischenzeit erfuhren Prozessoren Erweiterung für die 
Unterstützung höherer Programmiersprachen, insbesonders Indexregister, 
die die eigentliche, effektive Speicheradresse modifizieren und 
Prozessorstacks, die Rekursion und Subroutinen ohne 
selbstmodifizierenden Code erlauben.

Damit explodiert aber auch die Zahl der Addressierungsmodi. Die einfache 
Grundoperation "lade einen Wert in den Akkumulator" kommt nun in 
mehrfacher Ausführung, je nachdem, was der Operand nun eigentlich ist, 
oder, anders gesagt, wie dieser zu beziehen ist. Am 6502 ist dies:
1
Addressierungsart  Assembler     Code     Bytes
2
-----------------------------------------------
3
immediate          LDA #xx       A9 xx      2
4
zeropage           LDA xx        A5 xx      2  
5
zeropage,X         LDA xx,X      B5 xx      2 
6
absolute           LDA xxxx      AD xx xx   3  
7
absolute,X         LDA xxxx,X    BD xx xx   3
8
absolute,Y         LDA xxxx,Y    B9 xx xx   3
9
(indirect,X)       LDA (xx,X)    A1 xx      2  
10
(indirect),Y       LDA (xx),Y    B1 xx      2

Wie vielleicht zu sehen, sind die Befehle nun nicht nur unterschiedlich 
lang, sondern es entsteht eine Inkongruenz zwischen dem Maschinencode 
und dem Assemblercode, hinsichtlich dessen, wo Bedeutung repräsentiert 
ist: In der Maschinensprache ist die Addressierungsart Teil des 
Befehlscodes, aus dem dann auch die Zahl der noch zu ladenden Bytes 
folgt. Im Assembler wollen wir aber den Grundgedanken "Lade etwas in den 
Akkumulator" beibehalten und fassen diese 8 Befehle in "LDA" zusammen. 
Die Adressierungsart und die Länge des Befehls sind dabei im Operanden 
repräsentiert.

Daraus flogt, dass die Definition des Operanden etwas rigider wird und 
Teil der wesentlichen Syntax des Assemblers. Wenn der Assembler auf 
"LDA" trifft, entspricht das noch nicht direkt einem 
Maschinensprachencode. Wir müssen vielmehr erst dem Operanden 
untersuchen:

* Fängt dieser mit "#" an (immediate, unmittelbarer Wert)?
* Fängt dieser mit einer Klammer an? Wenn ja, endet dieser mit ",X)" 
oder mit "),Y"?
* Ist der Operand 1 oder 2 Bytes lang? Endet er in ",X" oder ",Y"?

D.h. in der Praxis, wir gehen Zeile um Zeile den Programmtext durch und 
untersuchen:

* Fängt die Zeile mit einem Label an (einem Symbol, das keinen Befehl 
repräsentiert)? Wenn ja, merken wir uns die Adresse.
* Ist das nachste Symbol ein Befehlscode (Opcode)? – Hoffentlich…
* Ist für diesen Befehl ein Operand erforderlich?
* Wenn ja, untersuche den Operanden (siehe oben).

Um das zu ermöglichen, brauchen wir eine Tabelle, die uns besagt, dass 
"LDA" in 8 unterschiedlichen Adressierungsarten kommt. Da alle 
Adressierungsarten einen Operanden erfordern, müssen wir diesen 
untersuchen und mit dieser Tabelle abgleichen. "LDA $2000,X" (LDA 
absolut, X-indexed) ist besipielsweise ein möglicher Befehl, "LDA 
$2000,Y" (LDA absolut, Y-indexed) dagegen aber nicht. Erst dann können 
wir den entsprechenden Befehlscode bestimmen ("ah, dieses 'LDA' ist 
'$BD'!") und mit der erforderlichen Länge des Operanden (dafür benötigen 
wir eine zweite Tabelle) bestimmen und abgleichen, und schließlich den 
Maschinensprachencode generieren.

Wie zuvor benötigen wir dafür zwei Durchgänge (Passes), in denen wir zum 
einen etwaige Labels sammeln und dafür auch die effektive Länge der 
Befehle im Maschinensprachencode ermitteln, und einen zweiten, in dem 
wir den eigentlichen Code generieren.

Für den Disassembler wird es ebenfalls etwas komplizierter, aber nicht 
gar so schlimm: Wenn wir auf "$BD" stoßen, dann wissen wir, dass dies 
zur "LDA"-Gruppe von Befehlen gehört, dass dieser Befehl insgesamt 3 
Bytes lang ist, und, dass wir ein ",X" an den Operanden (die Adresse 
oder das Symbol, das diese vertritt) anhängen müssen. In der Praxis 
haben wir auch dies in Tabellen gespeichert:

* $BD ist (a) ein gültiger Befehl, (b) das Befehlsymbol lautet "LDA", 
(c) der Befehl hat einen Operanden von 2 Bytes Länge, (d) wir müssen den 
Operanden mit ",X" am Ende formatieren. Also:

* "LDA" ausgeben
* das Suffix ",X" merken
* noch zwei Bytes holen
* die beiden Bytes in eine hübsche, 4-stellige Hexadezimalzahl 
formatieren und als Operand (Adresse) ausgeben
* optional: gegebenfalls die Adresse durch ein Symbol aus einem Symbol 
Table ersetzen, so definiert und verfügbar (beispielsweise für bekannte 
Hardware-Adressen) und dieses als Operand ausgeben
* nicht vergessen, ",X" für die Indizierung mit dem X-Register 
auszugeben.

Eine kleine Zusatzkomplikation dabei ist, dass der 6502 ein "little 
endian" Prozessor ist. D.h., ist ein Operand zwei Bytes lang (eine 
absolute Adresse), so kommt das niederwertigere Byte (Low-Byte) zuerst, 
gefolgt vom höherwertigeren Teil der Adresse (High-Byte). Wir hingegen 
sind gewohnt, Zahlen mit der höchstwertigen Ziffer voran zu handhaben. 
Also müssen wir im Hintergrund Zahlen nicht nur in ordendliche Bytes 
unterteilen, sondern diese beiden Bytes quasi unter der Hand 
austauschen. (aus "04 20" wird also "$2040" und umgekehrt.) Dies gilt 
sowohl für Assembler und Disassembler.

Ein letztes Problem für Disassembler ist, dass sich etwaige 
Datensegmente nicht grundlegend von möglichem Befehlscode unterscheiden. 
Wenn es keinen gültigen Befehl für eine Byte gibt, dann ist die 
Situation ziemlich klar. Aber für die Mehrzahl der möglichen Bytes gibt 
es einen Befehlscode – und wir werden versuchen, diesen zu 
interpretieren, so sinnlos das auch sein mag. Nicht nur das, da Befehle 
unterschiedlich viele Bytes einnehmen können, stehen die Chancen gut (so 
etwa 3:1), dass wir darunter einen darauf folgenden Einsprungspunkt für 
gültigen Code verpassen. Die Lösung bringt auch hier ein Symbol Table, 
der definiert, welche Speicherbereiche bloße Daten beinhalten und nicht 
zu interpretieren sind.

Und das war's dann auch, so ungefähr… :-)

(In der Praxis lässt sich das dann nach Belieben komplizieren, etwa, 
indem wir mehrere Assembler-Dialekte unterstützen, oder, wenn wir Code 
für den BBC-Micro unterstützen wollen, dessen BBC-BASIC nicht nur 
direkte Einbettung von 6502 Assembler-Code erlaubt, sondern auch 
umgekehrt BASIC-Variablen und einige BASIC-Ausdrücke im Assembler-Code, 
und wir so auch ein Stück BASIC unterstützen müssen. Aber das ist eine 
andere Geschichte…)

: Bearbeitet durch User
von Sigint 112 (sigint)


Lesenswert?

Mein Vorschlag: https://gigatron.io/

von Günter K. (enk)


Lesenswert?

Also, Hallo Leute,
lieber  von Norbert L. (norbert_l780)!
Das ist ein sehr schöner und sehr guter Beitrag,
in Anbetracht der Komplexität, geht es erst mal nur darum,
einen -einfachen- Prozessor zu verstehen; und das ist nicht einfach.
Und ich finde es sehr gut, dass die dort entsehtnden Probleme
beschrieben sind. - Und, ich interressiere mich dafür.

Vielleicht kann man aus meinem Schreibstil ersehen, dass ich
unbewusst etwas schreibe war dort nicht hinein gehört.

Doch nur ganz kurz, und ich möchte mich auch weiter nicht darüber
auslassen; ich hatte bis zum 21. Lebensjahr, eine sehr schlechte 
Kindheit.
Hier geht es um den Prozessor bzw. Prozessoren. Und darum wiederhole 
ich,
ich interessiere mich dafür. Ich melde mich noch mal,
denn ich habe nachher einen Termin. Bis später
viele Grüße
Enk.

von Günter K. (enk)


Lesenswert?

Leider habe ich hier an dieser Stelle meine nächsten
aber schon interessanten Text verloren.
Ob sich der noch dazwischenschieben lässt?

Norbert L. schrieb:
> Ein letztes Problem für Disassembler ist, dass sich etwaige
> Datensegmente nicht grundlegend von möglichem Befehlscode unterscheiden.
> Wenn es keinen gültigen Befehl für eine Byte gibt, dann ist die
> Situation ziemlich klar. Aber für die Mehrzahl der möglichen Bytes gibt
> es einen Befehlscode – und wir werden versuchen, diesen zu
> interpretieren, so sinnlos das auch sein mag. Nicht nur das, da Befehle
> unterschiedlich viele Bytes einnehmen können, stehen die Chancen gut (so
> etwa 3:1), dass wir darunter einen darauffolgenden Einsprungspunkt für
> gültigen Code verpassen. Die Lösung bringt auch hier ein Symbol Table,
> der definiert, welche Speicherbereiche bloße Daten beinhalten und nicht
> zu interpretieren sind.
Nun da, wollte ich mir insoweit helfen, dass ich mir Hinweise dazu 
parallel schreibe. Schön ist aber auch, dass eine Prog. Adressbytes der 
Reihe nach vorzufinden ist. Ich würde gerne ein Bitmuster in eine 
Exel-Tabelle unterbringen. Zu diesem Zweck ein Bitmuster erstmal nur für 
Großbuchstaben schrieben, und den Assemblercode vielleicht bewusst in 
den 7-Segment-Code
Leider ist mein Juniorcomputer ist defekt. Der Z80 zu Komplex.
Ich möchte in kleinen Schritten, vorwärts kommen.

An den Administrator:
Kann man vielleicht meinen zuvor verlorener Text, noch zuvor 
unterbringen?
Jedenfalls lieber Norbert L hast Du einen schönen kompakten Beitrag 
geschrieben. Und es werden Bestimmt noch Fragen kommen, wie ich selbst 
erzeugte Pixel aus einer Exel-Datei in eine Assembler-Routine, und eine 
Assembler-Routine in eine Exel-Routine, hineinbekomme.
Zuerst plane ich den 7-Segment-Code weil das alles in 1 Byte 
hineinpasst.
Leider kann ich dabei nicht die Schräglage erstellen, es sei denn,
ich verknüpfe sie leicht versetzt. Bis später.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Leider ist mein Juniorcomputer ist defekt. Der Z80 zu Komplex.
> Ich möchte in kleinen Schritten, vorwärts kommen.

Hoffnungslos.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> Leider ist mein Juniorcomputer ist defekt.

Lässt sich leicht reparieren. Wenn du Hilfe brauchst, schreib mich an.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Angehängte Dateien:

Lesenswert?

Der Junior läuft...

von Günter K. (enk)


Lesenswert?

Hallo Wolfgang und alle! -, ich staune nur!

Vielen, vielen Dank!
Ich freue mich darüber!

Nun weiß ich aber nicht, - wie man sich im Forum korrekt verhält,
und möchte dahingehend keine Fehler machen. Habe eben noch einmal
die Nutzungsbedingungen gelesen, und möchte sogesehen auch nicht
ausversehen stören. - Ich schreibe oft viel zu viel.
Das ist aber deshalb, weil ich mich genau ausdrücken möchte.

Zum Juniorcomputer:
Da war sicherlich einiges kaputt, - er hat jahrelang
auf einem feuchten Speicher gelegen.

Ich melde mich noch mal.
Am 01.03.2025 werde ich 80.

Viele
Grüße
Günter K.
allias Enk.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> Da war sicherlich einiges kaputt, - er hat jahrelang
> auf einem feuchten Speicher gelegen.

Nein, garnicht - er hat auf Anhieb funktioniert - wenn man das Display 
einschaltet. ;-)

Nur die Tasten prellen stark, die werde ich noch reinigen!

von Thomas W. (Gast)


Lesenswert?

Wolfgang R. schrieb:
> Günter K. schrieb:
>> Da war sicherlich einiges kaputt, - er hat jahrelang
>> auf einem feuchten Speicher gelegen.
>
> Nein, garnicht - er hat auf Anhieb funktioniert - wenn man das Display
> einschaltet. ;-)

Wenn man das Geraet einschaltet funktioniert es viel besser.

Du hast auch die Modifikation 2708 -> 2716 (und nur noch 
5V-Spannungsversorgung) eingebaut. Das war auch das erste, was ich 
gemacht hatte.

Schon schoenes Teil (und jetzt ca. 45 Jahre alt).

Gruesse

Th.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Thomas W. schrieb:
> Du hast auch die Modifikation 2708 -> 2716 (und nur noch
> 5V-Spannungsversorgung) eingebaut. Das war auch das erste, was ich
> gemacht hatte.

noch trickreicher: statt 2708 (1k, +5/-5/+12V) einen MM2758 verwendet 
(1k, +5V).

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> Nur die Tasten prellen stark, die werde ich noch reinigen!

DANKESCHÖN!  Kommt man an die Kontakte heran?

Liebe Grüße
Günter K.
(enk)

von Thomas W. (Gast)


Lesenswert?

Wolfgang R. schrieb:

> Nur die Tasten prellen stark, die werde ich noch reinigen!

Es kann sein dass das vergebene Liebesmuehe ist: Ich hatte damals (ca. 
1983) Original ITT-Schadow-Tasten verwendet (ich sehe gerade, dass 
Reichelt 7EUR pro Stueck aufruft. Das ist der Gold-Preis).

Auch mit diesen Tasten war das nicht optimal (bei der Eingabe der 
Hex-codes gab es haeufig doppelte Zeichen, also ein A -> AA). Lt. Junior 
Computer Buch Band 2, p. 127 ("Tastenprellen") war das Entprellen so 
geloest: Die Zeit fuer das Display-Update ist die Delay-Time fuer die 
Entprellung (siehe SCAN, $1D4D):
1
SCAN
2
        LDX     #$02        ; Fill up the display buffer
3
        LDY     #$00
4
5
FILBUF
6
        LDA     (CURADL),Y  ; Start filling at OPCode
7
        STA     INH,X
8
        INY 
9
        DEX 
10
        BPL     FILBUF
11
        JSR     OPLEN       ; Store instruction length in bytes
12
SCANA
13
        JSR     SCANDS      ; Display current instruction
14
        BNE     SCANA       ; Key released ?
15
SCANB
16
        JSR     SCANDS      ; Display current instruction
17
        BEQ     SCANB       ; Any key pressed
18
        JSR     SCANDS      ; Display current instruction
19
        BEQ     SCANB       ; Any key still pressed ?
20
        JSR     GETKEY      ; If yes, return with key in ACC
21
        RTS

Vielleicht wuerde man die Entprellung heute anders machen, aber am 
Anfang der Sourcedatei findet man:
1
;----------------------------------------------------------------------------
2
;
3
; SOURCE LISTING OF ELEKTOR'S JUNIOR COMPUTER
4
;
5
; WRITTEN BY A. NACHTMANN
6
;
7
; DATE:  7 FEB. 1980
8
;
9
; THE FEATURES OF JUNIOR'S MONITOR ARE:
10
;
11
; HEX ADDRESS DATA DISPLAY (ENTRY VIA RST)
12
; HEX EDITOR (START ADDRESS $1CB5)
13
; HEX ASSEMBLER (START ADDRESS $1F51)
14
;
15
;----------------------------------------------------------------------------

Mit den Moeglichkeiten die man damals (1980!) hatte war das schon eine 
gute Leistung des Elektor-Verlages.

von Thomas W. (Gast)


Angehängte Dateien:

Lesenswert?

Dann haenge ich auch ein Photo von meinen Junior-Computer an: Achte auf 
den Quarz, extra gross!

Ich hatte einen Bausatz (koennte direkt von Elektor gewesen sein), mit 
schoenen gefraesten Tasten.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

An die Kontakte kommt man gut ran. Ist etwas mühsam, aber es geht.

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,

es wird schon werden; - da bin ich ziemlich sicher. Und
mit der Zeit, wenn auch wenig, habe ich wenigstens
doch noch etwas, gelernt.

Und ebenso
mit der Zeit, dem heutigen Tage, werde ich 80 Jahre alt. - ;-)  :-)))
Denn heute ist der 01.03.2025.
Liebe Grüße
Günter K.
(enk(

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> An die Kontakte kommt man gut ran. Ist etwas mühsam, aber es geht.
- SUPER! Es ist estaunlich! Bei so, kleinen Schaltern! -.
Liebe Grüße
Günter K.
(enk)

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Herzlichen Glückwunsch zum Ehrentag!

von Falk B. (falk)


Lesenswert?

Wolfgang R. schrieb:
> Herzlichen Glückwunsch zum Ehrentag!

Der hier?

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

Ein Ständchen darf auch nicht fehlen. Das konnte ich mal auswendig! 8-0

https://www.youtube.com/watch?v=NntcUxo__eY

(Ein Freund von mir hat heute auch Geburtstag, darum hab ich den Unfug 
im Kopf)

von Günter K. (enk)


Lesenswert?

Falk B. schrieb:
> Wolfgang R. schrieb:
>> Herzlichen Glückwunsch zum Ehrentag!

DANKE an Alle, - ja,
ich hatte auch einen schönen Tag!
Viele liebe Grüße
Günter K.
(enk)

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Angehängte Dateien:

Lesenswert?

Sodele, der Junior geht heute wieder an den Besitzer zurück. Richtig 
defekt war an diesem Gerät nichts - der Umbau auf eine einzelne 
Versorgung mit 5V war bereits erfolgt, dafür war auch schon das passende 
EPROM verbaut. Die Anzeige leuchtet nur, wenn der Kippschalter "Display" 
auf Stellung "ON" steht - eigentlich selbsterklärend. Und ab und an muss 
man nach dem Einschalten mal den RESET-Taster (rot) drücken, der 
Power-On-RESET beim Junior ist nie zuverlässig.

Dafür habe ich alle Zahlentasten und die Plus-Taste vom nervigen Prellen 
befreit - jetzt macht die Eingabe von kurzen Maschinenspracheprogrammen 
wieder Spaß!

Ich finde den Junior einfach genial, auf dem habe ich auch die 
Grundlagen gelernt!

: Bearbeitet durch User
von Thomas W. (Gast)


Lesenswert?

Wolfgang R. schrieb:
> Die Anzeige leuchtet nur, wenn der Kippschalter "Display"
> auf Stellung "ON" steht - eigentlich selbsterklärend. Und ab und an muss
> man nach dem Einschalten mal den RESET-Taster (rot) drücken, der
> Power-On-RESET beim Junior ist nie zuverlässig.

Das ist auch so geplant: Im Junior-Computer Buch 1 steht dort (p.36, 
Inbetriebnahme):
1
Nachdem die Basisplatine mit dem ausgeschalteten Netzteil verbunden ist,
2
schalten wir den "step by Step mode" aus, das heißt, der Schalter S24
3
steht in der Position "OFF". Dann bringen wir den Displayschalter S25
4
in die Position "ON" und schalten das Netzteil wieder ein. Das Display
5
bleibt dunkel. Keine Panik! Das ist ganz normal, wenn an den Junior-
6
Computer die Versorgungsspannung angelegt wird. Erst muß die RSTTaste
7
betätigt werden, bevor das Display auf leuchtet. Wenn das Display
8
aufleuchtet, dann zeigt es willkürliche hexadezimale Zahlen an.

> Dafür habe ich alle Zahlentasten und die Plus-Taste vom nervigen Prellen
> befreit - jetzt macht die Eingabe von kurzen Maschinenspracheprogrammen
> wieder Spaß!

Ein bischen geprellt hat mein JC immer, es kann aber auch sein, dass ich 
es mit Key Rollover verwechselte (Ist schon lange her)

>
> Ich finde den Junior einfach genial, auf dem habe ich auch die
> Grundlagen gelernt!

Das Teil war damals schon genial. Wenn Du auf den Seiten von Hans Otten
(http://retro.hansotten.nl/) ein bischen suchst: Ein paar Enthusiasten 
haben Gerber-Files fuer die Basis- und Erweiterungsplatine erstellt 
(JLCPCB kann Dir fuenf Basisplatinen fuer ca. 15EUR incl. Fracht machen 
:-)

Gruesse

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> Sodele, der Junior geht heute wieder an den Besitzer zurück.

Lieber Wolfgang R. und alle!

Das ist wirklich sehr gute wertvolle Arbeit! - Hervorragend! - Zuerst 
mal
ein lautes: D A N K E S C H Ö N ! !

Ich stellte mir vor, man müsse irgendwie an die Kontakte herankommen,
dass sie ganz, auseinander genommen weden können, konnte ich mir gar 
nicht
vorstellen(!). Leider hatte ich diesen JC nicht selber gebaut. -
(Ich muss überlegen ... damit ich nicht zuviel Text schreibe.)

Zu jener Zeit ... kam ich durch die VHS noch mit anderen Computern in 
Berührung. Der hatten eine POWER-DOWN-RESET-Schaltung. Diese "P'-" fährt 
los,
und initialisiert die Zustände der Register nach dem Einschalten. Ich 
vermute, dass der MONITOR das auch macht. - Da diesen anderen Computer,
den ich selber gerne selber zusammenbebaut hätte,
(endgültig nicht geschafft hatte) hatte ein Multiplexer-Display. Dieses 
lief selber und brauchte keinen Interrupt.
- Das schien mir damals interruptmäßige Probleme für den JC zu bereiten;
- und dadurch gibt man auf, bevor man überhaupt angefangen hat.

Beim Lernen des VHS-6502, störten mich die indirekten u. 
indizierten-indirekte Adressierungen. (Na ja, da war noch was anderes.) 
Das Display
für den VHS-Computer hatte ich schon fertig, das hatte keine Fehler und
hatte der Lehrer nachgeguckt. Die CPU-Platte war auch schon fertig. Es 
fehlten noch Speicherkarten und Gehäuse. Die Display-Karte ging um die
Ecke damit die Front vorne auf der Front erscheint(Netteil, CPU-Karte u.
"Monitor"-Karte dahinter. Inzwischen habe ich ja den Emulator von Euch.

Es fragt sich, was man mit einen solchen Computer machen will? -(?).
Den JC hatte ich selber nicht aufgebaut, was man aber noch braucht,
ist eine Peripherie. Und inzwischen gibt es 65C02 die schneller sind.

Inzwischen habe ich auch noch was über Assembler gelesen, jedoch sieht
dass assemblierte Maschinen-Programm ander aus, als das 
Assembler-Programm und dessen Maschinen-Code. Es war für den APPLE II 
gedacht.

Wenn so etwas passiert, möchte ich wissen, warum hat sich das Prg. sich 
geändert hat(?).
Liebe Grüße
Günter K.
(enk)

von Günter K. (enk)


Lesenswert?

Günter K. schrieb:
> Wenn so etwas passiert, möchte ich wissen, warum hat sich das Prg. sich
> geändert hat(?).
Nachtrag von Günter K. s.o.:
Nun, inzwischen will ich es nicht mehr wissen, denn ich habe ja keinen
APPLE II. Ich hoffe nur, dass das bei neuen Rechnern nicht passiert.
Liebe Grüße
Günter K.
(enk)

von Falk B. (falk)


Lesenswert?

Wenn ich Neurologe oder Psychiologe wäre, könnte ich hier eine "schöne" 
(Fern)diagnose stellen . . .

von Günter K. (enk)


Lesenswert?

Das Teil war damals schon genial. Wenn Du auf den Seiten von Hans Otten
(http://retro.hansotten.nl/) ein bischen suchst: Ein paar Enthusiasten
haben Gerber-Files fuer die Basis- und Erweiterungsplatine erstellt
(JLCPCB kann Dir fuenf Basisplatinen fuer ca. 15EUR incl. Fracht machen
:-)

Hallo lieber Wolfgang, ich bin dabei,  und möchte die 5 Basis u. 
Erweiterungsplatinen haben. Da fällt mir natürlich noch mehr ein,
und Dir bestimmt auch. Was sind: "Gerber-Files"?
- Und was heißt Was heißt "(JLCPCB"? - Und da tauchen noch mehr Fragen 
auf,
möchte aber nicht zu viel Text machen. - Denn die Perpherie wird ja auch 
noch gebraucht.

Aber, ich muss da erst mal wissen, was da auf mich zu kommt.
Denn Finanziell bin ich leider nicht gut gestellt.
Ich möchte natürlich immer noch dabei sein,
und alles hat seinen Wert.
Liebe Grüße
Günter K.
(Enk)
:-)

von J. T. (chaoskind)


Lesenswert?

Gerber-Files sind Dateien, in denen "drinsteht" wie die Platine 
"aussieht".

JLCPCB ist jemand, dem du solche Gerber-Files zuschicken kannst, der 
schickt dir gegen Einwurf kleiner Münze die Platinen zu.

Einfach "JLCPCB" bei Google eingeben.

von Alexander S. (alesi)


Lesenswert?

J. T. schrieb:
> Einfach "JLCPCB" bei Google eingeben.

... oder hier auf mikrocontroller.net im Artikel Platinenhersteller nach 
JLCPCB schauen 
https://www.mikrocontroller.net/articles/Platinenhersteller#JLCPCB

Durch scrollen siehst Du dann gleich welche Anbieter es sonst noch gibt.

von Günter K. (enk)


Lesenswert?

Falk B. schrieb:
> Wenn ich Neurologe oder Psychiologe wäre, könnte ich hier eine "schöne"
> (Fern)diagnose stellen . . .
:-))))  - Auch ich mache Schreibfehler;
bitte keine solche Kommentare, auch wenn Du da richtig liegst.
Freundlicher
Gruß (enk)

von Thomas W. (Gast)


Lesenswert?

Thomas W. schrieb:

> Das Teil war damals schon genial. Wenn Du auf den Seiten von Hans Otten
> (http://retro.hansotten.nl/) ein bischen suchst: Ein paar Enthusiasten
> haben Gerber-Files fuer die Basis- und Erweiterungsplatine erstellt
> (JLCPCB kann Dir fuenf Basisplatinen fuer ca. 15EUR incl. Fracht machen
> :-)

Selbstgespraeche sind die besten Gespraeche ueberhaupt, keine Widerworte 
per Definition.

Unter http://retro.hansotten.nl/6502-sbc/elektuur-junior/build-a-junior/ 
findet ihr ein paar Projekte wie man die Basis- und Erweiterungsplatine 
neu fertigt, Problem ist (latuernich) der 82s23 (Verfuegbarkeit und 
Programmierung) auf der Erweiterungsplatine.

Als ich die Erweiterungsplatine in Betrieb nehmen wollte (als 
Massenspeicher): Was ist denn ein Kassettenrecorder? Leider ist mein 
Tapedeck wg. Nicht-Nutzung Kaputtgestanden (bekanntes Problem bei dem 
Onkyo-Tape), mal sehen, ob es mir den Aufwand wert ist.

Gruesse

von Günter K. (enk)


Lesenswert?

Thomas W. schrieb:
> Selbstgespraeche sind die besten Gespraeche ueberhaupt, keine Widerworte
> per Definition.
Danke!

Das sind wirklich schöne Bilder. Sehr gut alles.
Es grüßt Euch
Günter K.
(enk)

von Soul E. (soul_eye)


Lesenswert?

Thomas W. schrieb:
> Als ich die Erweiterungsplatine in Betrieb nehmen wollte (als
> Massenspeicher): Was ist denn ein Kassettenrecorder? Leider ist mein
> Tapedeck wg. Nicht-Nutzung Kaputtgestanden (bekanntes Problem bei dem
> Onkyo-Tape), mal sehen, ob es mir den Aufwand wert ist.

Sonst nimm die Soundkarte. Oder Dein Telefon. So macht man das mit 
historischen Homecomputern auch. Für die gibt es sogar Tools, um 
Binärfiles in Audio zu verwandeln und umgekehrt. Also am ZX81 
abspeichern und auf dem PC den Code angucken.

von Falk B. (falk)


Lesenswert?

Zur Erinnerung. Dieses "Diskussion" began am 13.10.2024. Heute ist der 
06.3.2025, also knapp 6 Monate später. Passiert ist, außer viel Gesabbel 
nix. Weder hat der OP eine Hardware beschafft noch einfache Gehversuche 
damit unternommen. Wer hätte das gedacht . . . ? (Ich)

"Spontanität muss gut geplant sein."

Autor unbekannt

;-)

von Thilo L. (bc107)


Lesenswert?

Thomas W. schrieb:
> Unter http://retro.hansotten.nl/6502-sbc/elektuur-junior/build-a-junior/
> findet ihr

Hach, so klein ist die Welt...
Hans Otten war - in einem anderen Leben vor vielen vielen Jahren - mal 
der Trainer eines einwöchigen Lehrgangs, der meine gesamte berufliche 
Karriere entscheidend geprägt hat. Hab' schon Kontakt mit ihm 
aufgenomen, um von den alten Zeiten zu klönen...

von Günter K. (enk)


Lesenswert?

Neue Fragen,
Es tauchen da neue Fragen auf, es ist/sind die Folgenden.
Wenn ich ein Assembler-Programm schreibe,
Dann habe ich der Reihe nach, Befehle und Daten
den Speicherstellen zugewiesen, - und so, wie sie
in den Speicherstellen stehen, sollten sie ja auch abgearbeitet werden 
können, oder nicht, - wenn nicht?
Warum nicht?
D.h. die eingetragene Datenliste (Einschließlich Befehle)
[Denn die Befehle, sind ja auch Daten.]
Sollte eigentlich unverändert bleiben, warum nicht?

Das schon mal L-Byte und H-Byte getauscht werden,
habe ich gelesen. Aber das kommt hier nicht vor.

Kann das Programm nicht der Reihe nach ablaufen?
Das ist für mich eine ganz neue Vorstellung.
Liebe Grüße
Günter K.
(enk) :-)

von Falk B. (falk)


Lesenswert?

Es geht weiter . . .

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Wenn ich ein Assembler-Programm schreibe,
> Dann habe ich der Reihe nach, Befehle und Daten
> den Speicherstellen zugewiesen, - und so, wie sie
> in den Speicherstellen stehen, sollten sie ja auch abgearbeitet werden
> können, oder nicht, - wenn nicht?

Natürlich läuft das in der vorgegebenen Reihenfolge ab.
OMG bitte einfach mal in ASM programmieren. Kann man auch ganz ohne 
Hardware:

https://www.asm80.com/

Ein Eunuche der ständig über Sex Quatscht ist echt gar nichts gegen 
dich.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Günter K. schrieb:
> Neue Fragen,
> Es tauchen da neue Fragen auf, es ist/sind die Folgenden.
> Wenn ich ein Assembler-Programm schreibe,
> Dann habe ich der Reihe nach, Befehle und Daten
> den Speicherstellen zugewiesen, - und so, wie sie
> in den Speicherstellen stehen, sollten sie ja auch abgearbeitet werden
> können,

Das werden sie auch. Das Programm läuft normal durch.

> oder nicht, - wenn nicht?
> Warum nicht?

Vergiss es! Suche keine Probleme, wo keine sind!

> D.h. die eingetragene Datenliste (Einschließlich Befehle)
> [Denn die Befehle, sind ja auch Daten.]
> Sollte eigentlich unverändert bleiben, warum nicht?

Du bist maximal verwirrt.

> Das schon mal L-Byte und H-Byte getauscht werden,
> habe ich gelesen. Aber das kommt hier nicht vor.

Vollkommen egal. Darum musst DU dich nicht kümmern.

> Kann das Programm nicht der Reihe nach ablaufen?

Das tut es.

> Das ist für mich eine ganz neue Vorstellung.

Aha. Der Ablauf eines Programm der Reihe nach ist für dich eine "ganz 
neue Vorstellung". Dann bist du entweder ein Troll oder maximal 
verwirrt, was wohl mit deinem Alter zusammen hängt.

Tu dir einen Gefallen. Geh in die Sonne und genieße den Frühling und 
vergiss die Mikrocontroller. Das wird nix mehr bei dir.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Falk B. schrieb:
> Dann bist du entweder ein Troll oder maximal
> verwirrt, was wohl mit deinem Alter zusammen hängt.

Auf jeden Fall ist Günter nicht so ein unangenehmer Charakter wie du, 
Falk, der Menschen, die er garnicht kennt, Dinge unterstellt, von denen 
er nichts weiß. Aber es kann ja nicht jeder so toll und frisch und 
abgeklärt sein wie du.

Günter auf jeden Fall freut sich sicher über den lauffähigen Junior, 
wird damit seine Assembler-Gehversuche machen und ggf. auch mit 80 noch 
Dinge lernen, für die manche mit 20 nicht die Ausdauer haben. Dafür - 
muss man an dieser Stelle auch dankend erwähnen - hat er mich postalisch 
auch mit der mehr als nötigen Ration Edle Tropfen in Nuss beschenkt! 
Also einfach nett, ganz im Gegensatz zu manchen anderen Gestalten hier 
im Forum!

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> Beim Lernen des VHS-6502, störten mich die indirekten u.
> indizierten-indirekte Adressierungen.

Die sind sehr praktisch, wenn man sie mal verstanden hat - am Anfang 
sollte man sie nicht verwenden - erst mal die Basics...

Günter K. schrieb:
> und so, wie sie
> in den Speicherstellen stehen, sollten sie ja auch abgearbeitet werden
> können, oder nicht

Genau. Byte für Byte ncheinander

ADR  DATEN

0100 A9 LDA #0xFF
0101 FF
0102 85 STA,Z 02
0103 02
0104 4C JMP 0x0100
0105 00
0106 01

Das kannst du eintippen und mit AD 0100 G starten.
Der Akku wird mit 0xFF geladen, der Inhalt des Akkus wir auf der 
Zeropage Adresse 2 (0x0002) gespeichert und dan springt das Programm 
wieder zum Anfang 0x0000

Das Display bleibt dunkel, weil die CPU mit der kleinen Schleife 
beschäftigt ist. Wenn man jetzt Reset drückt, springt der Junior wieder 
in den Monitor und man kann sich mit AD 0002 ansehen, was auf der 
Adresse für Daten stehen - es sollte jetzt 0xFF sein.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Das Programm gibt man beim Junir so ein:

RESET
AD (Adresseingabe)
0
1
0
0
DA (Dateneingabe)
A
9
+ (nächste Speicheradresse)
F
F
+
8
5
+
0
2
+
4
C
+
0
0
+
0
1
AD (Adresseingabe)
0
1
0
0
G (Go!)

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Wolfgang R. schrieb:
> und dan springt das Programm
> wieder zum Anfang 0x0000

Tippfehler... soll heißen:

und dann springt das Programm wieder zum Anfang 0x0100

Sinnvoller ist es auch, die ersten Programme ab Adresse 0x0200 
abzulegen, da von 0x0100 bis 0x1FF die 6502 ihren Stack (Speicher für 
Rücksprungadressen) liegen hat. Der wird benutzt bei Sprüngen in 
Unterprogramme (JSR/RTS) und bei Datenübergaben auf den Stack 
(POP/PUSH).

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Wolfgang R. schrieb:
> Falk B. schrieb:
>> Dann bist du entweder ein Troll oder maximal
>> verwirrt, was wohl mit deinem Alter zusammen hängt.
>
> Auf jeden Fall ist Günter nicht so ein unangenehmer Charakter wie du,
> Falk, der Menschen, die er garnicht kennt, Dinge unterstellt, von denen
> er nichts weiß.

Ich kann Reaktionen, und seinen sie nur in Textform in einem Forum, 
interpretieren.

> Aber es kann ja nicht jeder so toll und frisch und
> abgeklärt sein wie du.

Das war gar nicht die Frage und nie der Maßstab. Aber endloses und 
verwirrtes Gerede muss man als solches benennen. Ich bin weder ein 
Wattebällchenwerfer noch ein Schönfärber.

> Günter auf jeden Fall freut sich sicher über den lauffähigen Junior,

Wo denn? Hat er den? Hat er den schonmal EINE MINUTE eingeschaltet?

> wird damit seine Assembler-Gehversuche machen und ggf. auch mit 80 noch
> Dinge lernen, für die manche mit 20 nicht die Ausdauer haben.

Er auch nicht (mehr). Seine Beiträge hier beweisen das.

> muss man an dieser Stelle auch dankend erwähnen - hat er mich postalisch
> auch mit der mehr als nötigen Ration Edle Tropfen in Nuss beschenkt!
> Also einfach nett, ganz im Gegensatz zu manchen anderen Gestalten hier
> im Forum!

Jaja, ein "Netter". Nett ist die kleine Schwester von Scheiße.

von J. T. (chaoskind)


Lesenswert?

Falk B. schrieb:
> Jaja, ein "Netter". Nett ist die kleine Schwester von Scheiße.

und dein Auftreten hier ist halt der Vater von Scheiße.

von Roland F. (rhf)


Lesenswert?

Hallo,
Falk B. schrieb:
> Ich kann Reaktionen, und seinen sie nur in Textform in einem Forum,
> interpretieren.

Vielleicht solltest du es beim interpretieren einfach belassen, man muss 
nicht auf alles reagieren.

rhf

von Günter K. (enk)


Lesenswert?

Hallo Leute,

viele Dank, für Eure Beiträge. Entschuldigt bitte mein Missgeschick!
Es gibt Gründe, warum ich mich manchmal ungeschickt ausdrücke;
auf dessen Gründe s.o. - ich aber nicht näher eingehe, weil das ein 
Anlass gäbe, über Dinge zu reden, die nicht hier ins Forum und nicht zum 
Thema passen; - auch die Redens-Art.

Hallo Falk, entschuldige bitte, wenn ich mich ungeschickt ausgedrückt 
habe.

Es geht weiter. …

Hallo Wolfgang R.

viele Dank für die Art der Eingaben, denn
weil diese, besondere Vorteile mit sich bringen!
Ich freue mich, weiter zu kommen.

Der JC ist leider noch nicht angekommen.
Mit lieben Grüßen
Günter K.
(enk)

von Stefan (Gast)


Lesenswert?

Kann bitte mal wer die Beiträge von Falk B. löschen, oder einige 
melden?!, es ist ätzend beim Folgen des Themas immer auf die unsinnigen 
störenden Kommentaren dieses Affen zu stoßen.
Wie wäre es mit einer 7 Tage Sperrung? Damit er wieder zur Ruhe kommen 
kann.
Warum liest der Troll überhaupt mit, wenn ihn das Thema gar nicht 
interessiert?!

von Falk B. (falk)


Lesenswert?

Stefan schrieb:
> Warum liest der Troll überhaupt mit, wenn ihn das Thema gar nicht
> interessiert?!

Meinungsfreiheit ist das Recht, den Leuten zu sagen, was sie nicht hören 
wollen.

von Karl B. (gustav)


Lesenswert?

Cyblord -. schrieb:
> Natürlich läuft das in der vorgegebenen Reihenfolge ab.

Der Witz ist, dass das nicht eine sture Ablaufsteuerung sein muss, 
sondern Sprünge im Programm erfolgen können. Je nach Bedingung. Man muss 
nicht jeden Befehl, der wiederholt werden soll, also neu hintereinander 
schreiben.
Und die Trickkiste der µCs hat noch so einiges mehr auf Lager.
Die jeweilige Architektur bietet Dinge, die man sich erst einmal im 
Datenblatt anschauen sollte.
Die AVRs mit der RISC Architektur sind wohl allen hier zur Genüge 
geläufig.
Dafür gibt es (oder gabe es) sogar ein ausgewalztes Tutorial hier.
https://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment
Das habe ich am Anfang Step for Step "abgearbeitet".
Und natürlich in ASM. (Heute fängt man ja direkt mit C++ an.
Für später absolut unabdinglich.)
Ganz am Anfang lieber erst mit ein paar ASM-Progrämmchen anfangen.
Und ein Evaluationsbord wie STK500. Ein USB-RS232-Dongle und PC.
Das ATMEL Studio wäre fürs Erste auch nicht schlecht.
Damit erspart man sich evtl. Probleme, wenn man "flashen" will.
Die notwendigen Einstellungen sind keine abstrakten Anweisungen, sondern 
in komfortablen Masken ausgeführt. Man kann es auch billiger haben. Aber 
dann eben auch mit mehr Misserfolgen gekrönt.

ciao
gustav

: Bearbeitet durch User
von Günter K. (enk)


Lesenswert?

Von Karl B. (gustav) bzgl. Deinem Schreiben vom 08.03.2025 10:37.

Hallo Karl B. (gustav), Danke für Deine Message. Leider ist mir C und 
C++ oder C# für mich zu hoch. Da hängt ein Compiler dazwischen und ich 
weiß nicht wie er Funktioniert. Das schaffe ich noch nicht 
nachzuvollziehen. Trotzdem, ich sehe, es ist gut gemeint.
Ich könnte ja schon Assemblerverschiedenheiten von Büchern aufführen, wo 
Programme von den Assemblerprogrammen selbst, durch so genannte 
"Loopings" umgeändert werden. Selbst wenn so etwas mal vorkommen sollte, 
ist das jetzt für mich schon 'zu weit'..., später vielleicht mal, - 
jetzt noch nicht. Liebe Grüße Günter K. (enk)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Leider ist mir C und
> C++ oder C# für mich zu hoch. Da hängt ein Compiler dazwischen und ich
> weiß nicht wie er Funktioniert.

Das ist das schöne an so einer Hochsprache: Man muss überhaupt nicht 
wissen, wie der Compiler funktioniert.

Die meisten Menschen können Auto fahren, ohne auch nur den Hauch einer 
Ahnung zu haben, wie ein Otto-, Diesel- oder Elektromotor funktioniert.

Du kannst hier im Forum schreiben und lesen, ohne den Hauch einer Ahnung 
zu haben, wie die Forensoftware oder diverse Protokolle zur 
Datenübertragung (TCP/IP, HTTP etc.) funktionieren.

Allerdings hast Du Recht, C, C++ oder C# sind syntaktisch nicht 
unbedingt einfach. Für blutige Anfänger halte ich sowas wie Basic besser 
geeignet.

Ansonsten solltest Du halt weniger drüber schreiben, was Du mal machen 
willst, sondern Du solltest einfach mal anfangen, was zu machen.

von Norbert (der_norbert)


Angehängte Dateien:

Lesenswert?

Wenn man will, also wenn man wirklich will, dann ist eine bequeme 
Assembler-Programmierung zum ersten Lernen nicht weit weg.

* VICE installieren und einrichten.
* xpet starten

Dann ab in den Monitor und los geht die wilde Fahrt.
Assembler/Disassembler/Memdump/Register, alles drin.

von Re (r42)


Lesenswert?

Günter K. schrieb:
> C und C++ [...] für mich zu hoch. Da hängt ein Compiler dazwischen und ich
> weiß nicht wie er Funktioniert.

Da ist absolut keine schwarze Magie dran:

Der C oder C++-Compiler erzeugt üblicherweise als Zwischenprodukt aus 
dem C-Programm ein Assembler-Programm, welches danach durch genau den 
gleichen Assembler geschickt wird, wie das Assemblerprogramm, welches Du 
sonst selbst schreiben würdest.

Und darin ist Üblicherweise auch automatisch vermerkt, welche 
Assembler-Befehle zu welchen C-Statements gehören (soweit man das eben 
zuordnen kann). So kann man die einzelnen Assembler-Befehle Stück für 
Stück nachvollziehen, wenn man möchte und daran lernen, wie sie 
effizient eingesetzt werden könnten.

Der Compiler kein Selbstzweck, sondern eigentlich [tm] dafür da, dem 
Programmierer die Dinge zu vereinfachen.

Nur Mut!



Günter K. schrieb:
> [...] oder C# [...]

"C#" ist trotz der Namensähnlichkeit eine völlig andere Baustelle als 
"C" oder "C++", adressiert definitv keine "einfache CPU" und wird Dich 
tatsächlich eher überhaupt nicht weiterbringen.



Günter K. schrieb:
> Von Karl B. (gustav) bzgl. Deinem Schreiben vom 08.03.2025 10:37.

Hast Du schon die Funktion " Markierten Text zitieren " entdeckt? 
Damit würdest Du anderen Leuten das Nachvollziehen deutlich leichter 
machen. Danke.



my2¢ (re)

: Bearbeitet durch User
von Günter K. (enk)


Lesenswert?

Re schrieb:
> Günter K. schrieb:
>> C und C++ [...] für mich zu hoch. Da hängt ein Compiler dazwischen und ich
>> weiß nicht wie er Funktioniert.

> Nur Mut!
>
> Günter K. schrieb:
>> [...] oder C# [...]
Ich hatte zuvor "To many Quote-Lines."
Auf jeden Fall, vielen Dank für Eure guten Tipps!
Der JC ist angekommen!!
Dankeschön Wolfgang R.!

von Günter K. (enk)


Lesenswert?

Norbert schrieb:
> Dann ab in den Monitor und los geht die wilde Fahrt.
> Assembler/Disassembler/Memdump/Register, alles drin.

Ja auf jeden Fall dankeschön! Da ich mal mit BASIC und CBM angefangen 
hatte.
Vorerst bin ich noch am JC.

Es kommt ja drauf an, die Befehle und die Adressierungs-Arten zu 
verstehen.
Dann sehe ich wohin der Weg führt, zumal ich noch einen PET.
Quasi "CBM 8032" habe. Große Tastatur, 80 Zeichen/Zeile.
Das ist alles, lange, lange her.
Liebe Grüße
Günter K.
(enk)

von Norbert (der_norbert)


Lesenswert?

Günter K. schrieb:
> zumal ich noch einen PET.
> Quasi "CBM 8032" habe. Große Tastatur, 80 Zeichen/Zeile.

Dann benutze ihn.
Einschalten. Monitor-Programm laden. Loslegen.
Das kann doch nicht so schwer sein.

Oder ist es für dich wichtig immer die Dinge anzustreben welche gerade 
nicht erreichbar sind?

von Re (r42)


Lesenswert?

Günter K. schrieb:
> zumal ich noch einen PET.
> Quasi "CBM 8032" habe. Große Tastatur, 80 Zeichen/Zeile.

Und warum quälst Du Dich dann überhaupt mit der Elektor-Krücke herum?

Norbert schrieb:
> Dann benutze ihn.

Eben.

Der "JC" war ja "nett", wenn man als Schüler weder Geld noch Ahnung vom 
Z80 hatte, aber ein richtiger Monitor und eine "richtige" Tatstatur und 
ein Massenspeicher erleichtern einem das Ausprobieren und Lernen dann 
doch ganz erheblich.

Mit dem im CBM-8032 eingebauten "Terminal-Input-Monitor" (TIM) kannst Du 
das ganze Hex-Gesummsel des JC genauso machen, aber viel viel (sehr 
viel) übersichtlicher und einfacher.



Günter K. schrieb:
> Das ist alles, lange, lange her.

Und die Welt hat sich weitergedreht.


(re)

: Bearbeitet durch User
von Günter K. (enk)


Lesenswert?

Hallo Wolfgang R. hallo Leute,

eben habe ich das Prg. welches Du Wolfgang R. schicktest ausprobiert.
Es funktioniert, habe FF nach 0002 gelegt.
Zur Übersicht in eine kleine Excel-Datei eingetragen. - Ausschnitt 
davon:

+0104  4C    JMP ABS
+0105  00     00
+0106  01   01
So eingetragen, dass man 0100 lesen kann.
Liebe Grüße
Günter K.
(enk)

von Günter K. (enk)


Lesenswert?

Hallo Leute,

hier an dieser Stelle, möchte ich Euch allen nochmal Dankeschön sagen!
Besonderen DANK auch an Dich Wolfgang R.!
Nicht zu vergessen, und ich sehe, dass Ihr ein großes Wissen habt.
Ich staune, was Ihr über den PET dem CBM-2001 wisst! - Und wie ...

Ich freue mich sehr darüber, dass Ihr mir Mut macht. - Und wie ich lese:

Re schrieb:
> Mit dem im CBM-8032 eingebauten "Terminal-Input-Monitor" (TIM) kannst Du
> das ganze Hex-Gesummsel des JC genauso machen, aber viel viel (sehr
> viel) übersichtlicher und einfacher.

Ja, ich weiß wirklich nicht, ob es ein: "CBM 8032" ist. - Jetzt weiß ich 
wirklich nicht ob ich das schreiben darf: Ich sah eine Show
von Dir Wolfgang R. dort war ein CBM 4032 als '8032 zu sehen.

Neuer Abschnitt: Anfang der 80er Jahre kaufte ich den PET(große 
Tastatur).
Begann das Lernen für BASIC, und wendete es verschiedentlich an. Auf 
einmal
schrieb der Computer: "OUT OF MEMORY" d.h.: 8K
Ich lötete noch weitere RAMs mit Kondensatoren ein, dann waren es: 32K.
Eine Firma baute mir den Rechner auf 80 Zeichen mit Gr. /Kleinschrift 
um,
und noch ein erweitertes BASIC dazu.
Jetzt hatte ich auf dem Gehäuse noch 3 weitere Schalter:
1. 40/80,  2.RESET und 3. BASIK+ (also erweitertes BASIC). - Typen-
Schilder habe ich keine weitere gefunden, außer: Front unterm Schirm:
Das "C-Zeichen commodore   Personal Electronic Transactor",
darunter: "Series 2001"    Überm Schirm schrieb ich: "P E T".
Außer dem alten Handbuch, gab es ein Neues dazu, für den: "CBM 4032".

Ich hatte mal vorsichtig versucht einzuschalten !!!
(Weil ich mich etwas in TV-Technik auskenne, so ist der Com.' 
angegriffen.)
1. Das Video-Signal war noch gut. 2. Bildschirmablenkung zu klein!
(Die Ablenkung war: "Kleiner werdend!!!"), Videohelligkeit ausreichend.
3. Videosynchronisation gut, - aber nur Zeichensalat!!
Also der Zeichentakt selber, synchronisiert nicht!

Wenn ich ihn angelassen hätte, wäre er sehr wahrscheinlich weiter 
kaputtgegangen.

Ich möchte auch mit weiterer Peripherie Erfahrung sammeln.
Danke nochmal fürs Mut machen.
Liebe Grüße
Günter K.
(enk)

von Alexander S. (alesi)


Lesenswert?

Günter K. schrieb:
> Ja, ich weiß wirklich nicht, ob es ein: "CBM 8032" ist.

Auf dieser wikipedia Seite wird der CBM 8032 beschrieben:

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

und auch hier

    https://www.zock.com/8-Bit/D_CBM8032.HTML

und hier

    http://wolfgangrobel.de/commodore/8032sk.htm

: Bearbeitet durch User
von Günter K. (enk)


Lesenswert?

Alexander S. schrieb:
> Auf dieser wikipedia Seite wird der CBM 8032 beschrieben:

DANKESCHÖN!

Nun möchte ich erstmal zurück zur Basis. "ELEKTOR".
Ich muss mir 'ne Liste bestimmter Foren-Seiten machen,
damit ich bestimmte Seiten wiederfinde.
Ich suche jetzt wieder das Buch: JUNIOR-COMPUTER von "hansotten" o.ä..
um die Speicherbelegung zu finden.
Liebe Grüße
Günter K.
(enk)

von Günter K. (enk)


Lesenswert?

Hallo Leute,
ich versuche jetzt unnötige Beiträge drauszulassen, und probiere 
unbekannte Adressen einfach aus. Danach melde ich mich wieder.
Liebe Grüße
Günter K.
(enk)

von Alexander S. (alesi)


Lesenswert?

Günter K. schrieb:
> Ich suche jetzt wieder das Buch: JUNIOR-COMPUTER von "hansotten" o.ä..
> um die Speicherbelegung zu finden.

Falls Du das Buch zuhause nicht findest, gibt es diese Seite im 
Internet:

    http://retro.hansotten.nl/6502-sbc/elektuur-junior/elektor-junior-literature/junior-deutsch/

von Günter K. (enk)


Lesenswert?

Alexander S. schrieb:
> Falls Du das Buch zuhause nicht findest, ...
Ja dankeschön Alexander S. . Ich hatte es inzwischen hier im Forum 
gesucht, gefunden u. abgespeichert. Mit diesem Buch lerne ich jetzt.
Nochmals vielen Dank,
viele liebe Grüße
Günter K.
(enk)

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> Mit diesem Buch lerne ich jetzt.

Hi Günter,

das ist für deinen derzeitigen Wissensstand ein gutes Buch mit leicht 
verständlichen Beispielen. Mach die mal durch und berichte!

Viel Erfolg,
Wolfgang

von Günter K. (enk)


Angehängte Dateien:

Lesenswert?

Wolfgang R. schrieb:
> Günter K. schrieb:
>> Mit diesem Buch lerne ich jetzt.
>
> Hi Günter,
>
> das ist für deinen derzeitigen Wissensstand ein gutes Buch mit leicht
> verständlichen Beispielen. Mach die mal durch und berichte!
>
> Viel Erfolg,
> Wolfgang


Hi Wolfgang,
Dankeschön für die Frage.

Ja, das Buch ist sehr gründlich. Jeder Tastendruck ist aufgeführt.
Nur merkt man schnell: Also, zuvor RST, sicherheitshalber.
Vor Adresseingabe, AD-Taste drücken; vor Dateneingabe DA-Taste drücken.
Dein Transfer-Programm was Du schicktest, funktionierte auch.
War bei Hexadezimalzahlen addieren und subtrahieren. - Und nun 
entsprechend
ähnlich in reiner Logik und dann "Breaks" dazwischen, da bin ich gerade 
dran. Ich habe kleine Exel-Dateien gemacht, von A-Z und 32 Zeilen, bzw. 
$10 Zeilen. Diese schicke ich gleich hoch. Die letzte Datei wurde was 
anders. Mal sehen, ob es funktionieren wird. Das Labor-Netzteil steht 
auf 5 Volt und zieht 0,59 Ampere.  Heute Morgen, meldete sich das 
DISPLAY direkt mit: "000000". Jetzt habe ich aber noch keine Datei 
hochgeschickt, mal sehen,
ob das klappt.
Liebe Grüße
Günter K.
(enk)
Datei-Hochladeversuch. An für nur zum Anschauen,
und als Bilder zusammengeschoben, denn
Du weißt das ja schon alles.

von Thomas Z. (usbman)


Lesenswert?

mm obwohl ich den 6502 und auch den Junior zu kennen glaube versteh ich 
nur Bahnhof.
Falk hatte recht! Du hast immer noch kein Programm eingetippt und 
getestet. Statt dessen erklärst du  hier was für Tasten man drücken 
kann.
Ganz großes Kino.

von Günter K. (enk)


Lesenswert?

10.03.2025 18:34
Thomas Z. schrieb:
> mm obwohl ich den 6502 und auch den Junior zu kennen glaube versteh ich
> nur Bahnhof.
> .... ....! Du hast immer noch kein Programm eingetippt und
> getestet. Statt dessen erklärst du hier was für Tasten man drücken
> kann.
> Ganz großes Kino.
:-))  Hallo Thomas Z.  :-))

Ja, - was man hier für Tasten man drücken kann, ist klar; - nur
diese Tasten, habe ich auch gedrückt, wie man es in den Excel-Auszügen 
sehen kann. Denn mit diesen Tasten, habe ich Daten in den 
Junior-Computer eingetippt und natürlich, die Ergebnisse kontrolliert. 
An einigen Stellen habe ich die Summanden und die Summe gelb gefärbt; 
das ist der Test. - Und auch die logische Addition habe ich verstanden. 
Auch das sind schon Programme. Allerdings, habe ich die Programme nur, 
abgeschrieben.
Liebe Grüße,
Günter K.
(enk)

: Bearbeitet durch User
von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> Auch das sind schon Programme.

Genau - und ein Anfang!

Solltest Du ein Oszi besitzen, dann ist die Programmierung des 6532 RIOT 
(RAM/IO/Timer) Bausteins interessant. In einem der Elektor Bücher ist 
das beschrieben. Der führt die Ausgänge auf den Zusatzstecker, den ich 
dir mitgegeben habe (an dem auch die 5V-Versorgung dran ist).

Mit einem einfachen Programm, welches die Ausgangsregister des 6532 
abwechselnd setzt und löscht, kann man einen schonen Rechteckgenerator 
programmieren.

von Klaus (feelfree)


Lesenswert?

Wolfgang R. schrieb:
> Solltest Du ein Oszi besitzen, dann ist die Programmierung des 6532 RIOT
> (RAM/IO/Timer) Bausteins interessant. In einem der Elektor Bücher ist
> das beschrieben. Der führt die Ausgänge auf den Zusatzstecker, den ich
> dir mitgegeben habe (an dem auch die 5V-Versorgung dran ist).
> Mit einem einfachen Programm, welches die Ausgangsregister des 6532
> abwechselnd setzt und löscht, kann man einen schonen Rechteckgenerator
> programmieren.

Gibt's da keine LED, die man als allererste Übung blinken lassen kann?

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Klaus schrieb:
> Gibt's da keine LED

Alternativ nur die LEDs in den Siebensegmentanzeigen - das ist aber für 
einen Anfänger nicht ganz trivial.

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> Günter K. schrieb:
>> Auch das sind schon Programme.
>
> Genau - und ein Anfang!
>
> Solltest Du ein Oszi besitzen, dann ist die Programmierung des 6532 RIOT
... Der führt die Ausgänge auf den Zusatzstecker, den ich
> dir mitgegeben habe (an dem auch die 5V-Versorgung dran ist).
>
> Mit einem einfachen Programm, welches die Ausgangsregister des 6532
> abwechselnd setzt und löscht, kann man einen schönen Rechteckgenerator
> programmieren.
Klaus schrieb:
> Gibt's da keine LED

Alternativ nur die LEDs in den Siebensegmentanzeigen - das ist aber für
einen Anfänger nicht ganz trivial.

Günter K. schreibt:
Dankeschön Klaus; - ja Wolfgang R. das stimmt.
Ich habe zwar einen Oszi, einen Funktions-Generator ... .
Und die Idee ist sehr interessant.

Wenn man einen Ton von ~49 Hz erzeugt, dann hat man ein: "G1",
noch 6 Wellen dazu, hat man ein: "A1" = 55 Hz. Der Faktor ist hier
die 6er Wurzel aus 2, also der Abstand zwischen 2 ganzen Tönen.
Und ähnliche Spielereien in höheren Tonlagen geht das mit: "F#3" u. "G3"
185 Hz u. 196 Hz noch 11 Wellen dazu; der Faktor ist die 12er Wurzel aus 
2, also der Abstand zwischen 2 Halbtönen. - Wenn man mit der Time-Base 
am Scop spielt, kommen interssante Ergebnisse heraus. Mit dem JC 
versuche ich später Zeitschleifen so einstellen, dass die Frequenzen 
stimmen, in dem Fall eine wirklich interessante Übung. Der C64 (6510?) 
hat das fertig eingebaut. Beim JC wäre ich überhaupt schon mit 
irgeneinem Rechteck-Signal zufrieden. So weit bin ich leider noch nicht. 
Immerhin, eine gute Idee.

NUN KURZUM: Ich hänge fest bei der: "Absoluten Adressierung".
AD LDA und 8D STA. Ich bekomme in den Speicherstellen nicht das heraus,
was ich vorher in LDA-XXXX FF reingelegt hatte.
dann müsste 8D-YYYY STA-YYYY, auch FF herauskommen.
Da mache ich eine Fehler,(aber, ich schrieb LBHB.).
Als "END", schrieb ich 2 mal 00 als Break.
Die anderen Programme funktionieren.

Aber mir hat jemand einen 6502-Emulater zugeschickt, den muss ich aber
noch suchen. Denn da kann ich sehen was vom LDA-XXXX in den A- landet
Vielleicht schicke ich mal das Progrämmchen, wenn ich das darf?
Günter K.
(enk)

von Günter K. (enk)


Lesenswert?

Günter K. schrieb:
> Klaus schrieb:
>> Gibt's da keine LED

Das war im Bau geplant, - war aber am fertigen JC nicht dran.
Interressant ist ja auch, das Signal auf dem Scop zu sehen.
Immerhin 'ne gute Idee von Wolfgang R.
Liebe Grüße
Günter K.
(enk)

: Bearbeitet durch User
von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> NUN KURZUM: Ich hänge fest bei der: "Absoluten Adressierung".
> AD LDA und 8D STA. Ich bekomme in den Speicherstellen nicht das heraus,
> was ich vorher in LDA-XXXX FF reingelegt hatte.
> dann müsste 8D-YYYY STA-YYYY, auch FF herauskommen.
> Da mache ich eine Fehler,(aber, ich schrieb LBHB.).
> Als "END", schrieb ich 2 mal 00 als Break.
> Die anderen Programme funktionieren.

Keine Ahnung, was du da programmiert hast - aber vielleicht hast du 
versucht, Daten auf eine RAM-Stelle zu schreiben, die es garnicht gibt. 
immerhin hat der Junior nur 1k RAM (0x0000...0x3FF)

LDA #0x55   A9 55      ; lädt den Accu mit 0x55
STA 0x0200  8D 00 02   ; speichert die 0x55 auf der Adresse 0x0200 ab
LDA 0x0200  AD 00 02   ; lädt den Akku mit den Daten, die auf 0x0200 
stehen
STA 0x0201  8D 01 02   ; speichert den Akku auf 0x0201
BRK         00

Jetzt müssen auf den Adressen 0x0200 und 0x0201 die 0x55 stehen...

Adressen werden mit dem niederwertigen Byte zuerst eingegeben.

von Günter K. (enk)


Lesenswert?

Hallo Wolfgang und alle:
ja das hat geklappt, prima!

Aber jetzt: Es geht um die Absolute Adressierung:

DISPLAY   Programm | REM u. Tastendrucke.
0200 AD   LDA-0100 ; lade den Akku mit dem Inhalt
0201 00              der Speicherzelle 0100
0202 01
0203 8D   STA-015A ; speichere den Akku-Inhalt
0204 5A              in die Speicherzelle 015A
0205 01
0206 00   BRK      ; BREAK.
0100 55   MANUELL  : AD
0200 AD            : GO
dunkel-            : RESET, ich schaue nach in
015A ??            : dort steht aber in
015A 34            : dort müsste aber "55" stehen.

Bitte was mache ich falsch?
Der Strich zwischen OP-Code und Adresse gibt den
absoluten Adressierungscharakter an, die Folgezahlen
sind Hexadezimal. – Im JC-Buch Seite 68 steht u. a. folgendes:
 "OP-Code, ADL und ADH. ADL und ADH sind zwei Adressbytes,
  aus denen Daten geholt, oder in die Daten geschrieben
  werden. Das folgende Programm soll zeigen, was damit gemeint
  ist:". (Dort ist eine etwas andere Schreibweise.)
Ich hatte schon mal das ganze Programm ausprobiert.
Aber das hatte auch nicht funktioniert. Darum habe ich erstmal
nur den obersten Teil abgeschrieben, - was mache ich falsch?

Bei folgenden Zeilen beim obigen Programmteil steht im JC-Buch:
"LDA-0100 lade den Akku mit dem Inhalt der Speicherzelle 0100
 STA-015A speichere den Akku-Inhalt in die Speicherzelle 015A"
Mit BREAK geschlossen sollte es doch funktionieren?
Liebe Grüße
Günter K.
(enk)

: Bearbeitet durch User
von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> DISPLAY   Programm | REM u. Tastendrucke.
> 0200 AD   LDA-0100 ; lade den Akku mit dem Inhalt
> 0201 00              der Speicherzelle 0100
> 0202 01
> 0203 8D   STA-015A ; speichere den Akku-Inhalt
> 0204 5A              in die Speicherzelle 015A
> 0205 01
> 0206 00   BRK      ; BREAK.
> 0100 55   MANUELL  : AD
> 0200 AD            : GO
> dunkel-            : RESET, ich schaue nach in
> 015A ??            : dort steht aber in
> 015A 34            : dort müsste aber "55" stehen.

Eigentlich müsste es... du hast nachgesehen, ob in 0x0100 wirklich 0x55 
steht?

Verschieb mal alles auf Page 2 0x0200 - vielleicht versaut dir der 
Monitor den Stack - der ist auf Page 1 0x0100

Kann ich mir aber nicht recht vorstellen...

von Günter K. (enk)


Lesenswert?

Hallo Wolfgang R. und alle,

DISPLAY   Programm | REM u. evtl. Tastendrücke.: AD
0200 55            : AD/0300/DA+...
0300 AD   LDA-0200 ; lade den Akku mit dem Inhalt
0301 00   LB         der Speicherzelle 0200
0302 02   HB(0200)
0303 8D   STA-025A ; speichere den Akku-Inhalt
0304 5A   LB         in die Speicherzelle 025A
0305 02   HB(025A)
0306 00   BRK      ; BREAK./ MANUELL AD
0200 55   MANUELL  : AD
0300 AD            : GO
dunkel-            : RESET, ich schaue nach in
025A ??            : dort steht in
025A 55            : dort steht auch "55".
                                     ====
Ja, diesesmal hat es geklappt. Danke Wolfgang R.
für den Vorschlag den Speicher-Bereich zu verlagern! Prima!
Ich sehe: Auf der Basis werden Kopier-Programme geschrieben.
Liebe Grüße
Günter K.
(enk)

: Bearbeitet durch User
von Günter K. (enk)


Lesenswert?

Hallo Leute, hallo Wolfgang R.

Einige Fragen stehen an. Dazu sage ich vorher was über den JC.
Diesen JC habe ich nicht selber gebaut.
Zuerst wurde er im Buchladen angeboten; später etwas billiger im 
Elektronik-Laden. Die fehlende LED werde ich mal einlöten,
denn sie ist für den: "Singel Step". Ich stellte jedoch fest,
dass er auch - so: "Singel Step" macht.

Wer kennt sich sonst noch mit so 'nem alten JC aus?
1. Es war auch ein Buch dabei, vermutlich das Gleiche
wie im Internet, aber ein etwas anderer Junior-Computer.
Wie kann ich die Speicher-Belegung herausfinden?

2. Irgendwie, aus Erinnerung, Zeigte das DISPLAY: "Junior" an.
D. h.: Ein Aufruf der Schriftzeichen per Hex'-Code.
Eine 7-Segment-Anzeige kann 255 Darstellungen machen oder aus,
bzw. "BLANK" sein. – Da der JC' vermutlich zur Darstellung einen 
Multiplexer hat, könnte die 7-S'-Anzeige anders organisiert sein, als es 
üblich ist. Es ist mir aber selber nicht wichtig, "Junior" darstellen zu 
können; - höchstens als interessante Spielerei.

Eine gute Idee von Wolfgang R. ist es, Rechteck-Töne mit dem Skop 
darzustellen. Wie z.B. die Töne: A4 und D4. 440 Hz und
293,665 Hz. Diese Töne wurden früher gebraucht, um auf dem 
Cassetten-Rekorder oder Data-Sette Daten aufzuzeichnen.
Es wäre aber interessant das mal auf dem Skop zu sehen.
Welchen Pin oder wie, kann ich diesen Pin 'ansprechen' - ?

Noch sind die Lehr-Programme so klein, dass es sich lohnt,
sie einzutippen. Ich habe zwar noch Data-Setten oder
Cass'-Rekorder, passt zum Aufzeichnen nicht mehr in die heutige Zeit; 
mit 1 MHz, müsste doch schnelleres möglich sein, oder?
Liebe Grüße
Günter K.
(enk)

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> Irgendwie, aus Erinnerung, Zeigte das DISPLAY: "Junior" an.

Das kommt vom Anleitungsbuch - im Monitorprogramm ist das nicht 
vorgesehen, dass musst du schon selbst programmieren. Hier ist die 
Beschreibung: 
http://retro.hansotten.nl/uploads/junior/articlesde/198009004.pdf

Günter K. schrieb:
> Welchen Pin oder wie, kann ich diesen Pin 'ansprechen' - ?

Im Junior Buch 1 ist der Schaltplan. Die Pins der PIO (RIOT) sind auf 
der Oberseite am goldenen Stecker rausgeführt.

Günter K. schrieb:
> Ich habe zwar noch Data-Setten oder
> Cass'-Rekorder

Die Abspeichermöglichkeit beim Junior wurde erst mit der 
Schnittstellenkarte geboten, die hast Du aber nicht. Das gab dann so ein 
Sandwich:
https://www.wolfgangrobel.de/sbc/junior2.htm

von Günter K. (enk)


Lesenswert?

Hallo Leute,
damit ich es nicht vergesse, wünsche ich jetzt schon mal allen
frohe Ostertage!

Nun habe ich Neuigkeiten und Fragen.

Neuigkeit:
Hallo Wolfgang und alle,
Das Display-Programm welches unter anderem auch

"  |            _    "
 |_| |_| | | |  |_| |   ,  u. ä. schreiben kann, hat funktioniert!

[Nun ja, hier im Eingabefeld stehen die Segmente noch richtig.]

Nun wollte ich noch versuchen, erst mal ein HF-Rechteck-Signal zu
erzeugen. Zu Hause habe ich das Oszilloskop auf PIN 3 gelegt.
Und siehe da, es liegt ein Signal auf PIN 3.
Es hat eine Frequenz von ca. 1,2 bis 1,45 kHz.
Bei mir zu Hause bleibt das Signal stabil und bleibt stehen,
wenn der Trigger-Modus auf: "Line" gestellt ist.
Hier bin ich jetzt an einem fremden Oszilloskop,
welches genauer ist und obige Frequenzen anzeigt.

Für das HF-Rechteck-Signal, habe ich ein Programm geschrieben,
in dem zum einen das Daten-Richtungs-Register auf Ausgang
gestellt werden muss, zum anderen den Port selbst.
Leider habe ich im Junior-Buch noch nichts gefunden.
Folgendes Programm habe ich geschrieben.
Am liebsten schreibe ich die Programme, so, wie es auf dem
Junior-Display zu lesen ist, und schreibe die Assembler-Befehle dazu;
auf dem Wege habe ich mehr Zeilen für die REM-Befehle zur Verfügung.
Ich trage die Daten trage ich in eine Excel-Tabelle ein.

Als I/O-PORT-Register, hatte ich: "0117" probiert.
Für den PORT-B selber, hatte ich: "0017" probiert.

Folglich muss es zu diesem Zweck der Ports, 4 Adressen geben.
Es müssen ja fest Adressen (Je nach Computer) sein.
Als erstes stelle ich erstmal, nur diese Fragen:
Bitte, wie lauten diese 4 Adressen?
Liebe Grüße
Günter K.
(ENK)

: Bearbeitet durch User
von Thomas W. (datenreisender)


Lesenswert?

Günter K. schrieb:
> Als I/O-PORT-Register, hatte ich: "0117" probiert.
> Für den PORT-B selber, hatte ich: "0017" probiert.

Ich hatte Dir die Elektor-Buecher in 
Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?" rausgesucht. Hier 
noch einmal zum nachgucken:

http://retro.hansotten.nl/uploads/junior/books/de/ElektorJuniorComputerBuchDE1.pdf

Und den zweiten Band, deutsch:

http://retro.hansotten.nl/uploads/junior/books/de/JuniorComputer_book_02.pdf

In Band 2 findest Du ab Seite 33 bis 98 die Beschreibung fuer die 6532, 
die gewuenschten Informationen findest Du auf Seite 34:
1
PAD     .EQU $1A80          ; DATA REGISTER OF PORT A
2
PADD    .EQU $1A81          ; DATA DIRECTION REGISTER OF PORT A
3
PBD     .EQU $1A82          ; DATA REGISTER OF PORT B
4
PBDD    .EQU $1A83          ; DATA DIRECTION REGISTER OF PORT B

von Günter K. (enk)


Lesenswert?

Hallo Thomas W. und alle,

vielen, vielen Dank! Nachher probiere ich es zuhause aus.
Bis später und
viele Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute.

Zuerst wünsche ich einmal einen schönen Sonntag.

Es handelt sich um eine Programm für den Junior-Computer,
mit einem 6502 als Prozessor, und einem 6532.
Um es nicht zu lange zu machen, schreibe ich erst mal was ich getan 
habe.
Ich habe ein Programm im Maschinencode in den Junior-Computer getippt.
Es soll ein Rechteckgenerator im Tonbereich werden.
Die positive Amplitude und die Null-Amplitude sollen gleich lang sein.
Aber so weit bin ich noch lange nicht.

Das Port-Register macht nicht das, was ich will.
Um zu sehen was passiert, habe ich einen Break also, 00 für BRK gemacht.
Die Groß-Buchstaben sind Abkürzungen für die Register.
Das PADD setzte ich auf "1".
Das PAD regulär auch auf "1";  - weil das Prg. nicht lief,e
setzte ich es auf "0", was er aber auch nicht macht.
Mit dem X- u. Y-Register werden Warteschleifen in einer SR gebildet,
um die Tonhöhe zu bestimmen. Bitte, was mache ich da falsch?

Das Programm ist kurz, es sind nur 45 Zeilen.
Ich könnte es auch schicken, aber wie?
Ich schrieb es in Excel mit Assemblerangaben.

Nachtrag:
selbst der letzte Eintrag im A' stimmt nicht überein.
Es sollte "00" drin stehen.
Liebe Grüße
Günter K.
(ENK)

Ich weiß moch nicht, wie ich am Besten einen Datei-Anhang mache.

Hello everyone.

First of all, I wish you a nice Sunday.

This is a program for the Junior Computer,
with a 6502 processor and a 6532.
To keep it short, I'll first write what I did.
I typed a program in machine code into the Junior Computer.
It's supposed to be a square-wave generator in the tone range.
The positive amplitude and the zero amplitude should be the same length.
But I'm still a long way from that.

The port register isn't doing what I want.
To see what happens, I created a break, 00 for BRK.
The capital letters are abbreviations for the registers.
I set the PADD to "1".
The PAD also normally to "1"; - because the program wasn't running,
I set it to "0", but it doesn't do that either.
The X and Y registers are used to create waiting loops in an SR to 
determine the pitch. Please, what am I doing wrong?

The program is short, only 45 lines.
I could send it, but how?
I wrote it in Excel using assembly code.

Addendum:
Even the last entry in A' doesn't match.

It should read "00."

Best regards,
Günter K.
(ENK)

: Bearbeitet durch User
von Günter K. (enk)


Angehängte Dateien:

Lesenswert?

ENK schreibt:
Ich versuche gerade das 45-Zeileprogamm anzuhängen
Liebe Grüße
Günter K.
(ENK)

Der Anhang gelingt mir nicht.
Liebe Grüße
Günter K.
(ENK)
Das ist das Programm für obigen Beitrag.

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


Lesenswert?

030E falsches Sprungziel
031A falsches Sprungziel
0325 Befehl nicht verstanden: PC-relativer 8-Bit Wert
0329 Befehl nicht verstanden .. statt 16-Bit absolut

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Ja, so progammierte der Opa vor 50 Jahren an der Ostfront, ähhh, im 
goldenen Westen seinen ersten Mikrocomputer. Alles handgeschnitzter 
Assembler! Keine Programmierkenntnisse nötig! Erfolgserlebnisse in 
wenigen Minuten. Ähhhh, Moment . . .

Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"

7 Wochen später, gigantischer Fortschritt. Es reicht nichtmal zum "Hello 
World" in Hardware, ein blinkender IO-Pin. Wer hätte das gedacht . . . ?

Hey Günther, hast du keinen Enkel, Neffen oder Zivildienstleistenden, 
der dir das in ner halben Stunde reinhacken kann? Damit wenigstens ein 
HAUCH von Erfolg zu sehen ist.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Ich weiß zwar nicht so genau, warum ich das hier mache, ich mach's 
trotzdem mal. Siehe Anhang.
Echte Männer jagen Mammuts. Wenn's keine mehr gibt, programmieren sie in 
Maschinensprache. Weicheier wie ich tun sich nur Assembler an. Den gibt 
es sogar online!

https://www.asm80.com/

Mein Testprogramm ist im Anhang.

junior.a65  der Assemblerquelltext
junior.lst  Listing, sprich Maschinencode und Assembler nebeneinander

Du kannst dein Programm in den Onlineassembler tippen und dann auf 
Compile(?) drücken. Dann wird das .lst File erzeugt, kann man anclicken 
und ansehen. Und dann kann man relativ einfach den Maschinencode in den 
Junior eintippen. Viel Erfolg.

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,

Hallo  (prx) A. K. (prx) Du schriebst mir am 27.04.2025 18:36
Danke für die Antworten um. Ja diese Adressierungart ist mir neu,
und habe eben erst in einem Buch nachgeschlagen; und ich sehe,
es gibt auch negative Sprünge. In meinem Fall, werde ich sie brauchen.
Also, die negativen Sprünge, haben negative hexadezimale Zahlen.
Somit müsste: -3 = FD sein, ist das richtig?

Bin aber schon zu weit vorgegangen.
Selbst der Anfang war mir noch nicht gelungen.
Das Port A also das PADD habe ich auf FF gestllt. Und für
das Port A PAD habe ich in diesem Fall "00" eingegeben.
An dem PIN1 von PortA sollte dann auch: "0" erscheinen, tut es aber 
nicht.
Was könnte da los sein?
Liebe Grüße
Günter K.
(ENK)

von Peter D. (peda)


Lesenswert?

Excel ist so ziemlich das blödeste Format für Assemblertext.
Was stört Dich an *.asm oder wenigstens als *.txt?

Ich hab 1985 mit dem Z80 auf Papier angefangen. Erst die Mnemonics, dann 
die Befehle, dann die Adresse hochgezählt und zum Schluß die 
Sprungweiten abgezählt und eingetragen.
Und damit ich nicht bei jedem Fehler den EPROM löschen muß, waren immer 
mal Lücken, um fehlerhaften Code auszuNOPen und zum korrigierten Code zu 
springen.

von Cyblord -. (cyblord)


Lesenswert?

Falk B. schrieb:

> https://www.asm80.com/

> Du kannst dein Programm in den Onlineassembler tippen und dann auf
> Compile(?) drücken. Dann wird das .lst File erzeugt, kann man anclicken
> und ansehen. Und dann kann man relativ einfach den Maschinencode in den
> Junior eintippen. Viel Erfolg.

Genau diese Seite hatte ich weiter oben auch schon empfohlen.
Damit kann man auch ohne jede Hardware die Assembler Programmierung 
testen und sich da reinfuchsen.
Aber das ist alles viel zu einfach für den TE. Wenn er sich damit nicht 
ins Knie schießen kann, will er es nicht nutzen.

Aber abgesehen davon ist die Seite genial. Habe vor kurzem aus Spaß ein 
8080 System gebaut und damit alle Programme geschrieben. Mehr braucht 
man nicht.

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Peter D. schrieb:
> Excel ist so ziemlich das blödeste Format für Assemblertext.

Also ich bin noch mit mir am Hadern, ob nicht doch .jpg noch bloeder ist 
als excel. Aber beide sind eindeutig bloeder als Word.

scnr,
WK

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Günter K. schrieb:
> Was könnte da los sein?

Das kann dir per Ferndiagnose niemand sagen.

Tippe einfach mal das Programm von Falk ein und schau nach, was 
passiert!

Dein eigenes Programm konnte nicht funktionieren. Du hast den Aufbau von 
relativen Sprüngen nicht verstanden. BNE wird von einer 8-Bit Zahl 
gefolgt, die relativ eine Sprungweite beschreibt, also "springe -4 
Schritte zurück" oder "springe 20 Schritte vorwärts", da gehört keine 
absolute Adresse hin.

Hast du eigentlich schon mal die wirklich guten Elektor-Bücher zum 
Junior durchgelesen? Da gibt es genügend einfache und verständliche 
Beispiele!

von Jobst M. (jobstens-de)


Lesenswert?

Günter K. schrieb:
> Somit müsste: -3 = FD sein, ist das richtig?

Wenn FD + 3 = 0 (bzw. 0x100) ist, dann sollte es stimmen ...


Wolfgang R. schrieb:
> "springe -4 Schritte zurück"

Das ist also 4 Schritte zurück, nur in die andere Richtung? :-)


Gruß
Jobst

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Jobst M. schrieb:
> Das ist also 4 Schritte zurück, nur in die andere Richtung? :-)

Danke, dass du das in deiner unendlichen Weisheit klargestellt hast. ;-)

von Günter K. (enk)


Lesenswert?

von Günter K. (enk)
27.04.2025 18:27

Angehängte Dateien:

    RECKGENERATOR.xlsx (16,9 KB)

Lesenswert?
-1 ▲
   ▼ 1

ENK schreibt:
Ich versuche gerade das 45-Zeileprogamm anzuhängen
Liebe Grüße
Günter K.
(ENK)

Der Anhang gelingt mir nicht.

Auf einmal sah, dass es doch ging, dass es irgendwie geht.
Hoffendlich beim nächsten mal.
---------------------------------------------------------------

Hallo liebe Leute,

ich melde mich später noch mal, beim mir meldet sich gerade Besuch an,
danach gebe ich ausstehende Antworten.

Hiermit bedanke ich mich jetzt schon mal, für die Antworten.
Bis später,
liebe Grüße
Günter K
(ENK)

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Hier ein einfachen Beispiel für einen relativen Sprung:
1
|    |   |       |          |   |
2
0300 A0  A0 0A   LDY,#0x0A  -5  0xFB
3
0301 0A                     -4  0xFC
4
0302 88  88      DEY        -3  0xFD **
5
0303 D0  D0 FD   BNE -3     -2  0xFE
6
0304 FD                     -1  0xFF
7
0305 00  00      BRK         0  0x00
8
0306 00  00      BRK        +1  0x01

In der ersten Spalte steht die Adresse im RAM
in der zweiten Spalte steht der Opcode / Operand im RAM
in der dritten Spalte steht der komplette Befehl, der Verständlichkeit 
halber
in der vierten Spalte stehen die Mnemonics
in der fünften Spalte steht die relative Verschiebung bezogen auf den 
BNE Befehl
in der 6. Spalte steht das hexadezimale Äquivalent dazu 
(Zweierkomplement)

Wenn es jetzt ab 0303 heißt BNE -03 (FD), dann steht der Programmzähler 
nach dem Auslesen des bedingten Sprungbefehls schon bei 0305 (BRK) und 
muss drei Adressen zurückspringen, um wieder zum DEY zu gelangen (0302)

BNE +1 (D0 01) würde zum Beispiel das BRK auf Adresse 0305 überspringen 
und direkt zur Adresse 0306 gehen.

: Bearbeitet durch User
von Günter K. (enk)


Lesenswert?

Hallo lieber Wolfgang und alle.
Vielen Dank! Prima!

Der Port funktioniert jetzt auch,
warum es vorher nicht ging, ist mir jetzt egal.

Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,
Wolfgang R. (Firma: www.wolfgangrobel.de)
(mikemcbike) schrieb am 29.04.2025 11:34 u. a.:

 |    |   |       |          |   |
  0300 A0  A0 0A   LDY,#0x0A  -5  0xFB
  0301 0A                     -4  0xFC
> 0302 88  88      DEY        -3  0xFD **
> 0303 D0  D0 FD   BNE -3     -2  0xFE
> 0304 FD                     -1  0xFF
> 0305 00  00      BRK         0  0x00
> 0306 00  00      BRK        +1  0x01

Ja, das verstehe ich, Prima!
Das Programm zur Tonerzeugng  funktioniert! DANKESCHÖN.

Viele liebe Grüße
Günter K.
(ENK)

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Gerne, freut mich, wenn es voran geht. Wenn man damit anfängt, ist alles 
mühsam, wenn man dann mal sein erstes Programm für die Steuerung eines 
IBM-Kugelkopfdruckers in den Junior getippt hat, geht es flüssig und man 
versteht nicht mehr, warum man es am Anfang nicht verstanden hat... ;-)

Ging mir vor 39 Jahren so...

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.