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


von Günter K. (enk)


Lesenswert?

Hallo Leute, grüßt Euch recht schön,

jetzt habe ich schon mal in den Threads reingeschaut,
fand zwar interessante Sachen, leider nichts von dem was ich suche.

Vielleicht noch was für den 6502 oder 65s02, oder 8086, (Z80)? Die 
Haupt-sache es ist einfach.  Er braucht auch nicht besonders schnell zu 
sein.
Ich brauche einen STACK, je ein X und Y-Register, Statusregister für die 
Flags.
Aber auch einen passenden Emulator der CPU auf einen anderen Computer.
Interessant wäre noch, wie der Akkumulator von innen arbeitet; - alles 
in der CPU sollte sichtbar sein.

Es stehen aber auch fragen an, wie der Assembler funktioniert.
Es reicht mir nicht, dass ich ein Assembler-Programm habe, z.B. beim 
8086; - und ich möchte, d.h. muss auch wissen, wie der Assembler 
arbeitet.
(Es steht in meinem Buch nicht drin. - "Es ist Rede von Direktiven?"

Ich verstehe einfach nicht, wie eine Assemblerliste funktionieren kann,
wenn er auf dem Bildschirm steht. Es müssen doch Prog.-Routinen da sein,
die das bewerkstelligen; das muss man doch auch sehen können.
Folgende Sätze sind nicht - "Anstößig gemeint" - gemeint.
Ich möchte einen "nackten, jungfräulichen" Computer haben,
der nichts hat, - um damit es, - beim weiteren Lernen nicht stört.
Es sollte aber schon die nötigen Programme haben.
Es soll ein Experimentier-Computer werden.
(Er braucht nicht mit dem Internet verbunden zu sein)
Der passende Emulator mit Zusatzprogrammen zB. Assembler mit Zubehör 
sollte wohl auf einem anderen Computer laufen.
Mehr möchte ich, -für den Anfang- nicht fragen.

Habt Ihr bitte Vorschläge für mich?
Schöne Grüße Enk.

von Norbert T. (atos)


Lesenswert?

Commodre 64 oder Ben Eaters 6502 Computer.

von Daniel F. (df311)


Lesenswert?

vor knapp zwei Jahrzehnten (bin ich wirklich schon so alt?) habe ich 
sowas ähnlichea an der Uni als Praktikum in VHDL gemacht.

Anfangs gabs dazu nicht einmal einen Assembler, da wurde direkt binär 
mit OpCodes programmiert.

es war ein einfacher RISC Prozessor mit einer Handvoll Befehlen, ALU, 16 
Registern.

Die genauen Details, Speicher, Displaysteuerung weiß ich leider nicht 
mehr.

von Thomas W. (Gast)


Lesenswert?

Das ist ja so oder so eine bloede Frage, aber wenn es schon sein muss:

http://www.visual6502.org/

Ohne Loetkolben, mit Assembler, ohne Kosten. Ich hatte damals am 
Junior-Computer angefangen (die Lehrbuecher kann man heute im Internet 
finden oder, natuerlich, den Zaks). Und ja, die DDR gabe es auch noch 
(schon ganz schoen lange her, ich habe den Junior in Deutsche Mark 
bezahlt).

von Georg M. (g_m)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Günter K. schrieb:
> Die
> Haupt-sache es ist einfach.

Wenn es einfach sein soll, nimm einen 8051 oder AVR. Für beides gibt es 
Simulatoren und Debugger.
Mit einem Simulator kannst Du Assembler oder C-Programme auf dem PC 
laufen lassen und Die jedes Register und Ports anschauen.
Mit einem Debugger kannst Du das gleiche auf einem richtigen Chip 
machen.

Für die 8051 von Silicon Laboratories kannst Du Dir kostenlos die 
komplette Keil IDE runterladen.

von Monk (Gast)


Lesenswert?

Günter K. schrieb:
> Habt Ihr bitte Vorschläge für mich?

Man baute heutzutage keine Computer mehr mit den klassischen 8 Bit 
Mikroprozessoren, denn es gibt inzwischen darauf basierende 
Mikrocontroller, die neben der CPU auch das RAM, das ROM und Peripherie 
enthalten. Das ROM ist überlicherweise direkt über USB oder einem 
Programmieradapter mehrfach programmierbar.

Da diese Kombination schon für 1€ zu haben ist, sind die klassischen 8 
Bit Mikroprozessoren praktisch ausgestorben.

Vielleicht gefallen dir diese Webseiten zum Thema:

http://stefanfrings.de/avr_workshop/index.html
http://stefanfrings.de/mikrocontroller_buch/index.html

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Ich möchte einen "nackten, jungfräulichen" Computer haben,
> der nichts hat, - um damit es, - beim weiteren Lernen nicht stört.
> Es sollte aber schon die nötigen Programme haben.


RP2040 als Raspberry Pi Pico.
Der hat nicht nur nen BootRAM und Fließkommabibliotheken, da kannste 
auch gleich einen Interbräter wie damals das C64-Basic V2 draufschieben.

Außerdem gibt es für den jede Menge Schulbildungskompatible 
Dokumentation.

* 
https://www.berrybase.de/raspberry-pi-pico-rp2040-mikrocontroller-board
* https://www.amazon.de/RPi-Pico-Projekte-mit-MicroPython/dp/B0D11GHC8F
* https://shop.heise.de/bundle-make-pi-pico-special-heft-mikrocontroller

von Monk (Gast)


Lesenswert?

Ich musste damals vor 30 Jahren die ganzen Steuersignale von zwei 
Mikroprozessoren auswendig lernen, doch nach der Prüfung habe ich das 
nie wieder gebraucht. Bei heutigen Mikroprozessoren ist das auch gar 
nicht mehr so detailliert dokumentiert, wie damals. Es bleibt ein 
Geheimnis des Herstellers.

Es gibt da einen online Emulator für den 6502, der zeigt den Chip so wie 
er unter einem Mikroskop aussieht und visualisiert in dem Bild sämtliche 
Signale.

http://www.visual6502.org/

Fällt für mich in die Kategorie: Dinge, die die Welt nicht braucht. Aber 
dir gefällt das vielleicht.

von Monk (Gast)


Lesenswert?

Bezüglich deiner Fragen zum Assembler:

Benutze mal einen in Kombination mit der Doku des Befehlssatzes, dann 
wirst du vermutlich am schnellsten begreifen, wie er funktioniert.

Im Grunde genommen übersetzt er Text zu Zahlen. Mein fiktiver Prozessor 
kennt folgende Befehle:

1) Addiere A mit A (= verdoppele A)
> ADD A,A

2) Addiere A mit B
> ADD A,B

3) Addiere A mit C
> ADD A,C

4) Multipliziere A mit A (= A hoch 2)
> MUL A,A

5) Multipliziere A mit B
> MUL A,B

6) Multipliziere A mit C
> MUL A,C

Wenn wir in Assembler programmieren, schreiben wir Befehle in so einer 
Textform, die sowohl wir Menschen als auch die Maschine lesen kann. Die 
Maschine übersetzt das in numerischen Code, der mittels 
Programmieradapter in den Programmspeicher des Mikrocontrollers abgelegt 
wird. Der Mikrocontroller führt das Programm aus.

Wenn der Programmspeicher die Zahlenfolge 4 2 6 enthält, führt der 
Mikroprozessor die Befehle aus:

> 4 ist MUL A,A

> 2 ist ADD A,B

> 6 ist MUL A,C

Oder in mathematischer Schreibweise:
> A = (A x A) + B) x C

Im Gegensatz zu Assembler sind die Compiler von Hochsprachen (wie C) 
imstande, solche mathematischen Ausdrücke zu verstehen und in eine 
geeignete Sequenz von Prozessor-Befehlen zu übersetzen.

Bitte beachte, dass das nur ein fiktives Beispiel ist. Der Befehlssatz 
und die zugehörigen numerischen Werte sind bei jedem Mikroprozessor 
anders. Im Fall von AVR dort dokumentiert:
https://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf

von Jens G. (jensig)


Lesenswert?

Bradward B. schrieb:
> RP2040 als Raspberry Pi Pico.
> Der hat nicht nur nen BootRAM und Fließkommabibliotheken, da kannste
> auch gleich einen Interbräter wie damals das C64-Basic V2 draufschieben.

Du hast dThema vollkmmenversnd. Er will auf unterster Ebene die Dinge 
verstehen und sehen. Da sind Bibliotheken und Basic vollkommen fehl am 
Platze ...

von Boris (skyperhh)


Lesenswert?

Daniel F. schrieb:
> vor knapp zwei Jahrzehnten (bin ich wirklich schon so alt?) habe ich
> sowas ähnlichea an der Uni als Praktikum in VHDL gemacht.
>
> Anfangs gabs dazu nicht einmal einen Assembler, da wurde direkt binär
> mit OpCodes programmiert.
>
> es war ein einfacher RISC Prozessor mit einer Handvoll Befehlen, ALU, 16
> Registern.
>
> Die genauen Details, Speicher, Displaysteuerung weiß ich leider nicht
> mehr.

Hab ich vor ca. 15 Jahren an der FH als Kurs auch gemacht, war bei 
Reichardt & Schwarz. Die haben dazu auch ein Buch geschrieben, wo der 
Prozessor beschrieben war... (VHDL-Synthese: Entwurf digitaler 
Schaltungen und Systeme)

Unsere Aufgabe war es, den Prozessor zu erweitern, haben einen OP-Code 
bekommen und dann unsere Funktion intergriert - Multiplier und Addierer. 
Dazu dann noch ein FIR Filter Programm geschrieben...

von Daniel F. (df311)


Angehängte Dateien:

Lesenswert?

so war das Ding damals aufgebaut...

edit: ja, ich weiß Bildformate und so - bin unterwegs un schreibe grad 
mit dem Schaßkastl

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Günter K. schrieb:
> nteressant wäre noch, wie der Akkumulator von innen arbeitet; - alles
> in der CPU sollte sichtbar sein.

Der Akkumulator ist langweilig. Interessant wird es mit der ALU.

Wenn dir dir mit diskreter Logik einen Halbaddierer aufbaust und 
verstehst, hast du schon einmal einen wichtigen Grundbaustein.

: Bearbeitet durch User
von Wolfgang H. (drahtverhau)


Lesenswert?

Sprut.de

von Hans-Georg L. (h-g-l)


Lesenswert?

Rainer W. schrieb:
> Günter K. schrieb:
>> nteressant wäre noch, wie der Akkumulator von innen arbeitet; - alles
>> in der CPU sollte sichtbar sein.
>
> Der Akkumulator ist langweilig. Interessant wird es mit der ALU.
>
> Wenn dir dir mit diskreter Logik einen Halbaddierer aufbaust und
> verstehst, hast du schon einmal einen wichtigen Grundbaustein.

Oder er schaut ins Datenblatt vom 74181 damit habe ich angefangen.
Und das war vor 51 Jahren ;-)

von Motopick (motopick)


Lesenswert?

Hans-Georg L. schrieb:

> Oder er schaut ins Datenblatt vom 74181 damit habe ich angefangen.
> Und das war vor 51 Jahren ;-)

Wer gewoehnt ist, mit abstrakten Dingen wie einer Wahrheitstabelle
zu arbeiten, kann sich das ganze auf gedanklicher Ebene visualisieren.
Das scheint dem TO aber abzugehen, d.h. er braucht da eine staerkere
Dosis.

Er koennte aber an einen 74181 einige LEDs und Schalter anschliessen.
Oder, wenn er wirklich Langeweile hat, einen 74181 aus Einzelgattern
zusammenbauen. Dann koennte er noch viel mehr LEDs zum leuchten
bringen.

Mein Tipp fuer den TO: Schaff dir einen C128(D) an.

Der hat den "6502" (o.ae. :), ein A, X, Y und sogar ein SP-Register,
und am wichtigsten: ein Monitorprogramm zum Zugucken ist auch eingebaut.

Edith:
Auf einen richtigen Assembler kannst du am Anfang auch verzichten.
Das eingebaute Monitorprogramm kann auch "zeilenweise" assemblieren.

: Bearbeitet durch User
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Interessant wäre noch, wie der Akkumulator von innen arbeitet; - alles
> in der CPU sollte sichtbar sein.

Wenn du mit "sichtbar" mit bloßen Auge sichtbar meinst, dann musste 
einen alten aus Gatter-IC, Transistoren oder so geschmiedeten Rechner 
nehmen. PDP-10 oder so, da zeigen noch Lämpcchen an, welche Instruction 
gerade vercodet ist.

https://upload.wikimedia.org/wikipedia/commons/7/71/Digital_pdp10.jpg

Ist jetzt aber a bisserl zu groß für Heimgebrauch. Kleiner wäre da der 
Polycomputer-880

https://de.wikipedia.org/wiki/Datei:Poly-computer880display.jpg


Vielleicht wirst auch einem Museum in der Nähe fündig, Technische 
Sammlungen in Dresden. Oder die Datarena in München.

https://tsd.de/programm/ausstellungen/denk-maschine
https://www.unibw.de/datarena

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


Lesenswert?

Hallo Leute,
erst schonmal vielen Dank für die vielen Antworten,
es war wirklich interessantes dabei.
Ich melde mich nochmal dazu.
Also bis später, - dann gehe ich auf einige Botschaften ein.
Tschüss, und noch eine gute Zeit.

von Thomas W. (Gast)


Lesenswert?

Wenn es nur das Look-and-Feel sein soll, reicht auch ein PiDP-11: Ein 
Nachbau der PDP-11 (grosses Problem waren die schoenen Taster/Schalter).

https://magpi.raspberrypi.com/articles/pidp-11-review

https://www.tindie.com/products/obso/pdp-11-replica-kit-the-pidp-11/

https://obsolescence.wixsite.com/obsolescence/pidp-11

Eine PDP-8 gibt es auch:
https://www.raspberrypi.com/news/pidp-8i-remaking-the-pdp-8i/

Und natuerlich braucht man einen Terminak (Replika VT100):

https://github.com/jpasqua/FauxVT?tab=readme-ov-file

Es ist herrlich, was man heute (2024) an Technologie hat: Ein 
3EUR-Controller (stm32f401) hat genug Ompf, um die o.g. Rechner zu 
simulieren. Und 3D-Drucker sind mittlerweile auch schon sehr gut 
geworden.

All das waere nicht moeglich ohne die Arbeit von  Bob Supnik, der in 
seiner Zeit bei DEC die CPUs selbst entwickelt hat und jetzt, als 
Pensionaer/Rentner, ein Opensource-Project ueber die Simulation der 
DEC-CPUs fuehrt:

https://github.com/open-simh/simh

von Norbert (der_norbert)


Lesenswert?

Günter K. schrieb:
> Vielleicht noch was für den 6502

Schau mal in https://www.masswerk.at/6502

Hat einen Assembler und einen Simulator, welchen man in Single-Step 
betreiben kann. Dabei werden jeweils alle Register und Flags angezeigt.
So etwas kann man zum Beispiel bei der Arbeit zuschauen.
1
lda #10
2
ldy #5
3
clc
4
loop:
5
adc #2
6
dey
7
bne loop
8
brk

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


Lesenswert?

Günter K. schrieb:
> Also bis später, - dann gehe ich auf einige Botschaften ein.
Ja, das ist wirklich sehr freundlich.

Ich habe mir mal deine sonstigen Threads/Postings durchgelesen.
16 Jahre bist du jetzt dabei.

Was ist dein wirkliches Ziel?

von Udo S. (urschmitt)


Lesenswert?

Es wäre zielführend wenn man wüsste was das Lernziel sein soll.
Im Moment kann das irgendwie alles sein, entsprechend unterschiedlich 
fallen die Antworten aus:

Ist das Ziel:

Einen Prozessor in Assembler zu programmieren und entsprechende 
Techniken wie Schleifen, Adressierungsarten, Operatoren etc. zu 
lernen/vermitteln

Verstehen wie ein Assembler funktioniert

Verstehen wie ein Prozessor aufgebaut ist, wie Register und die ALU 
funktionieren, wie Addressierung gemacht wird, wie Assemblerbefehle 
codiert sind und decodiert werden.

Ausserdem müsste man wissen; Wer soll das lernen, welche Vorkenntnisse 
sind vorhanden. Bis auf welche Tiefe soll das Wissen vermittelt werden.

Im Moment sieht es (für mich) nach einem "Ich will alles lernen" Ansatz 
aus.
Das bedeutet eigentlich ein halbes Informatik Studium mit diversen 
Vertiefungsrichtungen.

Wenn der Thread für den TO also mehr brauchbare Informationen bringen 
soll, sollte er seine Frage präzisieren.

von Monk (Gast)


Lesenswert?

Udo S. schrieb:
> Im Moment sieht es (für mich) nach einem "Ich will alles lernen" Ansatz
> aus.

Für mich auch. Er will die ganze Entwicklung der IT bis zu Gegenwart 
nachvollziehen. Nur denke ich, dass das bei der Menge nicht mehr geht.

von Cyblord -. (cyblord)


Angehängte Dateien:

Lesenswert?

Natürlich hat XKCD auch dafür was: "Major in the Universe"

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


Lesenswert?

Monk schrieb:
> Für mich auch. Er will die ganze Entwicklung der IT bis zu Gegenwart
> nachvollziehen. Nur denke ich, dass das bei der Menge nicht mehr geht.

Jene Generation, die von 6502 bis heute alles mitbekommen hat, geht 
innerhalb der nächsten 10 Jahre in Rente. Unsereiner hat die Entwicklung 
aber über zig Jahre verteilt mitbekommen. Ob das mit Druckbetankung auch 
funktioniert?

Zumal es immer weniger bringt, seit auch die Embedded-Szene mit den 
Mikrocontrollern immer mehr auf Abstraktion in Form von Libraries setzt, 
statt auf Bits und Register. Nicht nur bei den Arduinos.

: Bearbeitet durch User
von Monk (Gast)


Lesenswert?

(prx) A. K. schrieb:
> Ob das mit Druckbetankung auch funktioniert?
> Zumal es immer weniger bringt

So wie wir (die 70er bis 80er Jahre Generation) das gelernt haben, geht 
es nicht mehr. Wir hätten uns mit so tollen visuellen Simulatoren wie im 
Paradies gefühlt. Jetzt gibt es das, ist aber zu spät.

Ich bin sicher, dass die Generationen nach uns ganz hervorragende 
Entwickler werden können, ohne jedes Bit mit Namen zu kennen oder gar 
(zumindest theoretisch) eigene Prozessoren entwickeln zu können. Wir 
brauchten das damals noch, aber das ist Vergangenheit.

von Günter K. (enk)


Lesenswert?

Hallo Norbert und alle,
ich hatte hier schon geschrieben, und auf einmal ist alles weg.- Nun 
wiederhole ich. - Das ist ja PRIMA! DANKESCHÖN!Ich sehe, sogar das 
Status-Register ist dabei. Es ist zwar etwas anders, als wir es in der 
Schule hatten, immerhin ich sehe den IRQ und den NMI. Dann werde ich ja 
bald loslegen können.

Die angezeigten Begriffe sind im Englischen besser zu verstehen,
obschon ich sonst nur sehr wenig Englisch kann.

Die 8-Zeilen-Routine, ist das die für den Singlestep (Einzelschritt)?

Ja, auch wenn Assembler dabei ist, wäre es ja interessant, mal selber 
einen zu schreiben, ebenso einen Dissassembler. - Nun habe ich schon mal 
gehört, dass beim Dissassembler, kein OP-Code angezeigt wird; gerade der 
OP-Code ist ja so interessant und so lernt man besser Maschinensprache 
zu verstehen.

Nur, muss ich erst mal mit kleinen Programmen anfangen. Zum Beispiel ein 
Uhrenprogramm, nur das Uhrenprogramm, noch ohne Synchronisation zum 
DCF77; (... später, dann wohl.).

Nun ich sprach von Schule, das war noch in den 80ern, und ich bin im 80. 
Lebensjahr. (Meine Kinder u. junge Jugendzeit-21 war grausam, darüber 
schreibe ich nichts weiter.)

Ich melde mich auch nochmal zu dem Herrn aus der ehemaligen DDR, mit 
seinem Junior-Computer hatte, der noch mit DM bezahlt wurde. - Der 
RODNEY ZAKS schrieb auch Bücher über den 6502, -hier in diesem Falle ist 
es der Z80.
Also, bestimmt bis später
L. Gruß Elk.

von Günter K. (enk)


Lesenswert?

Hallo Leute,

Ich weiß noch nicht, wie man die Zitatzeichen setzt.
Arduino F. schrieb:
> Günter K. schrieb:
>> Also bis später, - dann gehe ich auf einige Botschaften ein.
> Ja, das ist wirklich sehr freundlich.
>
> Ich habe mir mal deine sonstigen Threads/Postings durchgelesen.
> 16 Jahre bist du jetzt dabei.
>
> Was ist dein wirkliches Ziel?

Antwort: Das habe ich eben an Norbert geschrieben.
Genauer: Ich möchte damit basteln.

LG. Enk.

PS.: Ich schicke einfach mal ab.

von (prx) A. K. (prx)


Lesenswert?

Günter K. schrieb:
> Die angezeigten Begriffe sind im Englischen besser zu verstehen,
> obschon ich sonst nur sehr wenig Englisch kann.

Wenn du auf diese Ebene runter willst, ist Englisch unverzichtbar. Es 
ist dann auch besser, nicht erst nach deutscher Doku zu suchen.

: Bearbeitet durch User
von Monk (Gast)


Lesenswert?

Günter K. schrieb:
> Nun habe ich schon mal
> gehört, dass beim Dissassembler, kein OP-Code angezeigt wird

????

Genau das ist doch die primäre Aufgabe des Disassemblers.

von (prx) A. K. (prx)


Lesenswert?

Günter K. schrieb:
> ich bin im 80. Lebensjahr.

Respekt. Das wurde anfangs deutlich anders eingeschätzt.

: Bearbeitet durch User
von Monk (Gast)


Lesenswert?

Günter K. schrieb:
> Nun ich sprach von Schule, das war noch in den 80ern, und ich bin im 80.
> Lebensjahr.

Verschwende deine wenige verbleibende Zeit nicht an Mikroprozessoren und 
Software, die nur noch in Museen zu bewundern sind. Schau dir lieber mal 
an, was Arduino so zu bieten hat. Arduino ist eine völlig andere 
Herangehensweise, aber sie funktioniert, ist billig und macht Spaß. Und 
man kann damit ernsthaft benutzbare Sachen bauen.

von Günter K. (enk)


Lesenswert?

Ich las:
Monk schrieb:
> Genau das ist doch die primäre Aufgabe des Disassemblers.

Nun soll es aber Dissasembler geben, die das eben nicht können.
Wenn ich den Nächsten, bzw. den Ersten, habe, der das kann, ist es ja 
gut.
Ich bin gespannt was werden wird.
LG Enk

von Monk (Gast)


Lesenswert?

Günter K. schrieb:
> Nun soll es aber Dissasembler geben, die das eben nicht können.

Dann ist es kein Disassembler.

von Günter K. (enk)


Lesenswert?

DANKE MONK!

von Monk (Gast)


Lesenswert?

Ich stelle mir vor, ich wäre 80 und würde meinen Urgroßenkeln meine 
eigenen selbst gebauten Computer präsentieren, aus 50 Jahre alten 
Bauteilen, mit komplett selbst geschriebener Software.

Und dann kommt mein 12 jährige Urenkel und sagt: Opa, das ist 
langweilig. Schau dir mal meine 3D Simulation von der Drachenhöhle an. 
Man kann gegen Drachen kämpfen und die Prinzessin befreien.

Verstehst du, was ich meine?

von Peter D. (peda)


Lesenswert?

Günter K. schrieb:
> Ich melde mich auch nochmal zu dem Herrn aus der ehemaligen DDR

In der DDR war der Z80 (U880) recht populär, damit habe ich auch 
angefangen.
Später kamen dann mit dem U881..886 (Z8) die µC. Als Entwicklungsversion 
gab es davon den UB8841, wo man extern 4kB EPROM anflanschen konnte.

Den 6502 habe ich komplett verpaßt, Spielekonsolen waren nicht so mein 
Ding.

Günter K. schrieb:
> Nur, muss ich erst mal mit kleinen Programmen anfangen. Zum Beispiel ein
> Uhrenprogramm, nur das Uhrenprogramm, noch ohne Synchronisation zum
> DCF77; (... später, dann wohl.).

Sowas macht man aber nicht mehr mit einfachen CPUs, sondern mit µCs, wo 
bereits alles in einem Chip sitzt, inklusive Flash Speicher und 
Bootloader.
Richtig angefangen mit Basteln habe ich dann mit dem AT89C2051. Erst in 
Assembler, später in C.

von Marci W. (marci_w)


Lesenswert?

Günter K. schrieb:
> Nun soll es aber Dissasembler geben, die das eben nicht können.

Das kann es nicht geben, denn wie schon geschrieben, ist es die 
"einzige" Aufgabe, Maschinencode, also Zahlen, in verständliche 
mnemotechnische Anweisungen zu übersetzen. Könnte ein Disassembler das 
nicht, wäre er kein Disassembler! ;-)

ciao

Marci

von (prx) A. K. (prx)


Lesenswert?

Peter D. schrieb:
> Den 6502 habe ich komplett verpaßt, Spielekonsolen waren nicht so mein
> Ding.

Commodore und Spielkonsolen waren auch nicht mein Ding, aber die ersten 
6502 hatten noch nichts damit zu tun. 
https://de.wikipedia.org/wiki/AIM-65 ohne Gehäuse und Netzteil, die 
waren Selbstbau.

: Bearbeitet durch User
von Marci W. (marci_w)


Lesenswert?

Ansonsten kann ich nur den Tipp wiederholen, einen modernen Prozessor 
bzw. uC zu verwenden. Auch diesen kannst Du in Assembler programmieren.
Ich denke, in Verbindung mit den Dokus zu dem uC kommst du schon sehr 
nah an die Hardware heran. Da wird jedes Register, jeder Befehl auf 
unterster Ebene beschrieben.
Arduiono ist da halt schon a Stückle weit weg von der "Hardware"(*).

ciao

Marci

(*) Ihr wisst schon, was ich mit "Hardware" meine.

von Günter K. (enk)


Lesenswert?

Hallo Monk,

es geht mir darum, wie die Schaltung im Inneren funktioniert.
3D ist da auch schon interessant ja sogar begeiserungswert.
Dann muss man sich mit den Pixeln beschäftigen (wirklich schwer).
Doch im Kleinen, kommt das auch auf mich zu; Pixel für die Buchstaben.
Ja Buchstaben, Ziffern, und Zeichen.
LG Enk

: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

Günter K. schrieb:
> Die 8-Zeilen-Routine, ist das die für den Singlestep (Einzelschritt)?

Kann man auch durchlaufen lassen. Aber im Singlestep sieht man wie Y 
heruntergezählt und im Akku addiert wird. Auch wie das Z-Flag gesetzt 
und die Schleife beendet wird.

> Ja, auch wenn Assembler dabei ist, wäre es ja interessant, mal selber
> einen zu schreiben, ebenso einen Dissassembler. - Nun habe ich schon mal
> gehört, dass beim Dissassembler, kein OP-Code angezeigt wird; gerade der
> OP-Code ist ja so interessant und so lernt man besser Maschinensprache
> zu verstehen.

Da im Speicher kein Unterschied zwischen Maschinencode, Zahlen, Zeichen, 
usw. gemacht wird, kann ein einfacher Dissassembler das durchaus auch 
mal falsch interpretieren. Da muss der Mensch dann eingreifen.

Beispiel:
Im Speicher steht 4c
das kann der Beginn eines JMP in Maschinencode sein.
Kann auch die Zahl 76 sein.
Kann auch der Buchstabe ›L‹ sein.

von Günter K. (enk)


Lesenswert?

Hallo Marci W.
Das es nur "mnemotechnische Anweisungen" machen würde, nur als mnemo,
kann ich mir schon vorstellen, dass es das gäbe,
 es wäre mir nur zu wenig nützlich.
Also brauche ich mir darum auch keine Gedanken zu machen,
wenn die Wirklichkeit sowieso besser aussieht.
LG. Enk.

von Monk (Gast)


Lesenswert?

Peter D. schrieb:
> Richtig angefangen mit Basteln habe ich dann mit dem AT89C2051.

Willkommen im Club. Die Grundlagen habe ich mit Z80 und 8051 gelernt, 
meine eigenen Konstruktionen begannen jedoch ebenfalls mit AT89C2051. 
Zum Lernen ist der gar nicht schlecht, weil er vom Aufbau her sehr nahe 
an den 8-Bit Lerncomputern ist. Nur halt alles in einem Chip wo man 
nicht rein gucken kann (man muss der Doku glauben).

von Thomas W. (Gast)


Lesenswert?

Der TO sollte sich schon ueberlegen, ob er sich den 
Assembler/Disassembler selbst antun will: Zum einen gibt es gute 
Produkte (auch fuer umsonst), zum andern ist lexikalische Analyse auch 
nicht so prickelnd.

Die einfachen Disassembler sind auch (meistens) dumm wie ein Stueck 
Brot: Suchen den OP-Code aus der Liste raus, analysieren die Operanden 
und korrigieren den PC zum naechsten Schritt. Eine richtige Code-Analyse 
macht kaum ein Programm (ghidra ist nicht so schlecht), trotzdem noch 
eine ziemliche Keulerei. Vielleicht wird das jetzt mit KI besser werden; 
ich sehe nur nicht, dass jemand viel Hexcode zum lernen sammelt.

Mir ist das Endziel der Frage nicht klar: Computer-Architektur ist ein 
weites Feld, und ich glaube nicht, dass die Entwicklung und Aufbau eines 
Rechners (damit er die Blinkenlights bekommt) zielfuehrend ist (dazu ist 
das Feld viel zu weit).

Ich wuerde dann so etwas wie Arduino (ist auch billig, selbst wenn Du 
die Orginalteile nimmst) oder Raspberry Pi benutzen. Der TO hatte auch 
geschrieben, dass er deutsch zum Lesen bevorzugen wuerde. Dann waere ein 
Arduino (z.b. der Arduino R4 mit Wifi und Blinkenlights) fuer einen 
30Euroschein nicht so schlecht. Wie Uebliche, Debugging ist schlecht 
geloest.

von Norbert (der_norbert)


Lesenswert?

Thomas W. schrieb:
> Mir ist das Endziel der Frage nicht klar

Ich kann (und möchte) nicht für Günter sprechen,
aber manchmal lernt man einfach nur um zu lernen.

Daran kann ich nichts Falsches erkennen.

: Bearbeitet durch User
von Hans-Georg L. (h-g-l)


Lesenswert?

Thomas W. schrieb:
> Wenn es nur das Look-and-Feel sein soll, reicht auch ein PiDP-11: Ein
> Nachbau der PDP-11 (grosses Problem waren die schoenen Taster/Schalter).

Das erinnert mich an die alten Zeiten wo man bei Diskussionen mit den 
DEC Leuten Papier und Bleistift bereit halten musste, um Oktal in Hex 
und umgekehrt umzurechnen. ;-)

von Günter K. (enk)


Lesenswert?

Norbert schrieb:
>
> Da im Speicher kein Unterschied zwischen Maschinencode, Zahlen, Zeichen,
> usw. gemacht wird, kann ein einfacher Dissassembler das durchaus auch
> mal falsch interpretieren. Da muss der Mensch dann eingreifen.
>
> Beispiel:
> Im Speicher steht 4c
> das kann der Beginn eines JMP in Maschinencode sein.
> Kann auch die Zahl 76 sein.
> Kann auch der Buchstabe ›L‹ sein.

Ist das bei der Harvard-Architektur auch so?
Oder kann man eine Nebenspeicherung machen,
für den Fall, dass man selber das Programm ändern möchte?
Oder bei der Firmware?

von Monk (Gast)


Lesenswert?

Günter K. schrieb:
> Ist das bei der Harvard-Architektur auch so?

Das ist unabhängig von der Architektur.

> Oder kann man eine Nebenspeicherung machen

Den Begriff kennt nicht mal Google. Formuliere die Frage nochmal anders.

von Udo S. (urschmitt)


Lesenswert?

Hans-Georg L. schrieb:
> Das erinnert mich an die alten Zeiten wo man bei Diskussionen mit den
> DEC Leuten Papier und Bleistift bereit halten musste, um Oktal in Hex
> und umgekehrt umzurechnen. ;-)

Mich an Kollegen, die für IBM Host in 5cm dicken Hex Dump Papierstapeln 
Fehler gesucht und gefunden haben, und die Korrektur dann per Hotfix in 
eine Patch Area geschrieben und den Sprung dahin in den Code gehackt 
haben.
Bei laufender Maschine und Programm wohlgemerkt.

Ein echter "Hotfix".

Mein Respekt war und ist riesig.

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


Lesenswert?

Günter K. schrieb:
> Norbert schrieb:

>> Beispiel:
>> Im Speicher steht 4c
... Ja damals hieß das auch 4c ...
> Ist das bei der Harvard-Architektur auch so?
> Oder kann man eine Nebenspeicherung machen,
> für den Fall, dass man selber das Programm ändern möchte?
> Oder bei der Firmware?
Wenn ich mir eine Liste mache, für den Speicherraum
auf dem zusätzlich das (selbstgeschriebene Assembler)
für den Disassembler als (eigene "Firmware")
oder mit Sonder-REM-Befehlen ausstatte?
Geht das oder gibt es das?

von Günter K. (enk)


Lesenswert?

Hallo Monk,

Mit "Nebenspeicherung" meine ich,
Dass wenn ich zB. selbst ein Programm schreibe,
dass ich dann nebenbei auf anderer Stelle Zeichen setze,
(Natürlich passend in der Reihenfolge an anderer Stelle)
welche natürlich im laufenden Programm nicht gebraucht werden,
zum disassembeln aber wohl(wird wohl jeweils in 1 Byte passen).
Und schon somit vielleicht sogar Fehler gefunden, andererseits
gibt es die Möglichleit (was aber nicht sollte) selber weitere Fehler zu 
machen.
Ich glaub bei Linux gibt es sowas ähnliches, kann aber noch kein Linux.

von Hendrik L. (hlipka)


Lesenswert?

Zum Lernen was da in so einem Computer passiert, und was die einzelnen 
Ebenen von Hardware bis zum Betriebssystem so machen, kann ich 'From 
NAND to Tetris' (https://www.nand2tetris.org/) empfehlen. Das Buch dazu 
heisst 'The Elements of Computing Systems: Building a Modern Computer 
from First Principles'.
Da passiert genau das was der Titel sagt: man fängt mit einfachen 
NAND-Gattern an, baut sich dann kompliziertere Dinge, eine ALU, und dann 
eine CPU. Die programmiert man sich dann in Maschinensprache, bevor man 
sich einen Assembler, einen Compiler und ein OS baut, um an Ende was zu 
haben wo eigene Programme drauf laufen (Tetris wird übrigens nicht 
erklärt...).
Das ganze arbeitet allerdings nicht auf echter Hardware, sondern in 
einem Simulator. Wenn man will, kann man das aber trotzdem in einen FPGA 
giessen, es gibt einen Reihe von Projekten die das vorgemacht haben.
Man muss auch Englisch können. Der Assembler und der Compiler werden in 
einer Sprache der eigenen Wahl geschrieben, man sollte also 
programmieren können.
Vorteil: man wird didaktisch vernünftig durch die ganzen Stufen geführt, 
und muss sich nicht alles selber erarbeiten oder rausbekommen wo man 
welche Informationen bekommt.

: Bearbeitet durch User
von Monk (Gast)


Lesenswert?

Günter K. schrieb:
> Mit "Nebenspeicherung" meine ich ...

sorry, ich verstehe nur Bahnhof. Vielleicht kann jemand anderes die 
Frage beantworten.

von Mario M. (thelonging)


Lesenswert?

Günter K. schrieb:
> Mit "Nebenspeicherung" meine ich,

Meinst Du Breakpoints und Symboltabellen? 🤔

von Peter D. (peda)


Lesenswert?

Monk schrieb:
> Günter K. schrieb:
>> Mit "Nebenspeicherung" meine ich ...
>
> sorry, ich verstehe nur Bahnhof. Vielleicht kann jemand anderes die
> Frage beantworten.

Ich vermute mal, er meint Kommentare:
1
  NOP                   ; mache nichts
1
  foo(s, "Test\n");     // gib einen Text aus

von Thomas W. (Gast)


Lesenswert?

Günter K. schrieb:

> Oder kann man eine Nebenspeicherung machen,

Ich befuerchte, er will Side-Effects oder self-modifying Code verwenden. 
Und dann kommt man zu "The Story of Mel":

http://www.catb.org/jargon/html/story-of-mel.html


Hat sogar eine eigene Wikipedia-Seite:

https://en.wikipedia.org/wiki/The_Story_of_Mel

von Hans-Georg L. (h-g-l)


Lesenswert?

Monk schrieb:
> Günter K. schrieb:
>> Mit "Nebenspeicherung" meine ich ...
>
> sorry, ich verstehe nur Bahnhof. Vielleicht kann jemand anderes die
> Frage beantworten.

I habe das so verstanden das es eine (Maschinen)Sprache gibt (geben 
sollte) die unbenutzten Platz benutzt (Bits,Bytes), der bei Ausführung 
überlesen wird und durch irgendwelche Informationen für einen 
Disassembler gefüllt werden kann.
Wäre vielleicht theoretisch möglich bei einer CPU die mehrere Codes als 
NOP interpretiert.

So etwas ist mir bisher noch nicht untergekommen und den Sinn dahinter 
erschließt sich mir auch nicht ...

Ich kann aber auch völlig falsch liegen ...

von Günter K. (enk)


Lesenswert?

Hallo Monk und alle

Entschuldigt bitte.
Zwar gibt es das Wort Nebenspeicherung nicht, - aber selbsterklärend 
gemeint.
Wenn man ein Programm scheibt, gibt es ja die REM-Befehle. - So kann ich 
ja, nebenbei an anderer Stelle "paralell" an einem anderen Stelle 
aufschreiben, welche Daten-Art es ist.
Ich vermute, dass das irgendjemand versteht; - ich selbst bin ja noch 
lange nicht so weit, um Programme zu schreiben.
LG. Enk.

von Hans-Georg L. (h-g-l)


Lesenswert?

Günter K. schrieb:
> Hallo Monk und alle
>
> Entschuldigt bitte.
> Zwar gibt es das Wort Nebenspeicherung nicht, - aber selbsterklärend
> gemeint.
> Wenn man ein Programm scheibt, gibt es ja die REM-Befehle. - So kann ich
> ja, nebenbei an anderer Stelle "paralell" an einem anderen Stelle
> aufschreiben, welche Daten-Art es ist.
> Ich vermute, dass das irgendjemand versteht; - ich selbst bin ja noch
> lange nicht so weit, um Programme zu schreiben.
> LG. Enk.

 Du meinst Kommentare ?
 Was hat das aber mit parallel und nebenbei zu tun ?.
 Parallel und Nebenläufig sind feste Begriffe in der Informatik.

von Monk (Gast)


Lesenswert?

Man kann komplette Quelltexte, auch beliebigen andere Daten, im 
Programmspeicher ablegen, falls du das meinst.

von Günter K. (enk)


Lesenswert?

Liebe Leute,

vielen vielen Dank, für die guten Tipps.
Ich melde mich wieder, wenn ein Computer zu diesem Zweck läuft.
Vermutlich wird es ein 6502, Z80 oder ein 8086 sein,
vielleicht sogar mit 64 Bit.

Mit lieben Grüßen
Enk

von Monk (Gast)


Lesenswert?

Günter K. schrieb:
> vielleicht sogar mit 64 Bit.

das ist ein Witz, oder?

> 6502, Z80 oder ein 8086

Wo bekommst du die her?

Beitrag #7754962 wurde von einem Moderator gelöscht.
von Thomas Z. (usbman)


Lesenswert?

Günter K. schrieb:
> vielleicht sogar mit 64 Bit.

Ja klar das muss heute schon sein. In der Überschrift schreibst du von 
einfacher CPU und nun kommst du mit 64 Bit um die Ecke. Ich glaube dir 
kein Wort mehr.

von Hans-Georg L. (h-g-l)


Lesenswert?

Das wärs doch ..

eine bastelfreundliche 64bit CPU im 40pol DIL Gehäuse. Vielleicht noch 
mit Fenster, dann wäre alles sichtbar und man könnte ihr bei der Arbeit 
zuschauen  ...

von Marci W. (marci_w)


Lesenswert?

Hallo Günter,

Günter K. schrieb:
> 3D ist da auch schon interessant ja sogar begeiserungswert.

ich dachte, Du würdest gerne die Grundlagen der Prozessortechnik und 
deren Programmierung lernen?! Bis zu 3D ist da von den ersten Schritten 
aber schon ein relativ weiter Weg. Und solche Sachen wirst Du dann 
sicher nicht mehr auf Assemblerebene programmieren (wollen).

Was mir noch eingefallen ist: zur Mikroprozessorprogrammierung gehören 
z.B. auch Kenntnisse der binären Logik und Kenntnisse der Programmierung 
allgemein. Da wäre dann ein möglichst ausführliches Tutorial und ein 
Einstiegsbuch in die Assemblerprogrammierung (evtl. auch HW-unabhängig) 
geeignet. Und dazu die Doks der jeweiligen Architektur, dann bist Du gut 
gerüstet, und kannst ne ganze Menge lernen und ausprobieren. ;-)

ciao

Marci

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


Lesenswert?

Günter K. schrieb:
> vielleicht sogar mit 64 Bit

Ich finde das gut!

Sehe aber keine Übereinstimmung mit den vorherigen "Ansagen"

von Mario M. (thelonging)


Lesenswert?

Monk schrieb:
> Günter K. schrieb:
>> vielleicht sogar mit 64 Bit.
>
> das ist ein Witz, oder?
>> 6502, Z80 oder ein 8086
>
> Wo bekommst du die her?

AX, BX, CX, DX = 4 * 16 = 64 Bit. 🤪

von Marci W. (marci_w)


Lesenswert?

Günter K. schrieb:
> Ich melde mich wieder, wenn ein Computer zu diesem Zweck läuft.

Computer?

> Vermutlich wird es ein 6502, Z80 oder ein 8086 sein,

Also ich finde, der Z80 hat die übersichtlichste Struktur und Befehle 
und die einfachste HW-Struktur nach außen. Aber da bin ich 
voreingenommen: war mein 1. Bastelprozessor.

> vielleicht sogar mit 64 Bit.

Abgesehen davon, dass es die von dir genannten Prozessoren (alle aus den 
Siebzigern und Achtzigern, also urururalt!) selbstverständlich nicht in 
64-Bit gibt, würde es auch absolut keinen Sinn machen, mit einem 
64-Bitter anzufangen.Und ob man für die Prozessoren Entwicklerboards 
kriegt, wage ich auch stark zu beweifeln (jedenfalls nicht neu). Oder 
willst Du Dir so ein Prozessorboard selbst entwickeln?

Jetzt mal Butter bei de Fische: WAS willst du nun eigentlich genau 
machen?
Das passt alles nicht mehr zusammen, was Du schreibst.
Und aus welchem Metier kommst Du denn beruflich? Hast Du 
technische/elektrische/elektronische Vorkenntnisse?

ciao

Marci

von Marci W. (marci_w)


Lesenswert?

Hans-Georg L. schrieb:
> Was hat das aber mit parallel und nebenbei zu tun ?.

Günter meint wohl, dass man Kommentare NEBEN den Befehl schreiben kann!? 
Aber seine Aussagen lassen ahnen, dass er doch noch ziemlich am Anfang 
steht.
Vllt. warten wir mal, bis er unsere Postings kommentiert hat.

ciao

Marci

von Marci W. (marci_w)


Lesenswert?

Günter K. schrieb:
> Ich melde mich wieder, wenn ein Computer zu diesem Zweck läuft.

Soooo lange können wir nicht warten ;-) <SCNR>

ciao

Marci

von Falk B. (falk)


Lesenswert?

Monk schrieb:
> Vielleicht gefallen dir diese Webseiten zum Thema:
>
> http://stefanfrings.de/avr_workshop/index.html
> http://stefanfrings.de/mikrocontroller_buch/index.html

Na Stefan, jetzt im neuen Namen annonym unterwegs?

von Falk B. (falk)


Lesenswert?

Monk schrieb:
> Ich bin sicher, dass die Generationen nach uns ganz hervorragende
> Entwickler werden können, ohne jedes Bit mit Namen zu kennen

Nö. Die Allermeisten sind oberflächliche Sciptkiddies die weder wirklich 
Ahnung noch Erhgeiz haben, was wirklich Gutes zu erschaffen. Da werden 
nur monströse Frameworks zusammengewürfelt und Java oder ander Quark 
reingerührt.

Hervoragende Leute sind damals wie heute eine sehr kleine Minderheit. 
Das ist schon rein definitionsgemäß so. Im Club der Millionäre ist nur 
der Milliardär herausragend.

von Falk B. (falk)


Lesenswert?

Günter K. schrieb:

> Ja, auch wenn Assembler dabei ist, wäre es ja interessant, mal selber
> einen zu schreiben, ebenso einen Dissassembler. - Nun habe ich schon mal
> gehört, dass beim Dissassembler, kein OP-Code angezeigt wird;

Dann ist es kein DISassembler sondern nur ein Hexeditor!

> gerade der
> OP-Code ist ja so interessant und so lernt man besser Maschinensprache
> zu verstehen.

Aber nicht in erster Linie mit dem Disassembler.

> Ich melde mich auch nochmal zu dem Herrn aus der ehemaligen DDR, mit
> seinem Junior-Computer hatte, der noch mit DM bezahlt wurde. - Der
> RODNEY ZAKS schrieb auch Bücher über den 6502, -hier in diesem Falle ist
> es der Z80.

Vergiss den ollen Kram! Nimm was ANSATZWEISE aktuelles. AVR wure schon 
genannt, würde ich auch empfehlen. Einfach, leistungsfähig, weit 
verbreitet.

von Rainer Z. (netzbeschmutzer)


Lesenswert?

Falk B. schrieb:
> Na Stefan, jetzt im neuen Namen annonym unterwegs?

Bist aber spät drauf gekommen. Stefan ist zwischenzeitlich unter sogar 
noch einem weiteren Pseudonym aufgetreten. Stichwort: "Grenzerfahrung".

von Falk B. (falk)


Lesenswert?

Günter K. schrieb:
> Entschuldigt bitte.
> Zwar gibt es das Wort Nebenspeicherung nicht, - aber selbsterklärend
> gemeint.
> Wenn man ein Programm scheibt, gibt es ja die REM-Befehle. - So kann ich
> ja, nebenbei an anderer Stelle "paralell" an einem anderen Stelle
> aufschreiben, welche Daten-Art es ist.

Du meinst wohl einen Kommentar? Das ist nur Text, der nicht im 
Controller landet, den filtert der Compiler/Assembler raus.

> Ich vermute, dass das irgendjemand versteht; - ich selbst bin ja noch
> lange nicht so weit, um Programme zu schreiben.

Und wirst es vermutlich nie sein. Mein ernstgemeinter Rat. Laß es. Geh 
ins Museeum, ggf. HNF oder andere und schau dir die Dinge an, schwärme 
und träume. Aber verplemper nicht deinen Lebensabend mit einer Sache, 
die man in dem Alter nicht mehr wirklich lernt oder gar genießen kann.

Beitrag "Heinz Nixdorf Musemusforum in Paderborn"

Wir hatten hier schon mehrere Leute in ähnlicher Situation, die von 
großen Projekten und Programmierung schwärmten, aber meistens nur über 
ihre eigenen Füße gestolpert sind. Ich weiß es, ich hab mehr als einmal 
(viel zu lange) mitgemacht.

Beitrag "Re: Sende/Empfangsvorgang mittels nur 1St. µC"
Beitrag "Re: Mehr als 58 Bytes mit E32-868T drahtlos übertragen"

Ein alter Bär lernt keine neuen Kunststücke mehr. Ist leider so.

von Monk (Gast)


Lesenswert?

Falk B. schrieb:
> Na Stefan, jetzt im neuen Namen annonym unterwegs?

Wieso anonym? Ich nutze den Account seit 4 Jahren.

von Falk B. (falk)


Lesenswert?

Thomas Z. schrieb:
> Ja klar das muss heute schon sein. In der Überschrift schreibst du von
> einfacher CPU und nun kommst du mit 64 Bit um die Ecke. Ich glaube dir
> kein Wort mehr.

Entweder ein Troll oder schon leichte Demenz.

von Christoph M. (mchris)


Lesenswert?

Thomas Z. schrieb:
> Ja klar das muss heute schon sein. In der Überschrift schreibst du von
> einfacher CPU und nun kommst du mit 64 Bit um die Ecke.

Was man wohl mit einem 64 Bit großen Speicher so rechnen kann?

: Bearbeitet durch User
von Hans-Georg L. (h-g-l)


Lesenswert?

Falk B. schrieb:
> Aber verplemper nicht deinen Lebensabend mit einer Sache,
> die man in dem Alter nicht mehr wirklich lernt oder gar genießen kann.
...
> Wir hatten hier schon mehrere Leute in ähnlicher Situation, die von
> großen Projekten und Programmierung schwärmten, aber meistens nur über
> ihre eigenen Füße gestolpert sind. Ich weiß es, ich hab mehr als einmal
> (viel zu lange) mitgemacht.
>
...
>
> Ein alter Bär lernt keine neuen Kunststücke mehr. Ist leider so.

Hallo Falk,
Das kann ich aber pauschal so nicht stehen lassen !!!

Ja, man wird im Alter langsamer, müder und vergesslicher.
Dafür ist ja kein Chef oder Kunde mehr da der einem antreibt. Nur der 
eigene Wille und den kannst du keinem absprechen.

Wer gelernt hat zu lernen und sich weiter zu bilden, kann das ein Leben 
lang.

von Mario M. (thelonging)


Lesenswert?

Christoph M. schrieb:
> Was man wohl mit einem 64 Bit großen Speicher so rechnen kann?

Bis 18 Trillionen zählen.

von Günter K. (enk)


Lesenswert?

Mario M. schrieb:
> Christoph M. schrieb:
>> Was man wohl mit einem 64 Bit großen Speicher so rechnen kann?
>
> Bis 18 Trillionen zählen.
Hallo Mario, und  Christoph M.,
ja ich verstehe was Ihr meint.

Man kann Speicherplätze Logarythmisch zuordnen, und so
auf dem Wege durch addieren multiplizieren.

Ein 64 Bit großer Speicher ist gerade mal 8 Byte groß. :-))
Es darf auch mal gelacht werden.
LG. Enk

von Falk B. (falk)


Lesenswert?

Günter K. schrieb:
> Ein 64 Bit großer Speicher ist gerade mal 8 Byte groß. :-))

Oder etwas mehr als drei Bierkästen!

https://www.youtube.com/watch?v=phhyoHNVOpU#t=25s

von Christoph M. (mchris)


Lesenswert?

>Ein 64 Bit großer Speicher ist gerade mal 8 Byte groß.

Das ist natürlich völlig ausreichend für deinen Anwendungsfall:
https://ub.fnwi.uva.nl/computermuseum/phywe.html
Hier der Simulator:
Beitrag "Re: Reparaturanfrage CPU-Modellrechner Phywe"

: Bearbeitet durch User
von Marci W. (marci_w)


Lesenswert?

Falk B. schrieb:
> Aber verplemper nicht deinen Lebensabend mit einer Sache,
> die man in dem Alter nicht mehr wirklich lernt

Autsch, du begibst dich auf seeehr dünnes Eis! Denkst du im Ernst, die 
älteren Leute könnten sowas nicht mehr lernen?
Ich hoffe jedenfalls, dass ich im Alter noch fit genug sein werde, um so 
nen Pipifax noch in mein Hirn zu kriegen...

ciao

Marci

von Günter K. (enk)


Lesenswert?

Marci W. schrieb:
> Soooo lange können wir nicht warten ;-) <SCNR>

OK. :-)

Also, ich habe eine Z80, und einen 6502 Junior-Computer.

In den Z80 Micro-Professor I, hatte ich im Op-Code ein Programm 
abgetippt.
Es ist ein Uhren-Programm, und das funktionierte.
Bei jedem Sekundentakt klackte der Lautsprecher;
in der 6-Stelligen Display-Anzeige, erschien die zu dem Progamm 
gehörende Uhrzeit und wurde auf diesem Wege hochzählend angezeigt.
Die Uhrzeit zählt in Sekunden, Minuten und Stunden hoch.
Diesen Computer habe ich zur Zeit nicht hier.
Es hat nur 72 Speicherplätze, die ich Byte für Byte eingegeben hatte;
also die Programmspeicherplätze.
Eine Periferie hat der Computer noch nicht.
An einem anderen Ort, liegt er in eine Kiste.
Morgen hole ich ihn zurück.

Weil das Progamm so klein ist, könnte man das auch
von Hand Disassemblieren.
In dem Buch von Rodnay Zacks, sind alle Befehle aufgeführt.
Aber leider nicht in der Zahlenfolge der Hexadezimalen Zahlen.
Der erste Eintrag lautet: "21", das müsste ein Befehl sein.
Leider finde ich den Befehl nicht.

Ach noch was, da habe ich ein Buch für ds wirden 8086.
Für ihn, habe ich Lehrprogramme.
Aber leider, habe ich die Funktion -im Ganzen- auch noch nicht 
verstanden.
Es wird geschrieben, dass man das Programm nur in den Editor laden 
braucht.
Da muss aber noch mehr sein; also der eigentliche Assembler selbst.
Leider verstehe ich den Begriff: "Direktive" nicht;
das sind Anweisungen an den Assembler.
Also wo, wird -genau- wohin, etwas angewiesen?
Daher war meine Frage nach einen "nakten" Computer.
Nur so, kann man das alles verstehen lernen.

Für heute mache ich Schluss, gute Nacht.
LG. Enk

: Bearbeitet durch User
von Thomas W. (Gast)


Lesenswert?

Günter K. schrieb:

> In dem Buch von Rodnay Zacks, sind alle Befehle aufgeführt.
> Aber leider nicht in der Zahlenfolge der Hexadezimalen Zahlen.
> Der erste Eintrag lautet: "21", das müsste ein Befehl sein.

0x21 ist LD HL, nnnn. Vor 45 Jahren habe ich per Hand assemblieren 
muessen.

Eine kleine Tabelle findest Du in:

https://k1.spdns.de/Vintage/Schneider%20CPC/Das%20Schneider%20CPC%20Systembuch/z175.htm

oder:

http://www.breakintoprogram.co.uk/programming/assembly-language/z80/z80-opcodes

> Ach noch was, da habe ich ein Buch für ds wirden 8086.

Hilft Dir nicht, da prozesorspezifisch.

von Mario M. (thelonging)


Lesenswert?

Günter K. schrieb:
> An einem anderen Ort, liegt er in eine Kiste.
> Morgen hole ich ihn zurück.

Nicht nötig.

https://www.heinpragt-software.com/mpf-1-emulator/

von Thomas Z. (usbman)


Lesenswert?

Günter K. schrieb:
> Ach noch was, da habe ich ein Buch für ds wirden 8086.
> Für ihn, habe ich Lehrprogramme.

nun dann würde ein XP aufsetzen (heute vermutlich in einer VM)
Da gibt es ein nettes Programm debug. Damit kannst du kleine 
Assemblerprograme in 8086 asm code eingeben, laden und speichern. Da ist 
ein kleiner Zeilen-Assembler, ein Lister (Disassembler) und diverse 
andere Hilfsfunktionen dabei.

Danach kannst dann mal den TASM von Borland probieren. Der ist 
inzwischen frei downloadbar und es existiert auch eine 32 Bit Version 
die man unter W10 aufrufen kann. Die Handbücher von Borland sind super 
aber halt auf Englisch.
Die sind im Internet Archiv abrufbar.

Direktiven sind Steueranweisungen für den Assembler (.ORG,.EQU, usw)
Dein Z80 0x21 bedeutet LD HL,<xxxx> beim 8085 wäre es LXI H,<xxxx>

https://en.wikipedia.org/wiki/Debug_(command)
https://winworldpc.com/product/turbo-assembler/5x
https://clrhome.org/table/

: Bearbeitet durch User
von Motopick (motopick)


Lesenswert?

Günter K. schrieb:

> Der erste Eintrag lautet: "21", das müsste ein Befehl sein.
> Leider finde ich den Befehl nicht.

Ein Buch brauche ich dafuer nicht. :)
Das "21" steht fuer LD HL, mit literaler 16 bit Konstante.
Die Konstante steht in den folgenden 2 Bytes.

von Falk B. (falk)


Lesenswert?

Marci W. schrieb:
>> Aber verplemper nicht deinen Lebensabend mit einer Sache,
>> die man in dem Alter nicht mehr wirklich lernt
>
> Autsch, du begibst dich auf seeehr dünnes Eis!

Meine Spezialität! ;-)

> Denkst du im Ernst, die
> älteren Leute könnten sowas nicht mehr lernen?

Das denke ich nicht nur, das kann ich auch mehrfach beweisen.

> Ich hoffe jedenfalls, dass ich im Alter noch fit genug sein werde, um so
> nen Pipifax noch in mein Hirn zu kriegen...

Das kannst du dir wünschen, vielleicht wird es auch so sein, aber die 
Masse der Leute ist es nicht.

von Christoph M. (mchris)


Lesenswert?

Günter K. schrieb:
>> Ach noch was, da habe ich ein Buch für ds wirden 8086.
>> Für ihn, habe ich Lehrprogramme.

Thomas Z.
>nun dann würde ein XP aufsetzen (heute vermutlich in einer VM)
>Da gibt es ein nettes Programm debug.

Einfacher geht's vielleicht mit Online-Prozessoren:
https://yjdoc2.github.io/8086-emulator-web/compile

von Michael (Gast)


Lesenswert?

Günter K. schrieb:
> wie eine Assemblerliste funktionieren kann,
> wenn er auf dem Bildschirm steht. Es müssen doch Prog.-Routinen da sein,
> die das bewerkstelligen;

Und woraus sollen die Programm Routinen bestehen?
ASM ist die unterste Verarbeitungsebene.
ASM ist direkt in Hexcodes übersetzbar.
Der (Makro) Assembler macht es nur dem Menschen ein wenig ansehnlicher 
und kennt ein paar grundlegende Vereinbarungen damit man nicht nur mit 
'magic numbers' und kryptischen Speicheradressen arbeiten muss, die 
keiner versteht der den Code sieht.

Du kannst aber den ASM Code auch anhand der Befehlsreferenz in die Hex 
Zahl übersetzen und direkt in die Speicherstelle schreiben.
So habe ich in der Lehre mein erstes 8085 System programmiert.
Dipschalter an A0-15 und D0-7 und eine /WR Taste.
Geht, ist aber maximal ineffizient und vollkommen unwartbar.

Darunter kommt nur noch Hardware.
Befehl aus Speicher holen, Befehl dekodieren, Befehl ausführen.
Befehl ausführen besteht meist aus weiteren Speicherzugriffen, dem 
herumschieben in Register und auslösen einer Hardwareaktion.
'NOP' z.B. setzt einfach den Programmcounter einen hoch und wartet auf 
den nächsten 'Befehl holen' Zyklus.

Ein 'ADD A,B' addiert unter zuhilfename des Akkumulator und eines 
Hilfsregisters die zwei Werte und speichert das Ergebniss im Akku'
Ein 'Jump 0x1234' besteht aus dem Befehl 'Jump' der die Hardware anweist 
das die nächsten zwei Speicherstellen in den Programm Counter geladen 
werden und dort weitergemacht wird.
Ein 'conditional JMP' macht das Srungergebnis von einem Zustand 
abhängig.
Das kann z.B. der Status des Carry Bits sein, das den Überlauf der 
vorrangegangenen Rechenoperation enthält. Z.B. das oben erwähnte 'Add 
a,b'

Steht alles im Detail in der Befehlsübersicht der jeweiligen CPU.
Moderne CPU sind weit ausgefuchster. Die willst Du nicht im Detail 
verstehen müssen.

Günter K. schrieb:
> Es steht in meinem Buch nicht drin. - "Es ist Rede von Direktiven?
Google: Direktive = Anweisung.
WELCHES Buch?
Irgendsoein verstaubter Schinken aus dem Pleistozän, geschrieben von 
einem verkopften Hochschulprofessor der einfach Dinge äußerst 
kompliziert beschreiben kann?

von Cyblord -. (cyblord)


Lesenswert?

Marci W. schrieb:
> Autsch, du begibst dich auf seeehr dünnes Eis! Denkst du im Ernst, die
> älteren Leute könnten sowas nicht mehr lernen?

Es sollte allgemein bekannt sein dass die Lernfähigkeit des Gehirns ab 
25-30 Jahren steig abnimmt.
D.h. es geht nicht um können oder nicht können sondern darum wie leicht 
oder schwer es ist, etwas Neues zu lernen.

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


Lesenswert?

Günter K. schrieb:

> Also, ich habe eine Z80, und einen 6502 Junior-Computer.

Na bitte, die Hardware hast du doch schon.

> Es hat nur 72 Speicherplätze, die ich Byte für Byte eingegeben hatte;
> also die Programmspeicherplätze.

Ein Wort zum Sprachgebrauch: ein Programm hat keine 
"Programmspeicherplätze". Der Prozessor hat die und zwar für die von dir 
genannten Typen in externem Speicher, entweder ROM (unveränderlich) oder 
RAM (veränderlich aber dafür flüchtig - Strom weg, Daten weg).

Ein Programm besteht aus Instruktionen, auf niedrigster Ebene ist das 
Maschinencode. Und natürlich hat ein Programm dann auch eine Länge. Und 
zwar wahlweise in Bytes (Maschinencode) oder in Anzahl an Instruktionen.

Die Übersetzung von Instruktionen (wahlweise auch "Befehle", 
"Anweisungen", "Mnemonics" etc. genannt) in Maschinecode ist ein 
vergleichsweise sturer Vorgang, den man im Regelfall einem dafür 
gemachten Programm überläßt: dem Assembler. Normalerweise ist diese 
Codierung 1:1, so wird "LD HL, #1234H" immer in "21 34 12" (alles 
Hexadezimal) übersetzt. Tricky wird es bei Sprüngen, wahlweise absolut 
oder relativ. Absolute Sprünge brauchen eine absolute Adresse, man muß 
also wissen an welcher Stelle im Speicher der Zielbefehl steht. In einem 
Assember-Programm verwendet man dazu Sprungmarken (auch "Label"), von 
Hand wird das wie gesagt etwas aufwendig.

Eine Instruktion wird idR. in mehrere Bytes übersetzt. Die Länge eines 
Programms in Bytes ist also idR. größer als die Anzahl an Instruktionen.

> Da muss aber noch mehr sein; also der eigentliche Assembler selbst.
> Leider verstehe ich den Begriff: "Direktive" nicht;
> das sind Anweisungen an den Assembler.
> Also wo, wird -genau- wohin, etwas angewiesen?

Eine Direktive erzeugt meist keinen Maschinencode, sondern steuert den 
Übersetzungvorgang. Z.B. haben Z80 Assembler eine Direktive "ORG nnnn". 
Der Assembler wird damit angewiesen, den Maschinencode für die nächste 
Instruktion auf die Adresse nnnn zu codieren. Eine andere häufig 
gebrauchte Direktive ist "DB" ("data byte"). Die kann man benutzen, um 
Daten wie z.B. Strings in den Maschinencode zu schreiben. Beipiel:

DB "Hello World", 13H, 10H, 0

erzeugt die Bytes 48 65 6c 6c 6f 20 57 6f 72 6c 64 0d 0a 00. Für einen 
gebrauchsfähigen nullterminierten String mit CRLF Zeilenende. Dessen 
Adresse kann man dann in ein Register laden und die Routine für die 
Bildschirmausgabe aufrufen. Beipiel:
1
LD HL, #1000H
2
CALL conout ; conout = console output, Textausgabe
3
...
4
5
ORG 1000H
6
DB "Hello World", 13H, 10H, 0

> Daher war meine Frage nach einen "nakten" Computer.
> Nur so, kann man das alles verstehen lernen.

Dazu brauchst du keinen nackten Computer. Ein Emulator auf dem PC tuts 
auch. Und etwas Infrastruktur darf der gerne mitbringen. Z.B. um Ein- 
und Ausgaben zu machen. Ein C64 Emulator für den 6502 oder ein 
CPM-Emulator für den Z80 sind z.B. als Spielwiese sehr gut geeignet.

von Cyblord -. (cyblord)


Lesenswert?

Meine Empfehlung an den TE wäre: Lernen wie grundsätzlich ein Rechner 
funktioniert. Und zwar mir einem akademischen Micro/Tiny Rechner für den 
es einen winzigen Assembler gibt. Mit einfachstem Stromlaufplan. Da gibt 
es ein paar. Ich müsste die konkret aber erst raussuchen.

Damit kann man relativ einfach lernen, wie überhaupt aus Elektronik ein 
Rechner entsteht der ein Programm ausführen kann.

Das ganze an einem echten, wenn auch alten, Rechner zu machen ist 
unnötig aufwendig.

: Bearbeitet durch User
von Thomas W. (Gast)


Lesenswert?

Michael schrieb:
> Günter K. schrieb:
>> wie eine Assemblerliste funktionieren kann,
>> wenn er auf dem Bildschirm steht. Es müssen doch Prog.-Routinen da sein,
>> die das bewerkstelligen;
>
> Und woraus sollen die Programm Routinen bestehen?
> ASM ist die unterste Verarbeitungsebene.
> ASM ist direkt in Hexcodes übersetzbar.

Damit ignorierst Du alle Arbeiten von Maurice Wilkes, der 1951 das 
Konzept des Microprogramming entwickelt hat. Und fast alle CPUs, die Du 
heute als Mikroprozessor bezeichnen wuerde, sind mikroprogrammiert 
(ausser der 6502, die hat ein direktes Steuerwerk).

Und Du hast schon das Elend mit den Meltdown, Spectre, Retbleed 
vergessen oder verdraengt? Die "Loesung" war ein Patch des Microcodes, 
nicht des Betriebsystemes.

Bei unserer VAX780 wurde das Microprogramm beim Boot in die CPU geladen, 
unter der Console durch eine PDP11 :-).

Falls der TO noch mitliest: Der deutsche Wikipedia-Artikel ist zwar Mah, 
erklaert aber ungefaehr worum es dabei geht 
(https://de.wikipedia.org/wiki/Mikroprogramm)

von Thomas W. (Gast)


Lesenswert?

Motopick schrieb:
> Günter K. schrieb:
>
>> Der erste Eintrag lautet: "21", das müsste ein Befehl sein.
>> Leider finde ich den Befehl nicht.
>
> Ein Buch brauche ich dafuer nicht. :)
> Das "21" steht fuer LD HL, mit literaler 16 bit Konstante.
> Die Konstante steht in den folgenden 2 Bytes.

Ich auch! Das gehoert alles in die Schublade "Unnoetiges Wissen"

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Günter K. schrieb:
> Der erste Eintrag lautet: "21", das müsste ein Befehl sein.
> Leider finde ich den Befehl nicht.

Ich mutmasse mal: 3 Byte spaeter steht F9 - das waere dann eine Sequenz 
um den Kellerspeicherzeiger zu initialiseren...

Gruss
WK

von (prx) A. K. (prx)


Lesenswert?

Thomas W. schrieb:
> Und fast alle CPUs, die Du
> heute als Mikroprozessor bezeichnen wuerde, sind mikroprogrammiert

Tatsächlich sind heutige Mikroprozessoren nicht im klassischen Sinn 
mikroprogrammiert, ausser sie sind aus dem Pleistozän übrig. Nur bei 
Microcontrollern mag das noch signifikant sein.

Die x86 haben zwar noch ein Mikroprogramm, das wird aber nur für sehr 
komplexe oder sehr seltene Befehle genutzt. RISCs wie ARM nutzen keines 
- das war ja gerade der Sinn der Sache.

: Bearbeitet durch User
von Soul E. (soul_eye)


Lesenswert?

Günter K. schrieb:
> Also, ich habe eine Z80, und einen 6502 Junior-Computer.
>
> In den Z80 Micro-Professor I, hatte ich im Op-Code ein Programm
> abgetippt.
> Es ist ein Uhren-Programm, und das funktionierte.

Da hast Du doch genau das was Du suchst. Der MicroProfessor ist ein 
super Lernsystem, wenn es um die absoluten Grundlagen geht, und wird 
genau dafür heute noch eingesetzt. Das Ding stammt aus den '80ern, wurde 
aber bis vor ein paar Jahren noch hergestellt.
https://de.wikipedia.org/wiki/Microprofessor_I
https://micro-professor.org/

Besorg Dir die original Anleitungsbücher und arbeite die durch. Da sind 
die Grundlagen erklärt, wie man mit Strom zwei Zustände darstellen kann 
("an" und "aus"), wie man mit mehrmals zwei Zuständen Informationen 
codieren kann, die Architektur eines Mikroprozessors, Maschinenbefehle, 
und schlußendlich auch die Möglichkeiten sich das Leben einfacher zu 
machen (höhere Programmiersprachen, BASIC).

Vom Fernlehrinstitut Christiani gab es Lehrgänge, die auf dem MPF-1 
basieren. Die sind nochmal ausführlicher und einfacher erklärt als das 
originale Handbuch. Vielleicht findet man die auch irgendwo online.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Monk schrieb:
> Falk B. schrieb:
>> Na Stefan, jetzt im neuen Namen annonym unterwegs?
>
> Wieso anonym? Ich nutze den Account seit 4 Jahren.

Interessant. Der Monk alias Stefan F alias Whoever wird "enttarnt", 
neudeutsch "exposed" und schon ist sein Account deaktivert oder gar 
gelöscht, sodaß seine Beiträge nicht mehr als angemeldeter Teilnehmer 
sondern nur noch als Gast erscheinen. Was sagt uns das?

von Falk B. (falk)


Lesenswert?

Soul E. schrieb:
> aber bis vor ein paar Jahren noch hergestellt.
> https://de.wikipedia.org/wiki/Microprofessor_I

Markteintritt 1981.

OMG! Was für echte Hardcorefreaks. Und ich frage mich, wer da von wem 
mal wieder kopiert hat?

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

Markteintritt 1983.

Überholen ohne Einzuholen! ;-)

https://de.wikipedia.org/wiki/%C3%9Cberholen_ohne_einzuholen

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Falk B. schrieb:
> Was sagt uns das?

Dass man den Kollegen, sofern es einen interessiert, doch auch sehr 
einfach ohne "deine Enttarnung" hier erkennen kann, egal mit welchem und 
wie altem oder ganz neuen Alias.
Aber was bringt einem das?

Gruss
WK

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> https://de.wikipedia.org/wiki/LC80
>
> Markteintritt 1983.

Schmeichler ;-), 83 begann die Entwicklung, vertrieben wurde die Mappe 
ab 1984. Ich erinnere mich noch an die spitze Bemerkung eines Kurators 
der Technischen Sammlungen Dresden (damals "Polytechnisches Museum") mit 
der dieser den "Neuzugang" seinen Besuchern vorstellte - das war nämlich 
auch 1984. Also gleich aus der Entwicklung in das Museum - wegweisend 
für die DDR-Elektronikproduktion. ;-)

Wobei der Kurator übersah, das technische Ausstellung auch einen 
Bildungsauftrag neben der Vermittlung von Historie haben und das es 
durchaus Sinn macht, einen Experimentiercomputer in die Sammlung 
aufzunehmen.

Die Bezeichnung Homecomputer im Vergleich zum C64 oder Atari ST ist da 
natürlich fehl am Platz.

Und damit gleich ein Hinweis auf die Alt-Computerausstellung VCFB dieses 
Wochenende in Berlin: https://vcfb.de/2024/

> Überholen ohne Einzuholen! ;-)

Ja, der Klassiker realsozialistischer Logik. In Abwandlung dazu " Wo wir 
sind ist vorn. Und wenn wir hinten sind, ist hinten vorn !!!" ;-)

von Cyblord -. (cyblord)


Lesenswert?

Bradward B. schrieb:
> Und damit gleich ein Hinweis auf die Alt-Computerausstellung VCFB dieses
> Wochenende in Berlin: https://vcfb.de/2024/

Oh nein, noch eine Geronten-Veranstaltung. Reichen die AFU Flohmärkte 
nicht?

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


Lesenswert?

Falk B. schrieb:
> Soul E. schrieb:

>> https://de.wikipedia.org/wiki/Microprofessor_I
>
> Markteintritt 1981.
>
> https://de.wikipedia.org/wiki/LC80
>
> Markteintritt 1983.
>
> ... ich frage mich, wer da von wem mal wieder kopiert hat?

Naja. Das Konzept wurde sicherlich kopiert. Aber Konzepte sind für sich 
nicht geschützt. Daß die DDR eine eigene Hardware (sowohl die Platine 
als auch die Chips darauf) gebaut hat lag auch daran, daß zumindest die 
Chips dem Technologie-Embargo (CoCom-Liste) unterlagen. Und daß der U880 
erst 1983 in nennenswerter Stückzahl für ein Spielzeug wie den LC80 
verfügbar war.

Zeitgleich mit dem LC80 kam auch der Poly880 [1] auf den Markt. Den 
halte ich für die angedachte Verwendung als Lernsystem für noch besser. 
Und der hatte AFAIK kein westliches Pendant.


[1] https://de.wikipedia.org/wiki/Polycomputer_880

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

>  Daß die DDR eine eigene Hardware (sowohl die Platine
> als auch die Chips darauf) gebaut hat lag auch daran, daß zumindest die
> Chips dem Technologie-Embargo (CoCom-Liste) unterlagen.

Nein, diese 8 bit Chips standen nicht auf der Embargoliste, die konnte 
man bequem in West-Berlin kaufen und über die Grenze bringen. Oder sich 
verbaut in einen C64 von Oma mitbringen lassen. Auf der Liste damals 
standen 32 bit Prozessoren, die aber geliefert werden durften, wenn auf 
dem pcb der datenbus nur in Hälfte (32 bit) ausgeführt war.

> Und daß der U880
> erst 1983 in nennenswerter Stückzahl für ein Spielzeug wie den LC80
> verfügbar war.

Das passt schon eher, wobei die U880 Produktion (Z80-Clone) schon 
erheblich gestreckt wurde und für Bastler Ausschuß-Exemplare sogenannte 
bastlertypen aussortiert wurden.

https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=4392

Wobei der LC80 nicht wie der "Polyplay" zum Spielzeug zählte sondern als 
Lehrmittel konzipiert war.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Axel S. schrieb:
> Zeitgleich mit dem LC80 kam auch der Poly880 [1] auf den Markt.

"Im Jahr 1984 betrug der Neupreis 3.449 Mark."

Autsch! Für so einen Murks satte 4 Monatsgehälter auf den Tisch legen. 
Naja, mangels größerem Angebot kam wohl kaum eine Privatperson in die 
Versuchung, dafür Geld auszugeben. Der C64 kam 2 Jahre vorher im NSW für 
um die 1400 Westmark auf den Markt und hatte um Welten mehr zu bieten! 
Ein reichliches Jahr später gab's den für unter 1000 DM! Da 
funktionierte die Konsumgüterproduktion nicht nur auf dem Papier!

Naja, Gott sei Dank ist mir durch die Gnade der späten Geburt diese 
Mangelwirtschaft als junger Erwachsener erspart geblieben. Ich wär 
vermutlich abgehauen oder in Bautzen gelandet . . .

von Falk B. (falk)


Lesenswert?

Dergute W. schrieb:
>> Was sagt uns das?
>
> Dass man den Kollegen, sofern es einen interessiert, doch auch sehr
> einfach ohne "deine Enttarnung" hier erkennen kann, egal mit welchem und
> wie altem oder ganz neuen Alias.

Das auch aber das ist gar nicht wesentlich. Wie es scheint, hat der gute 
Stefan ein Problem damit, mit eindeutigem Namen, und sei es nur ein 
Pseudonym,  aufzutreten. Wie es scheint, steht er nicht zu seinen Worten 
bzw. ist ihm der Gegenwind, der bisweilen entsteht, zuviel.

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Naja, Gott sei Dank ist mir durch die Gnade der späten Geburt diese
> Mangelwirtschaft als junger Erwachsener erspart geblieben. Ich wär
> vermutlich abgehauen oder in Bautzen gelandet . . .

Bautzen war für Erwachsene, für Jugendliche wärs wohl der Jugendwerkhof 
geworden: https://de.wikipedia.org/wiki/Jugendwerkhof .

Auch Amerikanische Computerprogrammierer haben Software hinter Gittern 
erstellt, Apple's frühe Textverarbeitung ist wohl in einer solchen 
"Besserungsanstalt" entstanden: 
https://en.wikipedia.org/wiki/EasyWriter#History

von Marci W. (marci_w)


Lesenswert?

Thomas W. schrieb:
> Vor 45 Jahren habe ich per Hand assemblieren
> muessen.

Hi Thomas, bei mir ist es noch nicht ganz so lange her. Habe mir ein 
einfaches Z80-System gebastelt. Und die Möglichkeit, Maschinenbefehle 
(also Opcodes, keine Assemblerbefehle!) einzugeben und auszuführen, habe 
ich per Hand codiert und bei einem befreundeten Entwickler in ein EPROM 
gepackt. Also quasi das BIOS ;-) Waren zwar nur ca. 200 Befehle. Dennoch 
ein Wunder, dass das funktioniert hat. Und ja, nach dem Ausschalten war 
das eingegebene Programm natürlich weg. :-)
Mann, das waren noch Zeiten...

ciao

Marci

von Marci W. (marci_w)


Lesenswert?

Bradward B. schrieb:
> für Jugendliche wärs wohl der Jugendwerkhof
> geworden: https://de.wikipedia.org/wiki/Jugendwerkhof .

Soll aber nicht weniger schlimm gewesen sein. Im Gegenteil. Im TV kam 
mal ne Doku mit Zeitzeugen.

ciao

Marci

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Marci W. schrieb:
> Bradward B. schrieb:
>> für Jugendliche wärs wohl der Jugendwerkhof
>> geworden: https://de.wikipedia.org/wiki/Jugendwerkhof .
>
> Soll aber nicht weniger schlimm gewesen sein. Im Gegenteil.

Hat ja auch Keiner behauptet. Jugendwerkhof war schon ne "Drohkulisse" 
für die junge Generation, da wollte keiner freiwillig rein.
Nur "Schwedt" hatte einen noch übleren Ruf, aber das betraf Zivilsten 
eher nicht.

von Motopick (motopick)


Lesenswert?

Thomas W. schrieb:
> Motopick schrieb:
>> Günter K. schrieb:
>>
>>> Der erste Eintrag lautet: "21", das müsste ein Befehl sein.
>>> Leider finde ich den Befehl nicht.
>>
>> Ein Buch brauche ich dafuer nicht. :)
>> Das "21" steht fuer LD HL, mit literaler 16 bit Konstante.
>> Die Konstante steht in den folgenden 2 Bytes.
>
> Ich auch! Das gehoert alles in die Schublade "Unnoetiges Wissen"

Das ist so nicht richtig. Weil:
Das gehoert in die Schublade "Historisches Wissen".
Historisches Wissen huelft, Dinge einzuordnen und zu bewerten.
Fehlt es, ist der Betreffende im einfachsten Fall nur unorientiert,
und tritt auch unorientiert auf.


Der LC80 war fuer den "Endkundenmarkt". Teuer genug war er trotzdem. :)
Der Poly880 war fuer "Bildungseinrichtungen". Der Preis war fuer das
Gebotene unverschaemt.

von Soul E. (soul_eye)


Lesenswert?

Motopick schrieb:
> Der LC80 war fuer den "Endkundenmarkt". Teuer genug war er trotzdem. :)
> Der Poly880 war fuer "Bildungseinrichtungen". Der Preis war fuer das
> Gebotene unverschaemt.

Das war im NSW nicht anders. Die Geräte für die Schülerversuche kamen 
hier von Phywe oder Leybold Heraeus Didactic, und da wäre das gleiche 
Gewicht in Gold meist billiger gewesen.

von Motopick (motopick)


Lesenswert?

Soul E. schrieb:
> Motopick schrieb:
>> Der LC80 war fuer den "Endkundenmarkt". Teuer genug war er trotzdem. :)
>> Der Poly880 war fuer "Bildungseinrichtungen". Der Preis war fuer das
>> Gebotene unverschaemt.
>
> Das war im NSW nicht anders. Die Geräte für die Schülerversuche kamen
> hier von Phywe oder Leybold Heraeus Didactic, und da wäre das gleiche
> Gewicht in Gold meist billiger gewesen.

So manches (Demonstrations-)Utensil war bei meiner Schule wohl "vererbt"
worden. Die mechanische Ausfuehrung legte es jedenfalls nahe.
Das tat ihrer Nuetzlichkeit natuerlich keinen Abbruch.
Manches haette es in "Neu" vielleicht auch gar nicht gegeben.
Vieles war aber auch erkennbar neu: Ein Demonstrationsoszillograf
und ein dickethaler Zeitmesser fuer fuesikalische Fallversuche.

Der Markt regelt das heute auf die Weise:
"Verlangt wird, was der Markt geradso hergibt."
Wenn es ueberhaupt einen "Markt" gibt. :)

Edith:
Im Rahmen der Studienorientierung gab es auch Besuche bei Hochschulen.
Mit Besichtigung von echter Rechentechnik!
Einen Commodore SR110NC hatte ich da aber schon. :)

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


Lesenswert?

Thomas W2 schrieb:
> 0x21 ist LD HL, nnnn. Vor 45 Jahren habe ich per Hand assemblieren
> muessen.

Hochachtung!
Mit allergrößtem Respekt sehe ich diese Leistung!
Ich habe nur noch gestaunt; das ist wirklich hervorragend!

Nun fahre ich in die Stadt. - D.h.:
ich komme gerade aus der Stadt zuück,
und habe nun den Computer: Micro-Professor µP  AN EYE TO THE FUTURE
MPF-1B
POWER 9 Volt Eingangsspannung.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
Jetzt habe ich ja noch das Buch: RODNAY ZAGS

Programmierung des
Z80
RODNAY ZAKS
vom SYBEX Verlag.

ISBN 3-88745-006-X
1. Auflage 1982
2. Auflage 1982
3. Auflage 1983

(C) 1982, SYBEX-Verlag GmbH., Düsseldorf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
Vorne-an ist ein: Dankwort.
Leider fehlen hier einige Seiten
zwichen 1 und 6 und habe als 1. Seite 7 vorliegen;
ab dort sind Inhaltsverzeichnisse.
Ich gehe zu TH-Bibliothek, um mehr zu erfahren.
Hier sind zwar Zeichnungen drin wo etwas der ALU oder Akumulator
übergeben wird aber nicht genau; bin nur Elektriker(Elektroniker).
Also sind mir logische Schaltungen auch ein Begriff.
Darum fand ich es auch garnicht schlecht, auf Relais-Schaltungen
zu verweisen. - Denn da, liegt ein springender Punkt. - Wie bei TTL.

Auf Seite 591 Anhang E - : Der Befehlssatz des Z80. Aber nicht sortiert.
Also, das Uhren-Programm läuft. Habe es wohl nicht wiederholt.
Das wird man vermutlich wunderbar an einem Ablauf-Diagramm darstellen 
können. Vielen Dank auch an alle, ich habe noch nicht alles gelesen. :-)
LG. Enk - Ich schaue gleich weiter rein.

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


Lesenswert?

Prima: DANKESCHÖN!
LG. Enk

PS.:
Ich gucke weiter den Thread durch.

von Günter K. (enk)


Lesenswert?

Prima Marci!
LG Enk

von Günter K. (enk)


Lesenswert?

Hallo Marci,

Du schriebst ja:
" Habe mir ein
einfaches Z80-System gebastelt. Und die Möglichkeit, Maschinenbefehle
(also Opcodes, keine Assemblerbefehle!) einzugeben und auszuführen, habe
ich per Hand codiert und bei einem befreundeten Entwickler in ein EPROM
gepackt. Also quasi das BIOS ;-) Waren zwar nur ca. 200 Befehle. Dennoch
ein Wunder, dass das funktioniert hat. Und ja, nach dem Ausschalten war
das eingegebene Programm natürlich weg. :-)".

Inwichen gibt es ja Möglichkeiten, das es nicht mehr weg ist.

Ich muss hier noch lernen, wie man richtig editiert.
ich melde mich nochmal deswegen, geht das?

LG. Enk

: Bearbeitet durch User
von Motopick (motopick)


Angehängte Dateien:

Lesenswert?

Im Anhang eine (Hexa-)Tabelle der einfachen und der extended (ED)
Befehle des Z80.
Bitbefehle (CB) und Indexregisterbefehle (DD,FD) muesstest du im
Buch nachschlagen.

Auf den Seiten 1-6 vom "Zaks - Programmierung des Z80" stehen nur
Verlagsinformationen und ein Dankwort an jene, die Verbesserungen
am Buchinhalt vorgeschlagen haben.

Das Inhaltsverzeichnis ist ab Seite 7.
Den Gang zur Bibliothek kannst du dir getrost sparen. :)

von Christoph M. (mchris)


Lesenswert?

Günter K. (enk)
>Vielleicht noch was für den 6502 oder 65s02, oder 8086, (Z80)?
>Die Haupt-sache es ist einfach. Er braucht auch nicht besonders schnell zu sein.
>Ich brauche einen STACK, je ein X und Y-Register, Statusregister für die
Flags.
>Aber auch einen passenden Emulator der CPU auf einen anderen Computer.
>Interessant wäre noch, wie der Akkumulator von innen arbeitet;
> - alles in der CPU sollte sichtbar sein.

Vielleicht wäre diese moderne Board das Richtige für Dich, die eine 
Prozessorarchitektur verwendet, die auch heute noch millionenfach 
produziert wird:
https://www.cnx-software.com/2024/10/17/6-cocket-nova-ch552-development-board-features-ch552g-8-bit-mcu-with-an-enhanced-8051-core/

https://edsim51.com/

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


Lesenswert?

Christoph M. schrieb:
> Vielleicht wäre diese moderne Board das Richtige für Dich, die eine
> Prozessorarchitektur verwendet, die auch heute noch millionenfach
> produziert wird:

Hallo Christoph M. vielen Dank für die Botschaft. So Modern die 
Risk-Architektur auch ist, ich las da Sachen, die etwas zu Modern sind. 
-
Da las ich etwas über dem Einsatz von KI und rechtlichen Ansprüchen auf 
den Prozessor. Aber zum Basteln kann es für mich interessant werden oder 
sein.
Vieleicht werde ich es mal für Schaltungssteuerungen brauchen.
Auf jeden Fall, noch mal vielen Dank. Der Schriftsteller des Buches läst 
schreiben:
"Scot W. STevenson programmiert seit Tagen von 8-Bit.Prozessoren wie dem 
6502, in Assembler. Vom Bytegeschiebe konnten ihn weder sein 
Medizinstudium, ein Graduirtenkolleg Jornalismus, mehr als  zwei 
Jahrzehnte als nachrichtenredakteur noch ein Blog über die USA 
abbringen. Er behauptet trotzdem damit aufhören zu können."
Na, den Schluss von dem Vers, find ich ein bisschen lustig.
Ich erinnere mich, auch etwas von einem 65s02 usw. gelesen zu haben.
Das Buch heist: Einführung in die moderne Assembler-Programmierung.

Habe aber inzwischen auch noch andere gute Sachen gelesen.
LG. Enk

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


Lesenswert?

Hallo Christoph M.
DANKESCHÖN!
LG. Enk

PS.:
Ich lese die letzten Eingänge nochmal durch.

von (prx) A. K. (prx)


Lesenswert?

Günter K. schrieb:
> Das Buch heist: Einführung in die moderne Assembler-Programmierung.

Erscheinungsdatum: 30.07.2024, allerdings RISC-V, nicht 6502.
https://dpunkt.de/produkt/einfuehrung-in-die-moderne-assembler-programmierung/

Assembler kann man sicherlich an einzelnen Stellen brauchen. Aber ich 
assoziiere das eher mit einer Einführung in moderne Pferdekutschen.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Günter K.
>Hallo Christoph M. vielen Dank für die Botschaft. So Modern die
>Risk-Architektur auch ist, ich las da Sachen, die etwas zu Modern sind.

Ähm, der Link geht auf ein MCU-Board mit 8051 Kern. Die Architektur 
dieses Kerns ist von 1980:

https://de.wikipedia.org/wiki/Intel_MCS-51
Der 8051 Kern wird heutzutage aber noch millionenfach in "intelligenten" 
Sensoren implementiert. Das schöne daran: die Assemblerbefehle sind sehr 
einfach zu verstehen.
Mancher Chinese nutzt den Kern als Coprozessor bis 300MHz:
https://www.cnx-software.com/2024/02/08/licheerv-nano-low-cost-sg2002-risc-v-arm-camera-display-board-wifi-6-ethernet/

von Günter K. (enk)


Lesenswert?

Hallo
von Marci W. (marci_w), Thomas W2, und alla.

Günter K. schrieb:
> Waren zwar nur ca. 200 Befehle.

"nur", da muss man sich ja auch noch Gedanken machen,
was die Befehle für die Geräte und was an den Geräten gemacht werden 
muss.
Also, ich melde mich nochmal,

Bis später.

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


Lesenswert?

(prx) A. K. schrieb:
> Aber ich
> assoziiere das eher mit einer Einführung in moderne Pferdekutschen.

Wenn du mal extrem zeitkritische Aufgaben mit Controllern lösen musst, 
dann wirst du das anders sehen... Außerdem hilft einem das Verständnis 
von Assembler bei vielerlei Compiler-Bockmist...

von Falk B. (falk)


Lesenswert?

Wolfgang R. schrieb:
> Außerdem hilft einem das Verständnis
> von Assembler bei vielerlei Compiler-Bockmist...

Ob das dem Günter real hilft, wage ich zu bezweifeln. Ich gebe ihm 4 von 
10 Punkten auf der Josef G. Skala . . .
Die BO8 läßt grüßen!

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


Lesenswert?

Falk B. schrieb:
> Ich gebe ihm 4 von
> 10 Punkten auf der Josef G. Skala . . .

ROFL!

von Soul E. (soul_eye)


Lesenswert?

Günter K. schrieb:
> ich komme gerade aus der Stadt zuück,
> und habe nun den Computer: Micro-Professor µP  AN EYE TO THE FUTURE
> MPF-1B

Dann kann es ja losgehen.

> Jetzt habe ich ja noch das Buch: RODNAY ZAGS
>
> Programmierung des
> Z80
> RODNAY ZAKS
> vom SYBEX Verlag.

Das sollte man auch haben, aber das ist eher ein Nachschlagewerk. Für 
den Einstieg würde ich die Anleitung des MPF-1 durcharbeiten, oder einen 
der zahlreichen Lehrgänge, die auf dem Gerät basieren. Das Ding war 
damals zu Ausbildungszwecken sehr verbreitet, bis weit in die '90er 
Jahre hinein, als wir alle schon "richtige" PCs hatten.

Also z.B. 
https://8bit-wiki.de/8bit-datenbanke32f.html?tx_filelist_filelist%5Baction%5D=list&tx_filelist_filelist%5Bcontroller%5D=File&tx_filelist_filelist%5Bpath%5D=%2F8bit-wiki%2FMicroProfessor_von_MicroTech%2FMicroProfessor-MPF1%2FManual%2F&cHash=a684a589e406751cf37b8b0374ec085d

und dann hier im speziellen
* 
https://8bit-wiki.de/fileadmin/8bit-wiki/MicroProfessor_von_MicroTech/MicroProfessor-MPF1/Manual/MPF%201%20Mikroprozessor%20Christiani.pdf
* 
https://8bit-wiki.de/fileadmin/8bit-wiki/MicroProfessor_von_MicroTech/MicroProfessor-MPF1/Manual/MPF%201%20Peripherie%20Christiani.pdf

oder wenn die Englischkenntnisse ausreichen
* 
https://8bit-wiki.de/fileadmin/8bit-wiki/MicroProfessor_von_MicroTech/MicroProfessor-MPF1/Manual/MPF%201%20User%27s-manual.pdf
* 
https://8bit-wiki.de/fileadmin/8bit-wiki/MicroProfessor_von_MicroTech/MicroProfessor-MPF1/Manual/MPF-1%20Experiment%20Manual.pdf

von Peter D. (peda)


Lesenswert?

Wolfgang R. schrieb:
> Außerdem hilft einem das Verständnis
> von Assembler bei vielerlei Compiler-Bockmist...

Assemblerkenntnisse sind nicht schlecht, um mal einen Blick hinter die 
Kulissen von C zu werfen.
Es hilft, besser einzuschätzen, welche Operationen besonders teuer sind. 
Man kann dann vermeiden, sie unnötig häufig aufzurufen und damit 
kostbare CPU-Zeit zu verplempern.
Man kann aber auch staunen, welche Tricks und Kniffe der Compiler kennt, 
um effektiver und sparsamer als der weitaus größte Teil der 
Assemblerfraktion zu coden.

Ab einem bestimmten Leidensdruck, d.h. Anzahl und Größe der Projekte, 
wird aber irgendwann jeder die Vorteile von C nutzen wollen, um sich 
nicht mehr mit Nebensächlichkeiten, wie Push, Pop, RAM-Zuweisungen, 
Pointerberechnungen usw. abplagen zu müssen.

von (prx) A. K. (prx)


Lesenswert?

Peter D. schrieb:
> Man kann aber auch staunen, welche Tricks und Kniffe der Compiler kennt,
> um effektiver und sparsamer als der weitaus größte Teil der
> Assemblerfraktion zu coden.

Wobei es dabei eher um die Kenntnis der Maschinenbefehle und der 
Mikroarchitektur geht. Man muss dazu nicht in der Lage sein, in 
Assembler ordentlich zu programmieren.

Und wenn es dann nicht mehr um 6502 oder Z80 geht, sondern Prozessoren 
mit langer Pipeline und Schlimmerem, hat die Kenntnis der 
Mikroarchitektur eine entscheidende Bedeutung.

von (prx) A. K. (prx)


Lesenswert?

Peter D. schrieb:
> Ab einem bestimmten Leidensdruck, d.h. Anzahl und Größe der Projekte,
> wird aber irgendwann jeder die Vorteile von C nutzen wollen, um sich
> nicht mehr mit Nebensächlichkeiten, wie Push, Pop, RAM-Zuweisungen,
> Pointerberechnungen usw. abplagen zu müssen.

In solchen Fällen wird man Assembler auf Codestücke beschränken, die für 
die Performance entscheidend sind. Und diese möglicherweise als 
Inline-Assembler in den C-Quelltext direkt einbauen, nicht als separaten 
Assembler-Quelltext pflegen.

Und wenn man das durch hat, stellt man anschliessend fest, dass man sich 
das hätte sparen können :), weil der Compiler schon Intrinsics für in C 
nicht abbildbare Maschinenbefehle hat. Etwa für die SIMD-Erweiterungen 
SSE/AVX.

: Bearbeitet durch User
von Motopick (motopick)


Lesenswert?

(prx) A. K. schrieb:

> Und wenn es dann nicht mehr um 6502 oder Z80 geht, sondern Prozessoren
> mit langer Pipeline und Schlimmerem, hat die Kenntnis der
> Mikroarchitektur eine entscheidende Bedeutung.

Ja, Pipelines und Busse. Stete Quelle von Freude.

Ich habe in von einem Compiler generierten Code da schon
Zugriffsverletzungen gesehen. Ein einfach indirekter Ladebefehl
wurde nicht ausgefuehrt, stattdessen wurde eine "0" geladen.
Vermutlich war der Bus ueber den der Zugriff laufen sollte,
einfach nur belegt. Der Compiler sollte das eigentlich erkennen.

Ich habe dann ein kurzes Stueck aus dem Compilat als Inlineassembler
eingegefuegt, und vor dem scheinbar kritischen Zugriff ein NOP
platziert. Das funktionierte dann. :)

Schwierig war nur die Stelle des "Fersagens" zu finden.

von Günter K. (enk)


Lesenswert?

Thomas W2 schrieb:
> 0x21 ist LD HL, nnnn.
[Alle Zeichen hexadezimal bzw. wie hex', das ist schonmal gut so.]
D.h.:
Lade H-Byte und LByte,  aber wohin, in den Akku oder ALU?

Frage: Was geht woher, wohn? - : Also
Lade 08 00   aber wohin?

LG Enk

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


Lesenswert?

Günter K. schrieb:
> Was geht woher, wohn?

Das steht in der Dokumentation der CPU. HL ist das Ziel-Register, es hat 
16 Bit.

https://www.mikrocontroller.net/attachment/235150/Instruction_Card_Z80.pdf

von Thomas W. (Gast)


Angehängte Dateien:

Lesenswert?

Wenn Du auf Seite 2 des Datenblatts der CPU guckst, siehst Du das 
Programmiermodell der  Z80. 8-bit-Akku A, die Flags F, und HL, BC und DE 
als 16-Bit-Register. Die Z80 hat ein alternativen Registersatz, mit 
einem Kommando umgeschaltet werden kann (sehr hilfreich).

IX und IX als Index-Register, Stack als Stackpointer.

Seite 2 des Datenblattes habe ich angehaengt.

von Günter K. (enk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Das steht in der Dokumentation der CPU. HL ist das Ziel-Register, es hat
> 16 Bit.

Also, verstehe ich kaum.

Also aus der Speicherstell ...
Moment, um das richtig zu erklären:

Ich habe hier ein Programm mit 72 Speicherplätzen.
Es geht von: 1800 bis 1847.
Es ist ein Uhrenprogramm.
Der 1. Befehl lautet demnach:
Der Maschinenbel 21 sagt:
"Lade die Werte:"0800" in die Register H und L.
Nun steht im 16-Bit-Register 0800.
Der nächste Befehl lautet: 0E. Nun werde ich in der Dokumentation suchen 
...
LG. Enk

von Marci W. (marci_w)


Lesenswert?

Günter K. schrieb:
> Der 1. Befehl lautet demnach:
> Der Maschinenbel 21 sagt:
> "Lade die Werte:"0800" in die Register H und L.

Genau dafür gibt es Disassembler!

ciao

Marci

: Bearbeitet durch User
von Thomas W. (Gast)


Lesenswert?

Die von Soul E. verlinkte Anleitung

https://8bit-wiki.de/fileadmin/8bit-wiki/MicroProfessor_von_MicroTech/MicroProfessor-MPF1/Manual/MPF%201%20Mikroprozessor%20Christiani.pdf

ist schon sehr gut (deutsch, einfach geschrieben, enthael auch Uebungen) 
und wenn Du die Hardware hast, kannst Du die Beispiele einfach 
durcharbeiten.

von Günter K. (enk)


Lesenswert?

Marci W. schrieb:
> Genau dafür gibt es Disassembler!

Hallo Marci W. Ja bitte, das wäre gut
hast Du einen Disassembler für den Z80?
Oder ist so etwas Computerabhängig?
LG. Enk.

Also Günter K.

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


Lesenswert?

Günter K. schrieb:
> Marci W. schrieb:
>> Genau dafür gibt es Disassembler!
>
> Hallo Marci W. Ja bitte, das wäre gut
> hast Du einen Disassembler für den Z80?
> Oder ist so etwas Computerabhängig?

Ja, klar. Aber Google findet da weit mehr als du brauchst:

https://www.google.com/search?&q=Z80%20disassembler

Wenn es für ein bestimmtes Betriebssystem sein soll, dann ergänze das in 
der Suchanfrage. Ich habe z.B. z80dasm in meinem ~/bin (Linux).

von Thomas W. (Gast)


Lesenswert?

Vielleicht damit wir ueber das Prograemmle reden:
1
1800                          .ORG   0x1800   
2
1800   21 00 08     START:    LD   hl,0x0800   
3
1803   0E 0F        L1:       LD   c,0x0f   
4
1805   CD E4 05               CALL   0x05e4   
5
1808   CD 14 18               CALL   SUB1   
6
180B   06 5E                  LD   B,0x5e   
7
180D   CD 2C 18     L2:       CALL   SUB2   
8
1810   10 FB                  DJNZ   l2   
9
1812   18 EC                  JR   start   
10
1814   0E 03        SUB1:     LD   C,0x03   
11
1816   11 02 1A               LD   DE,0x1a02   
12
1819   21 47 18               LD   HL,0x1847   
13
181C   37                     SCF   
14
181D   1A           L4:       LD   A,(DE)   
15
181E   CE 00                  ADC   A,0x00   
16
1820   27                     DAA   
17
1821   0C                     INC   C   
18
1822   96                     SUB   (HL)   
19
1823   38 01                  JR   c,l3   
20
1825   12                     LD   (DE),A   
21
1826   3F           L3:       CCF   
22
1827   2B                     DEC   HL   
23
1828   1B                     DEC   DE   
24
1829   10 F2                  DJNZ   l4   
25
182B   C9                     RET   
26
182C   C5           SUB2:     PUSH   bc   
27
182D   11 02 1A               LD   DE,0x1a02   
28
1830   21 03 19               LD   HL,0x1903   
29
1833   06 03                  LD   B,0x03   
30
1835   1A           L5:       LD   A,(DE)   
31
1836   CD 76 06               CALL   0x0676   
32
1839   1B                     DEC   DE   
33
183A   10 F9                  DJNZ   l5   
34
183C   DD 21 03 19            LD   IX,0x1903   
35
1840   CD 24 06               CALL   0x0624   
36
1843   C1                     POP   BC   
37
1844   C9                     RET   
38
1845   24 60 60     DATA:     DB   0x24,0x60,0x60

Natuerlich fehlt der Startup-Code, oder wohin soll der CALL 
zurueckfinden? Ist alles aus dem Microprofessor Handbuch (ich muss 
sagen, 1983 hat man sich noch richtig Muehe gegeben verstaendliche 
Handbuecher zu schreiben. Ohne KI. Vielleicht deswegen).

Assembled ist das alles mit einem Online-Assembler (hier: 
https://www.asm80.com/onepage/asmz80.html).

von Günter K. (enk)


Lesenswert?

Axel S. schrieb:
> Ich habe z.B. z80dasm in meinem ~/bin (Linux).
Hallo Axel S.

Bitte, dann würde ich das mal gerne in Linux ausprobieren.
Kann man das in Windows 10 laden, und auf einen Stick oder SD-Karte 
legen?
(Oder unter Linux aufrufen.)

Doch ich sehe es schon kommen, ich muss mich erstmal, richtig in die 
einzelnen Befehle hineinknien muss, um das zu verstehen, was da abläuft.
Und das lehrt auch der Kurs von Christiani nicht gründlich genug.
Es ist die Art und Weise, - wie, man das Wissen beibringt. - .
(Ja, meiner Erinnerung nach, hat Christiani einen guten Namen also Ruf.)
Und es ist auch nicht schlecht.

Ich müsste einfach nur anfangen zu lernen, die einfachsten Strukturen
die sich zwischen Speicher und Prozessor ergeben, stattfinden zu lassen. 
Dann ist man schon wirklich sehr - damit beschäftigt. Ich glaube wohl,
dass ich es danach, besser verstehe.

Und es ist tatsächlich so, die vielen Bilder von einfachen Schaltungen,
sind im Grunde genommen nichts anderes als heute mit vielen Schaltungen.
Um das zu verstehen, hat es natürlich seine Grenzen.
Nur würde ich gerne "sehen" können, wie, was da schaltet.
D.h.: Man muss es sich vorstellen können; - und das geht.

Ich könnte mir auch vorstellen, dass es für die Uhr,
gute Ablauf-Diagramme gäbe. Und nur für die Uhr,
wäre man dann schon für einige Seiten beschäftigt.
Übrigens, die Uhr, ist aus dem Christiani-Lehrgang.

Ja, ich war auch schon mit einem Buch beschäftigt für den 8086.
Assembler Programmierung Studienausgabe, - nur sie Software
passt nicht zum Betriebssystem. Das wird natürlich geändert.
Danach, weiß ich dann auch mehr.
LG. Enk

von Günter K. (enk)


Lesenswert?

Axel sendete am 18.10.2024 00:25
Axel S. schrieb:
> Ich habe z.B. z80dasm in meinem ~/bin (Linux).
Morgen probiere ich das unter linux aus.

Hallo Leute,

gute Nacht bis morgen.

LG. Enk

von Roland F. (rhf)


Lesenswert?

Hallo,
Günter K. schrieb:
> Und das lehrt auch der Kurs von Christiani nicht gründlich genug.

Du brauchst keinen Kurs, du brauchst noch nicht mal einen Disassembler. 
Was du brauchst sind ein paar Blatt kariertes Papier, einen Bleistift, 
ein Radiergummi und das Z80-Buch von Rodnay Zaks. Da steht nämlich drin 
was jeder einzelne Befehl genau bewirkt und wie er im Arbeitsspeicher 
kodiert ist.

Und dann nimmst du den Assembler-Quellcode, führst jeden Befehl 'per 
Hand aus' und notierst dir nach jedem Befehl welche Speicherstellen und 
Prozessorregister welche Daten/Werte beinhalten.

Günter K. schrieb:
> ...die einfachsten Strukturen...

Was für Strukturen? Was meinst du damit?

Günter K. schrieb:
> Nur würde ich gerne "sehen" können, wie, was da schaltet.

Was würdest du gerne sehen? Wie die einzelnen Transistoren des 
Prozessors hin und her schalten? Oder wie sich nach jeden Befehl die 
Speicherinhalte ändern?

Günter K. schrieb:
> Ja, ich war auch schon mit einem Buch beschäftigt für den 8086.

Ich würde den 8086 für den Anfang nicht empfehlen.

rhf

von Falk B. (falk)


Lesenswert?

Günter K. schrieb:
> Hallo Marci W. Ja bitte, das wäre gut
> hast Du einen Disassembler für den Z80?

Sowas gibt es sogar online!

https://www.asm80.com/#

> Oder ist so etwas Computerabhängig?

NEIN! DOCH! OHHHHH!!! ;-)

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


Lesenswert?

Günter, ich habe den Eindruck, dass du zu viel gleichzeitig lernen 
willst. Oder wie man so schön sagt: Man tanzt auf zu vielen Hochzeiten 
gleichzeitig.

Wenn ich von deinen vielen Fragen mal die herauspicke die ich verstehe, 
scheinen sich die meisten auf den Befehlssatz der CPU und den 
Assembler/Disassembler zu beziehen. Dort scheint dein Haupt-Interesse zu 
liegen, also konzentriere dich darauf.

Lerne zuerst, welche Register die CPU hat und welchem Zweck sie dienen. 
Danach solltest du dich (wie bereits begonnen) schrittweise mit der 
Dokumentation des Befehlssatzes befassen. Welche Befehle gibt es, was 
ist die Quelle, was ist das Ziel, was macht die Operation damit?

Solange zu damit nicht fertig bist, solltest du dich am besten gar nicht 
mit dem Schaltplan beschäftigen. Der ist für das Verständnis der CPU und 
ihrer Programmierung fast vollkommen irrelevant. Natürlich ist die 
Schaltung nötig, damit die CPU überhaupt arbeitet, aber als 
Programmierer muss man sie nicht kennen.

So wie man als Autofahrer auch keine Ahnung davon haben muss, wie das 
Auto funktioniert. Man muss nur wissen, wie man das Auto richtig 
benutzt. Kenntnisse über die Hardware helfen natürlich schon, diverse 
Eigenschaften besser zu verstehen (z.B. warum kann ich nicht lenken, 
wenn die Hinterräder rutschen?). Aber das sind Spezialfälle mit denen 
man sich besser später befasst.

Ich kann auch nur dringend davon abraten, sich mit mehreren CPU 
Architekturen gleichzeitig zu befassen. Damit verwirrst du dich nur 
selbst. Sogar wenn du noch aktiv arbeiten würdest, wäre es nicht 
wichtig, viele CPU Architekturen zu kennen. Eine reicht erst mal. Danach 
(nicht gleichzeitig!) kann man sich schnell in andere einfinden.

In unser Gehirn passt viel rein, aber die Einfüllöffnung ist im sehr eng 
und hat eine lange Leitung. Druckbetankung funktioniert nicht.

Günter K. schrieb:
> Nur würde ich gerne "sehen" können, wie, was da schaltet.

Vergiss das. Da passiert so viel gleichzeitig und schnell nacheinander, 
das kann kein normaler Mensch durchblicken. Schau dir dieses winzige 
Beispiel für den 6502 an, dann siehst du was ich meine.
http://www.visual6502.org/JSSim/expert.html
1
  0xa9, 0x00,              // LDA #$00
2
  0x20, 0x10, 0x00,        // JSR $0010
3
  0x4c, 0x02, 0x00,        // JMP $0002
4
5
  0x00, 0x00, 0x00, 0x00,
6
  0x00, 0x00, 0x00, 0x40,
7
8
  0xe8,                    // INX
9
  0x88,                    // DEY
10
  0xe6, 0x0F,              // INC $0F
11
  0x38,                    // SEC
12
  0x69, 0x02,              // ADC #$02
13
  0x60                     // RTS
Das Programm hat nur 9 Befehle. Jeder Klick auf den Pfeil nach rechts 
entspricht einem einzigen Taktimpuls.

Ein Programmierer muss nicht wissen "was da schaltet", sondern wo die 
Eingaben her kommen, wo die Ausgaben hin gehen, und was die Befehle 
dazwischen bewirken. Wie das technisch umgesetzt ist (mit Mikrochips, 
klappernden Relais oder heißer Luft) soll dem Programmierer ziemlich 
egal sein. Die elektrischen Vorgänge werden erst bei der Peripherie 
relevant (Schalter, LEDs, serielle Schnittstellen, ...).

Nehmen wir mal an dir gelingt es, die internen Abläufe eines alten 
Mikroprozessors zu durchblicken. Was hast du davon? Wie viel davon 
kannst du wohl bei einem aktuellen Mikrocontroller gebrauchen, deren 
Innenschaltung stets geheim ist und aus 100 oder gar 1000 mal so vielen 
Transistoren besteht? Gar nichts! Aber wenn du programmieren gelernt 
hast, dann hast du etwas, dass du auch auf aktueller Hardware anwenden 
kannst. (Andere Architekturen haben zwar andere Befehle, aber sie 
funktionieren sehr ähnlich, so dass man sich da wie gesagt schnell 
einarbeiten kann).

Roland F. schrieb:
> Ich würde den 8086 für den Anfang nicht empfehlen.

Ich auch nicht. Zu komplex für den Anfang.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Günter K. schrieb:
> Axel S. schrieb:
>> Ich habe z.B. z80dasm in meinem ~/bin (Linux).

Korrektur:
1
~ $which z80dasm 
2
/usr/bin/z80dasm

Ach, das ist sogar ein System-Paket. Welches?
1
~ $dpkg -S /usr/bin/z80dasm
2
z80dasm: /usr/bin/z80dasm

Zeig mir Info zum Paket 'z80dasm'!
1
~ $dpkg -s z80dasm
2
Package: z80dasm
3
Status: install ok installed
4
Priority: optional
5
Section: devel
6
Installed-Size: 85
7
Maintainer: Tomaž Šolc <tomaz.solc@tablix.org>
8
Architecture: amd64
9
Version: 1.1.3-1
10
Depends: libc6 (>= 2.7)
11
Suggests: z80asm
12
Description: disassembler for the Zilog Z80 microprocessor
13
 The Z80 microprocessor is used in some 1980s home microcomputers, such as the
14
 Sinclair ZX80, ZX81, Spectrum, Galaksija and in several newer devices, such
15
 as graphical calculators from Texas Instruments and the original GameBoy.
16
 .
17
 This disassembler is useful for reverse engineering programs and operating
18
 systems written for such devices. It produces assembly source code from binary
19
 ROM images and tries to guess locations of labels and symbols. Its output can
20
 be directly converted back to binary with a Z80 assembler, such as z80asm.
21
Homepage: http://www.tablix.org/~avian/blog/articles/z80dasm/

> Bitte, dann würde ich das mal gerne in Linux ausprobieren.

Dann schau mal, ob es für dein Linux das Paket 'z80dasm' gibt.

von Günter K. (enk)


Lesenswert?

Roland F. schrieb:
> Günter K. schrieb:
>> Nur würde ich gerne "sehen" können, wie, was da schaltet.
>
> Was würdest du gerne sehen? Wie die einzelnen Transistoren des
> Prozessors hin und her schalten? Oder wie sich nach jeden Befehl die
> Speicherinhalte ändern?
Ja, beides, auch wie der Akkumulator und die ALU angesprochen werden.
Ob Teile vom BIT-Muster vom Byte auf die Leitungseingänge wirken, 
natürlich auch, wie sich nach jeden Befehl die Speicherinhalte geändert 
haben, zB. der Stack und das Statusregister mit seinen Flags. In dem 
Buch von Christiani sehe ich die im µP nicht. Und in dem Buch von Zaks 
sind mehrere
Obj-Code angegeben, ich brauch doch nur einen pro Befehl.
>
> Günter K. schrieb:
>> Ja, ich war auch schon mit einem Buch beschäftigt für den 8086.
>
> Ich würde den 8086 für den Anfang nicht empfehlen.
Ja.
>
> rhf

Hallo Roland F.
Du hast sehr gut geantwortet. Ja, Sherlock Du auch,
und habe Eure wirklich gut gemeinten Worte verstanden,
und bin darüber erfreut.

Nun, ja, das Buch zum 8086 war bzw. ist schon sehr Verheißungsvoll,
und es beginnt damit, ein Zeichen auf den Bildschirm zu bringen.
Leider habe ich nicht das Betriebsystem dazu;
das gleiche für GW-BASIC und DOS:

Wolfgang Link (Passender Name zum Assembler :-)   )
Zum Buch liegt eine CD und da sind fertige Programme drauf.
Professional Assembler Programmierung
Studienausgabe Ungekürzte Originalausgabe
(...  Der Deutschen National-Bibliothek ... http://dnb.ddb.de abrufbar.)
(C) 2004 Franzis Verlag GmbH, 85586 Poing   ...DTP-Satz A. Kugge München
ISBN 3-7723-7014-4

Aber erst mal zurück zum Z80; - denn man möchte ja erstmal,
seine eigenen Erfolge sehen.

Und richtig, heute Morgen nach dem Aufstehen dachte ich noch:
"Man müsste erst mal Ablauf-Diagramme Zeichnen.)
Kann der Computer das nicht auch schneller?
Gibt es Computer-Programme zum Zeichnen von Ablauf-Diagramme?

Zurück zum Buch: Programmierung des Z80 von RODNAY ZAKS
Leider ist dessen Leimung sehr alt und die Blätter lösen sich.
Und irgendwo las ich einen Hinweis auf ein anderes Buch von ihm,
dem Prozessor selber betreffend. Ich finde es nicht mehr, will
aber jetzt weitermachen.
LG enk

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


Angehängte Dateien:

Lesenswert?

Wenn ich mich zurück erinnere, was das früher für ein Krampf war mit den 
Assemblieren (schon Editieren) größerer Files, dann wird mir wieder 
bewußt wie schön und einfach die Welt mit den modernen Computern ist.

Hier mal ein Beispiel, wie man mit zmac (Z80 Assembler) und z80dasm 
(Z80 Disassembler) umgeht.

Das Workdir enthält nur einen Assembler-Quelltext. Drin steckt eine 
kleine Routine zum schnellen Löschen eines Text-Framebuffers mit 25 
Zeilen zu je 40 Zeichen an Adresse 0xE000 (so war das auf dem 
https://de.wikipedia.org/wiki/Z9001).
1
~/Work/zmac $ls
2
clrscr.z
3
4
~/Work/zmac $cat clrscr.z 
5
scrpos  EQU 0E000h      ;start of screen buffer
6
scrlen  EQU 40*25       ;screen dimensions
7
8
        org 1000h
9
10
;fast clear screen
11
12
clrscr: push bc         ;save registers
13
        push de
14
        push hl
15
16
        ld hl,scrpos
17
        ld d,h
18
        ld e,l
19
        inc de          ;DE = scrpos + 1
20
        ld bc,scrlen-1
21
        ld (hl),' '
22
        ldir
23
24
        pop hl          ;restore registers
25
        pop de
26
        pop bc
27
28
        ret

Wir assemblieren das File; dabei entstehen ein Listing und defaultmäßig 
ein Binärfile mit dem erzeugten Code:
1
~/Work/zmac $zmac clrscr.z 
2
(kein Output - no news are good news)
3
4
~/Work/zmac $ls
5
clrscr.bin  clrscr.lst  clrscr.z
6
7
~/Work/zmac $hd clrscr.bin 
8
00000000  c5 d5 e5 21 00 e0 54 5d  13 01 e7 03 36 20 ed b0  |...!..T]....6 ..|
9
00000010  e1 d1 c1 c9                                       |....|
10
00000014

Das Listing zeige ich jetzt mal nicht, das kannst du dir selber ansehen 
:)

Wir verwenden jetzt z80dasm um das Binärfile zu disassemblieren. Da 
ein Binärfile keine Startadresse enthält, müssen wir die Startadresse 
mit "-g 0x1000" angeben.
1
~/Work/zmac $z80dasm -g 0x1000 clrscr.bin
2
; z80dasm 1.1.3
3
; command line: z80dasm -g 0x1000 clrscr.bin
4
5
        org     01000h
6
7
        push bc
8
        push de
9
        push hl
10
        ld hl,0e000h
11
        ld d,h
12
        ld e,l
13
        inc de
14
        ld bc,003e7h
15
        ld (hl),020h
16
        ldir
17
        pop hl
18
        pop de
19
        pop bc
20
        ret
21
Warning: Code might not be 8080 compatible!

Und - voila! - hier ist unser Code wieder. Labels und symbolische 
Konstanten fehlen natürlich. Aber im Prinzip können wir den Code so wie 
er ist wieder durch zmac jagen und erhalten das gleiche Binärfile:
1
~/Work/zmac $z80dasm -g 0x1000 -o test.z clrscr.bin 
2
Warning: Code might not be 8080 compatible!
3
4
~/Work/zmac $zmac test.z 
5
6
~/Work/zmac $hd clrscr.bin 
7
00000000  c5 d5 e5 21 00 e0 54 5d  13 01 e7 03 36 20 ed b0  |...!..T]....6 ..|
8
00000010  e1 d1 c1 c9                                       |....|
9
00000014
10
~/Work/zmac $hd test.bin 
11
00000000  c5 d5 e5 21 00 e0 54 5d  13 01 e7 03 36 20 ed b0  |...!..T]....6 ..|
12
00000010  e1 d1 c1 c9                                       |....|
13
00000014

Zumindest zmac scheint nicht als Paket verfügbar zu sein. Ich hänge die 
Quellen zu zmac und z80dasm mal an.

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Nun, ja, das Buch zum 8086 war bzw. ist schon sehr Verheißungsvoll,
> und es beginnt damit, ein Zeichen auf den Bildschirm zu bringen.
> Leider habe ich nicht das Betriebsystem dazu;
> das gleiche für GW-BASIC und DOS:

Deshalb nochmal mein Tipp: Arbeite mit einer vereinfachten Architektur 
für die es einen Simulator gibt.

Z.B. : https://unterrichten.zum.de/wiki/Johnny-Simulator

Oder: http://www.viktorianer.de/info/mops.html

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Also ehrlich, meine innere Stimme sagt, daß der "Günter" entweder ein 
wild gewordener Chat-GPT Bot ist oder ein schon deutlich verwirrter, 
alter Mann, der tonnenweise Fachbegriffe raushaut, ohne aber sich auf 
was konzentrieren zu können oder wollen.

von Cyblord -. (cyblord)


Lesenswert?

Falk B. schrieb:
> Also ehrlich, meine innere Stimme sagt, daß der "Günter" entweder ein
> wild gewordener Chat-GPT Bot ist oder ein schon deutlich verwirrter,
> alter Mann, der tonnenweise Fachbegriffe raushaut, ohne aber sich auf
> was konzentrieren zu können oder wollen.

Das ist richtig. Und dann kommt dazu dass plötzlich jeder C64-Opa hier 
meint, jetzt sei die Stunde irgendwelchen Kruden Details oder Anekdoten 
zu Assembler rauszuhauen. Wie hilft das dem TE?

Vielleicht sollte der TE auch nochmal klarstellen was genau sein 
(Lern)Ziel ist.

Rechnerarchitektur vom Transistor bis zu hochoptimierten Architekturen 
wird an Hochschulen meist in 2 Semestern gelehrt. Dazu gibt es sicher 
auch genügend Online-Skripte. Dazu die Standardbücher welche Grundlage 
solcher Vorlesungen sind.

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


Lesenswert?

Günter K. schrieb:
> Nun, ja, das Buch zum 8086 war bzw. ist schon sehr Verheißungsvoll,
> und es beginnt damit, ein Zeichen auf den Bildschirm zu bringen.
> Leider habe ich nicht das Betriebsystem dazu;
Hier ist es, dein neues Betreibsystem: https://www.menuetos.net/

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


Lesenswert?

Günter K. schrieb:
> Gibt es Computer-Programme zum Zeichnen von Ablauf-Diagramme?
https://www.websequencediagrams.com/app

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


Lesenswert?

Falk B. schrieb:
> Also ehrlich, meine innere Stimme sagt, daß der "Günter" entweder ein
> wild gewordener Chat-GPT Bot ist oder ein schon deutlich verwirrter,
> alter Mann, der tonnenweise Fachbegriffe raushaut, ohne aber sich auf
> was konzentrieren zu können oder wollen.

Ich denke da irrst du dich. Ich kann mit ihm 100% mitfühlen, denn als 
ich vor 30 Jahren in der Ausbildung war, wollte ich Computer ebenso 
detailliert verstehen, wie er. Ich wollte immer zu viel gleichzeitig 
erforschen, habe mir dabei selbst im Weg gestanden.

Ich hatte allerdings einen guten Ausbilder, der meinen Fokus auf die 
Sachen gerichtet hat, die ich zum jeweiligen Zeitpunkt begreifen konnte.

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


Lesenswert?

Axel S. schrieb:
> Dann schau mal, ob es für dein Linux das Paket 'z80dasm' gibt.

Ja, das werde ich machen.

Ich wollte es für die "Tik Tak Uhr" von Christiani einsetzen.
Es ist aber richtig, was die anderen Kollegen sagen,
Ich muss erstmal näher zu den Befehlen.
Also die Zahlen und das Rechnen kenne ich, auch die 
Komplementärsubstaktion.
Der Sinn der Offset-Speicherung schon weniger, aber ich gehe davon aus, 
dass
es funktioniert. Na ja, dann ist es gut so.
Und das hexadezimale Zahlensystem ist sowieso das Bessere.
Befehle: Rollen und Schieben ist auch klar.
Lade-Befehl: LD Ziel, Quelle ist auch ok. (Auch wenns verdreht ist.) OK.
Zum Laden von Regiserinhalten steht auch die indizierte Adressierung zur 
Verfügung. - Ja, damit das was irgendwo steht geladen werden kann, ist 
auch zu verstehen. - Weiter lesen abwarten.
LG. Enk

von Günter K. (enk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Günter K. schrieb:
>> Gibt es Computer-Programme zum Zeichnen von Ablauf-Diagramme?
> https://www.websequencediagrams.com/app

DANKESCHÖN!
LG. Enk.

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


Lesenswert?

Günter K. schrieb:
> Und das hexadezimale Zahlensystem ist sowieso das Bessere.
Verstehe ich nicht!
Für mich ist das Hex Dingen nur eine von vielen möglichen 
Repräsentationen/Darstellungen von Daten.

von Günter K. (enk)


Lesenswert?

Arduino F. schrieb:
> Günter K. schrieb:
>> Und das hexadezimale Zahlensystem ist sowieso das Bessere.
> Verstehe ich nicht!
> Für mich ist das Hex Dingen nur eine von vielen möglichen
> Repräsentationen/Darstellungen von Daten.

Na ja, beim Hexadezimalen macht beim Addieren, bei jedem Bit
einen Überlauf (Wenn es dran ist, d.h. 1+1).
Im BCD-Code muss man aber bei der 9+1, 6 hinzuzählen um 10 zu erhalten.
Sehr umständlich. Da werden knapp 30% "verschenkt".
Zum Glück, passen diese Zeichen in den 7-Segment-Code.
LG. Enk

von (prx) A. K. (prx)


Lesenswert?

Arduino F. schrieb:
> Günter K. schrieb:
>> Und das hexadezimale Zahlensystem ist sowieso das Bessere.
> Verstehe ich nicht!
> Für mich ist das Hex Dingen nur eine von vielen möglichen
> Repräsentationen/Darstellungen von Daten.

Und wenn man die Opcodes von 8080/Z80 studiert, ist man Oktal oft besser 
bedient als Hexadezimal. Auch die Codierung von PDP11 und 68000 zeigte 
das.

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Günter K. schrieb:
> Und das hexadezimale Zahlensystem ist sowieso das Bessere.

Aber doch hoffentlich nur unter besonderer Beruecksichtigung der hier 
vorgeschlagenen Schreibweisen/Anzeigemoeglichkeiten:
Beitrag "Vorschlag zu Hex-Ziffern auf 7-Segment-Anzeigen"

Sherlock 🕵🏽‍♂️ schrieb:
> Falk B. schrieb:
>> Also ehrlich, meine innere Stimme sagt, daß der "Günter" entweder ein
>> wild gewordener Chat-GPT Bot ist oder ein schon deutlich verwirrter,
>> alter Mann, der tonnenweise Fachbegriffe raushaut, ohne aber sich auf
>> was konzentrieren zu können oder wollen.
>
> Ich denke da irrst du dich. Ich kann mit ihm 100% mitfühlen, denn als
> ich vor 30 Jahren in der Ausbildung war, wollte ich Computer ebenso
> detailliert verstehen, wie er. Ich wollte immer zu viel gleichzeitig
> erforschen, habe mir dabei selbst im Weg gestanden.

Vielleicht bist du ja auch ein wild gewordener Chat-GPT Bot und weisst 
es nur nicht?

scnr,
WK

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Na ja, beim Hexadezimalen macht beim Addieren, bei jedem Bit
> einen Überlauf (Wenn es dran ist, d.h. 1+1).
> Im BCD-Code muss man aber bei der 9+1, 6 hinzuzählen um 10 zu erhalten.
> Sehr umständlich. Da werden knapp 30% "verschenkt".
> Zum Glück, passen diese Zeichen in den 7-Segment-Code.

Auch wieder eine super zielführende Diskussion jetzt.

von Günter K. (enk)


Lesenswert?

(prx) A. K. schrieb:
>> Günter K. schrieb:
>>> Und das hexadezimale Zahlensystem ist sowieso das Bessere.
>> Verstehe ich nicht!
>> Für mich ist das Hex Dingen nur eine von vielen möglichen
>> Repräsentationen/Darstellungen von Daten.
>
> Und wenn man die Opcodes von 8080/Z80 studiert, ist man Oktal oft besser
> bedient als Hexadezimal. Auch die Codierung von PDP11 und 68000 zeigte
> das.

Ja, auch interssant.
Und die Kinder bräuchten das 1x1 nur bis 64 lernen. :-))
Der Nachteil, die Ziffernketten bei den Zahlen würden viel länger.
LG. Enk

von (prx) A. K. (prx)


Lesenswert?

Günter K. schrieb:
> Und die Kinder bräuchten das 1x1 nur bis 64 lernen. :-))
> Der Nachteil, die Ziffernketten bei den Zahlen würden viel länger.

Da die 8080 keine relative Sprünge kennt, kann man darin vergleichsweise 
einfach direkt in Oktal programmieren, wenn einem Assembler zu abstrakt 
ist. Bei 6502 und Z80 geht das nicht so einfach.

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


Lesenswert?

Dergute W. schrieb:
> Vielleicht bist du ja auch ein wild gewordener Chat-GPT Bot und weisst
> es nur nicht?

Dessen bin ich mir nicht bewusst, darüber muss ich nachdenken....
Habe die Antwort gefunden: Ich denke, als bin ich

von Günter K. (enk)


Lesenswert?

Arduino F. schrieb:
> Günter K. schrieb:
>> Nun, ja, das Buch zum 8086 war bzw. ist schon sehr Verheißungsvoll,
>> und es beginnt damit, ein Zeichen auf den Bildschirm zu bringen.
>> Leider habe ich nicht das Betriebsystem dazu;
> Hier ist es, dein neues Betreibsystem: https://www.menuetos.net/

Lustig! Ich nehme an es an es ist ein Scherz. :-))

Die Programme zu diesem Buch werden zwar geladen,
laufen aber nicht, weil das Windows-Betriebsystem zu hoch ist.
Vermutlich unter DOS. Das kann WINDOS 10 nicht mehr.

Und wenn durch das Assembler (Also nicht der eigentliche selbst s.u.)
Ein Zeichen auf den Bildschirm gebracht werden soll,
dann darf an dieser Stelle auf dem Bildschirm nichts anders stehen.

Doch auch sich das nur vorzustellen.
Ist da die Rede von "Direktiven" (Anweisungen an den Assembler).
Inzwischen ist mir klar.
Die Assemblerliste alleine kann gar nicht assemblieren,
denn es braucht ja noch ein Programm das Assembliert,
also den eigentlichen *Assembler.
Eigentlich müsste das *Assemblerprogamm müsst vor der Assemblerliste 
gehängt werden, damit man sich vorstellen kann, wie der *Assembler 
Assembliert hat,
und könnte mir ebenso vorstellen, dass dieser Assembler Fehler findet.
LG. Enk

von Falk B. (falk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Ich denke da irrst du dich. Ich kann mit ihm 100% mitfühlen, denn als
> ich vor 30 Jahren in der Ausbildung war,

Er ist nach eigenen Angaben 80!

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

> Ich hatte allerdings einen guten Ausbilder, der meinen Fokus auf die
> Sachen gerichtet hat, die ich zum jeweiligen Zeitpunkt begreifen konnte.

Ob das das Forum mit seinen vielen (Borg)stimmen leisten kann? Ob das 
sinnvoll ist?

von Falk B. (falk)


Lesenswert?

Arduino F. schrieb:
>> Und das hexadezimale Zahlensystem ist sowieso das Bessere.
> Verstehe ich nicht!
> Für mich ist das Hex Dingen nur eine von vielen möglichen
> Repräsentationen/Darstellungen von Daten.

Bome in the air, everywhere I look around . . .
Hex in the air, every second every sound . . .

;-)

von Falk B. (falk)


Lesenswert?

(prx) A. K. schrieb:
> Und wenn man die Opcodes von 8080/Z80 studiert, ist man Oktal oft besser
> bedient als Hexadezimal. Auch die Codierung von PDP11 und 68000 zeigte
> das.

Bitte jetzt noch die Verbindung zur babylonischen Keilschrift 
herstellen!
;-)

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


Lesenswert?

Falk B. schrieb:
> Er ist nach eigenen Angaben 80!

Tempus fugit!

von Falk B. (falk)


Lesenswert?

Dergute W. schrieb:
> Vielleicht bist du ja auch ein wild gewordener Chat-GPT Bot und weisst
> es nur nicht?

Ich trolle, also bin ich! (Frei nach Descartes) ;-)

von Günter K. (enk)


Lesenswert?

(prx) A. K. schrieb:
> Günter K. schrieb:
>> Und die Kinder bräuchten das 1x1 nur bis 64 lernen. :-))
>> Der Nachteil, die Ziffernketten bei den Zahlen würden viel länger.
>
> Da die 8080 keine relative Sprünge kennt, kann man darin vergleichsweise
> einfach direkt in Oktal programmieren, wenn einem Assembler zu abstrakt
> ist. Bei 6502 und Z80 geht das nicht so einfach.

Interssant, bin mal gespannt was da noch kommt.
Ja gerade Assembler ist mir am wenigsten abstrakt.

LG. Enk

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


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Falk B. schrieb:
>> Er ist nach eigenen Angaben 80! :-))

79 im 80. :-))
LG. Enk

von Falk B. (falk)


Lesenswert?

Günter K. schrieb:
> 79 im 80. :-))
> LG. Enk

Na solange es nicht 0x79 sind, ist noch alles OK! ;-)

von Carsten P. (r2pi)


Lesenswert?

Günter K. schrieb:Dann werde ich ja
> bald loslegen können.

Wenn du es wirklich wirklich wirklich lernen willst, hier ein Tipp:

https://de.wikipedia.org/wiki/Know-how-Computer

Der ist afaik open-source. Ansonsten hätte ich noch auf Lager:

https://falstad.com/circuit/circuitjs.html

Da kannst du dich online mit digitalen Verknüpfungen austoben. Zum 
tieferen Verständnis hilft hier auch

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

Wie z.B. ein Volladdierer funktioniert, findet man auch dort:

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

Wenn du das verstanden hast, kannst dich an

https://de.wikipedia.org/wiki/Arithmetisch-logische_Einheit

wagen. Und dann wieder zurück zum Know-How-Computer. Dann bestellst du 
dir mal ein paar Breadboards und Logik-Bausteine vom Typ 74xx00P und für 
jeden einen 10nF-Kondensator, ein 5-Volt-Netzteil, ein paar Jumperkabel, 
ein paar 1k-Widerstände, ein paar rote LEDs und ein paar Taster, und 
schon ist es elektronisch. Die ersten "CPUs" waren genauso aufgebaut.

Wenn du dann irgendwann bereit bist fürs "echte Leben", hast du schonmal 
eine Spannungsversorgung, Breadboards und Jumperkabel. Und dann kaufst 
du dir einen µC, also so einen super winzigen Chip, zum Lernen ohne 
Tamtam auf einem Breakout-Board wie diesem hier:

https://www.az-delivery.de/products/digispark-board?variant=27602549577

Zum Chip findest du hier ein paar Informationen drumherum:

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

Der Unterschied zwischen Maschinensprache und Assembler ist so gut wie 
keiner, außer dass viele Assembler Makros unterstützen. Zum Beispiel 
gibt es in Assembler (egal für welchen Proz) keine Schleifen, sondern 
nur Sprunganweisungen. Assembler und Maschinencode sind (wie gesagt, bis 
auf Makros) 1:1. Assembler unterscheiden sich nur in der Schreibweise 
und sind architektur-abhängig. Bei manchen Prozessoren heißt ein 
unbedingter Sprungbefehl JP, beim nächsten JMP, beim nächsten JUMP. Das 
ist so, wie ein Apfel auf Englisch Apple und auf Spanisch Manzana heißt, 
aber immer noch ein malus domestica ist.

Und weil Assembler so architektur-abhängig sind, hat man 
Programmiersprachen erfunden, etwa die Sprache "C" 
(https://de.wikipedia.org/wiki/C_(Programmiersprache)). Die meisten 
C-Compiler beherrschen die Fähigkeit, auch Assemblercode zu verstehen.

Modernere Programmiersprachen wie etwa Python, Java, C# etc sind dazu 
da, Probleme abstrakter lösen zu können, am besten so, dass sie eben 
nicht nur auf einem speziellen µP lösbar sind, sondern auf egal welchen. 
Hierzu gibt es dann so genannte "Runtimes", die dies ermöglichen.

Software-Entwicklung heutzutage geht eben nicht mehr so: "Ich möchte, 
dass der Pin 2 vom µC xyz auf 5V geht", sondern so: "Ich möchte, dass 
das Licht hier im Raum je nach Uhrzeit mit kälterer oder wärmerer 
Lichttemperatur an geht, und mein Lieblingssong soll auch gespielt 
werden!"

So gesehen ist das Verstehen von Bauteilen, vom Widerstand bis zu einer 
GPU, wichtig, eine Grundlage. Darum bin ich ja auch hier, weil ich so 
viele analoge Bauelemente eher anschaue wie "Hä? Wer bist du denn, und 
was machst du da??" ^-^

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Günter K. (enk)
> Es stehen aber auch fragen an, wie der Assembler funktioniert.

Günter, kennst du ChatGPT? Das könnte dir bei vielen deiner Fragen 
helfen:

https://chatgpt.com/

Tippe dort mal folgendes ein (oder kopiere den Satz):
1
Z80 assembler: schreibe ein programm, welches von 0 bis 10 zählt

von (prx) A. K. (prx)


Lesenswert?

Günter K. schrieb:
> Interssant, bin mal gespannt was da noch kommt.
> Ja gerade Assembler ist mir am wenigsten abstrakt.

Assembler ist eine Abstraktionsebene von direktem Code.

8080/Z80 Move in Oktal: 1xy = von y nach x
x,y: 0=B,1=C,2=D,3=E,4=H,5=L,6=(HL),7=A
121: Move von C nach D.
166: (HL)=>(HL) ist statt dessen HLT

: Bearbeitet durch User
Beitrag #7757220 wurde vom Autor gelöscht.
von Thomas W. (Gast)


Lesenswert?

Christoph M. schrieb:
> Günter K. (enk)
>> Es stehen aber auch fragen an, wie der Assembler funktioniert.
>
> Günter, kennst du ChatGPT? Das könnte dir bei vielen deiner Fragen
> helfen:
>
1
> Z80 assembler: schreibe ein programm, welches von 0 bis 10 zählt
2
>

Es funktioniert erstaunlich gut:
1
        ORG 0x0000       ; Anfang der Programmadresse
2
        LD A, 0          ; Lade den Zähler mit 0 (Startwert)
3
        
4
LOOP:   CP 11            ; Vergleiche A mit 11 (Zielwert)
5
        JP Z, END        ; Wenn A = 11, springe zum Ende des Programms
6
        
7
        ; Hier könntest du eine Ausgabe einfügen, falls nötig, z.B.:
8
        ; OUT (PORT), A   ; Ausgabe des Zählers auf einen Port (optional)
9
        
10
        INC A            ; Erhöhe A um 1
11
        JP LOOP          ; Springe zurück zur Schleife
12
        
13
END:    NOP              ; Ende des Programms (oder hier weitermachen)
14
        HALT             ; Halte die CPU an (typisch für das Ende eines Programms)

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


Lesenswert?

Günter K. schrieb:
>> Hier ist es, dein neues Betreibsystem: https://www.menuetos.net/
>
> Lustig! Ich nehme an es an es ist ein Scherz. :-))

Eigentlich nicht.

von Carsten P. (r2pi)


Lesenswert?

Arduino F. schrieb:
> Hier ist es, dein neues Betreibsystem: https://www.menuetos.net/
>>
>> Lustig! Ich nehme an es an es ist ein Scherz. :-))
>
> Eigentlich nicht.

Doch, das ist ein Scherz. Mit einem modernen OS hat das sicher nichts zu 
tun. Es liest sich wie von einem alten Herrn, der Class D-Verstärker für 
Teufelszeug hält und nachts mit einer Röhre kuschelt.

: Bearbeitet durch User
von Marci W. (marci_w)


Lesenswert?

Hallo Carsten,

oh, da hast Du Dir ja wirklich große Mühe gegeben, dem Günter (und 
vermutlich nicht nur dem) den Weg und die entsprechenden Ressourcen zu 
zeigen. Klasse!

Nur ein klitzekleiner Punkt:

Carsten P. schrieb:
> Software-Entwicklung heutzutage geht eben nicht mehr so: "Ich möchte,
> dass der Pin 2 vom µC xyz auf 5V geht", sondern so: ...

Na ja, aber man fängt doch auch heute noch mit helloWorld bzw. 
Blinklicht an. ;-)

ciao

Marci

: Bearbeitet durch User
von Roland F. (rhf)


Lesenswert?

Hallo,
Günter K. schrieb:
> Aber erst mal zurück zum Z80; - denn man möchte ja erstmal,
> seine eigenen Erfolge sehen.

Wie gesagt Papier, Bleistift, Radiergummi besorgen und dann Kapitel für 
Kapitel im Z80-Buch durcharbeiten.

Oder du besorgst dir einen Z80-Simulator (z.B. 
https://www.heinpragt-software.com/z80-processor-ide/). Das hat den 
Vorteil, das du dir direkt ansehen kannst was du da so programmiert 
hast. Und konzentriere dich für den Anfang auf das Assemblerprogramm, 
welcher Hex-Code daraus letztlich vom Assembler erzeugt wird ist erstmal 
unwichtig.

rhf

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Carsten P. schrieb:
> https://de.wikipedia.org/wiki/Microchip_AVR
>
> Der Unterschied zwischen Maschinensprache und Assembler ist so gut wie
> keiner, außer dass viele Assembler Makros unterstützen.

So ein Käse! Maschinensprache sind reine (HEX)zahlen! Assembler sind 
menschenlesbare Befehle, wenn gleich meist abgekürzte, englische Worte.
Auch wenn Assembler praktisch 1:1 in Maschinensprache übersetzt wird, 
liegen Welten dazwischen. Auch eben weil das Programm "Assembler" viele 
nützliche bzw. notwendige Hilfskonstruktionen bereitstellt, sei es zur 
Definition von Variablen oder diverse Assemblerdirektiven!

Siehe Anhang!

von Günter K. (enk)


Lesenswert?

Arduino F. schrieb:
> Günter K. schrieb:
>>> Hier ist es, dein neues Betriebsystem: https://www.menuetos.net/
>>
>> Lustig! Ich nehme an es an es ist ein Scherz. :-))
>
> Eigentlich nicht

Ok,meine Antwort war in der 5. Zeile. ">> Lustig! ... "
Ich hatte es nur flüchtig überflogen.
Und eben gründlich durchgelesen. - Tatsächlich wäre das, wirklich zuviel 
für mich.

Allerdings finde ich es von Vorteil, dann bei mehreren Prozessoren
wenn andere Prozessoren etwas tun, wenn man dadurch, - andere Programme, 
evtl. einfacher zu gestalten kann.

Allerdings bin ich ja noch nicht am Anfang angekommen.
Ich weiß zwar schon einiges, ist aber lange noch nicht ausreichend.
LG Enk.

PS.:
Jetzt lese ich erst mal die nächsten Beiträge durch,
und dann möchte ich noch auf einen, den mit dem Progrämmle
vom Manual eingehen. Ich kann zwar kein Englisch oder nur sehr schlecht;
das werde ich (vielleicht) - irgendwie auch noch hinkriegen.

: Bearbeitet durch User
von Rbx (rcx)


Lesenswert?

Günter K. schrieb:
> Aber auch einen passenden Emulator der CPU auf einen anderen Computer.
> Interessant wäre noch, wie der Akkumulator von innen arbeitet; - alles
> in der CPU sollte sichtbar sein.

Jasmin ist auch sehr schön:
https://github.com/TUM-LRR/Jasmin

Auch der Intel 4004 ist ein schönes Studierprojekt.

Auch die Computergeschichte hilft weiter.

Assembler sind einfach nur Merkwörter für Opcodes. Beim Intel ist auch 
toll, wenn die Jump-Befehle (Hexcodes)  7B(Jump if Lower) oder 7E (Jump 
bei Gleichheit) oder 7A (Jump wenn drüber) oder 7C (Jump bei 0 oder "JL" 
oder wie auch immer) usw. heißen.
Ein Sprung ist einfach, Schritte im Programmcounter nach vorne zu 
überspringen, oder eben rückwärts ein oder mehrere Schritte 
zurückspringen

Assemblerdirektiven sind einfach eine Formatregelung, die kann man 
vergleichen mit: auf welchen Papier man schreiben soll. A5, A4, 
Schönschrift, Gedruckt usw.
Nur eben bezogen auf eine voreingestellte Programmstruktur.

Intern werden fertige (geschriebene) Programme in einen flüchtigen 
Speicher geschrieben bzw. dahinein übersetzt, und dann werden die 
schrittweise mit einem internen Programmzähler abgearbeitet.
Interrupt-Listen beim 8086 sind einfach nur Links zu einem komplexeren 
Unterprogramm, teilweise zu Treibern, oder zu grundlegenden oder 
wichtigen Betriebssystemfunktionen.

Man kann sich das in etwa so vorstellen: Jemand hat ein ganzes großes 
Hochhaus für sich alleine, und fängt von unten an, sich eine Etage höher 
zu arbeiten. Auf Jeder Etage werden die Lichter für die Fenster nach 
draußen individuell eingestellt.
Was man dann sehen kann, sind verschiedene Lichtbilder am Hochhaus. Sehr 
viel anders als die echten Schaltungen in den Schaltkreisen sind die 
auch nicht. Und eine große Hilfe diesbezüglich sind auch (binäre) 
Wertetabellen.

Wie man mit wenig Code oder mit viel Know How aus ein Programm, das viel 
aus dem Compi herausholt, kann man bei der Demoscene lernen:
https://www.pouet.net
(https://www.youtube.com/watch?v=gJhVjIhsMBI)

Einen 6502 Emulator habe, ne hatte ich mal auf dem Handy - (in Java 
geschrieben) - würde aber nicht sagen, dass das so für sich so toll ist. 
Bringt irgendwie nicht viel, wenn man die Originalzeiten, und Hardware, 
Zeitschriften usw. nicht um sich hat.
Ein C64-Konsole (auf dem Handy) ist so für sich auch nicht unbedingt so 
der Bringer.

Man versteht das ganze auch viel besser, wenn man vorher schon mal ein 
paar komplexere Platinen hergestellt oder verlötet hatte.

Darüberhinaus hilft es auch noch, den Unterschied zwischen Analoger 
Technik, und der Digitaltechnik im Hinterkopf zu haben.
(z.B. 
https://www.bonedo.de/artikel/ssm-curtis-chips-kurzgeschichte-ueber-den-sound-der-80er-jahre/)

von Günter K. (enk)


Lesenswert?

Thomas W. schrieb:
> Christoph M. schrieb:
>> Günter K. (enk)
Hallo Thomas W.
ist das das Progrämle aus dem MP-1?

>       18.10.2024 17:38
Hallo Thomas W.
ist das das Progrämle aus dem MP-1?
Ich werde langsam Müde,
bei der Beantwortng einiger Beiträge habe ich mich verhäddert.
Danke Euch allen, ich melde mich wieder; - da sind aber noch
wirklich gute Ratschläge von Euch, die ich wirklich noch
bearbeiten möchte - DANKESCHÖN


formerror_too_many_quoted_lines

von Günter K. (enk)


Lesenswert?

Roland F. schrieb:
> allo,
> Günter K. schrieb:
>> Aber erst mal zurück zum Z80; - denn man möchte ja erstmal,
>> seine eigenen Erfolge sehen.
>
> Wie gesagt Papier, Bleistift, Radiergummi besorgen und dann Kapitel für
> Kapitel im Z80-Buch durcharbeiten.
... usw.

Nochmal, vielen Dank Euch allen,
ich hatte mich schon bei der Beantwortung der Fragen verheddert.
Erstmal gute Nacht, morgen habe ich viel Hausarbeit.
Ich melde mich wieder.
VIELEN DANK auch für die VIELEN GUTEN RATSCHLÄGE!
Es sind wirklich gute neue interssante Sachen dabei!

Gute Nacht.

von Jobst M. (jobstens-de)


Lesenswert?

Günter K. schrieb:
> vielleicht sogar mit 64 Bit.

Zum lernen völlig ungeeignet.


Monk schrieb:
>> 6502, Z80 oder ein 8086
>
> Wo bekommst du die her?

Ich könnte einige liefern.

Derzeit bin ich hin und hergerissen, ob ich ein System mit 68000 
aufbaue. Tatsächlich habe ich aber keine wirkliche Verwendung dafür. 
Aber wollen würd' ich schon gerne.
Allerdings gibt es dort kein X,Y,A ...

Ansonsten könnte ich mir für den TO auch ein 8032 -mit externem ROM und 
RAM- vorstellen. Damit kann man sowohl von-Neumann-Architektur, als auch 
Harvard-Architektur, sogar gemischt oder umschaltbar, betreiben.
Vorteil: Timer und UART sind schon an Board.

Gruß

von Christoph M. (mchris)


Lesenswert?

Was auch helfen kann, ist sich Lernvideos auf Youtube anzuschauen.
Hier ist eines:
https://www.youtube.com/watch?v=_J4ahkWtNYw
In Deutsch scheint es allerdings weniger Videos zu geben.

von Thomas W. (Gast)


Lesenswert?

Jobst M. schrieb:

> Derzeit bin ich hin und hergerissen, ob ich ein System mit 68000
> aufbaue. Tatsächlich habe ich aber keine wirkliche Verwendung dafür.
> Aber wollen würd' ich schon gerne.
> Allerdings gibt es dort kein X,Y,A ...

Ich hatte mir auch mal ueberlegt, ein 68020-System zu bauen (32bit muss 
sein). Dann wurde mir klar, dass der Verdrahtungsaufwand schon recht 
heftig ist bei einem 32bit System. Deswegen habe ich es gelassen.

Aber: 68008 gibt es ja auch, und sogar einen Bausatz:

https://shop.mcjohn.it/en/diy-kit/46-94-68k-mbc.html#/12-kit-to_assemble/16-ram-1024_kb

https://hackaday.io/project/177988-68k-mbc-a-3-ics-68008-homebrew-computer

Herrlich, was heute machbar ist. Fuer relativ wenig Geld.

Gruesse

von Falk B. (falk)


Lesenswert?

Rbx schrieb:
> Assembler sind einfach nur Merkwörter für Opcodes.

Ja, ganz einfach weil sich normale Menschen Wörter deutlich besser 
merken können als reine Zahlen. Erst recht, wenn sie sich an natürlicher 
Sprache orientieren, denn die behrrscht der Mensch schon.
Bei Autisten ist das anders.

> Man versteht das ganze auch viel besser, wenn man vorher schon mal ein
> paar komplexere Platinen hergestellt oder verlötet hatte.

Unsinn! Um Digitaltechnik zu lernen und zu verstehen muss man nicht 
VORHER Hardwerker werden. Man wird es bestenfalls HINTERHER.

von (prx) A. K. (prx)


Lesenswert?

Rbx schrieb:
> Man versteht das ganze auch viel besser, wenn man vorher schon mal ein
> paar komplexere Platinen hergestellt oder verlötet hatte.

Voraussetzung ist die Fähigkeit zu prozeduralem Denken, also in klar 
definierten Abläufen. Manche Menschen sind darin sehr gut. Anderen 
kannst du eine blitzsaubere Anleitung vorsetzen, und sie schaffen es 
nicht, sie Schritt für Schritt abzuarbeiten, sondern fangen mitten drin 
an und springen wild drin herum.

Keine generelle Voraussetzung ist jedoch, sich die Vorgänge in realen 
Elementen wie schaltenden Transistoren und leuchtenden LEDs 
vorzustellen. Das ist nur bei jenen Menschen nötig, denen die Fähigkeit 
zur Abstraktion schwach ausgeprägt ist. Denen es hilft, sich das in 
realen Vorgängen vorzustellen.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

https://de.wikipedia.org/wiki/Assemblersprache#Mnemonic

"Da die Zahlenwerte der Opcodes schwierig zu merken sind, verwenden 
Assemblersprachen leichter merkbare Kürzel, sogenannte mnemonische 
Symbole (kurz Mnemonics)."

von Falk B. (falk)


Lesenswert?

Thomas W. schrieb:
> https://hackaday.io/project/177988-68k-mbc-a-3-ics-68008-homebrew-computer
>
> Herrlich, was heute machbar ist. Fuer relativ wenig Geld.

Und relativ wenig Sinn. Wenn man mit einem 68k rumspielen will, sollte 
man einen Amiga nehmen. Denn dann hat man tonnenweise Software dazu und 
auch Hardware, mit der man was anstellen kann. Ein olles Minimalsystem 
mit 68k um ein paar IOs klimpern zu lassen und ein olles grünes Terminal 
mit ein paar Buchstaben zu füllen ist an Langweile kaum zu überbieten.

von (prx) A. K. (prx)


Lesenswert?

Falk B. schrieb:
> sollte man einen Amiga nehmen

Werden die nicht mittlerweile in Gold aufgewogen? :)

von Michael (Gast)


Lesenswert?

Günter K. schrieb:
> habe Eure wirklich gut gemeinten Worte verstanden

Nein.
Ganz offensichtlich nicht.

Mir kommen auch erhebliche Zweifel ob weitere Diskussionen mir Dir 
zielführend sind.
Du scheinst in einer Endlosschleife aus hektischer Aktivität ohne klare 
Zielstellung und ohne Aufgabensplitting festuhängen und nicht in der 
Lage zu sein zwei Schritte zurückzugehen und mal ganz grundlegend EINE 
ENZIGE Sache zu definieren die Du verstehen willst.

Im Übertragenen Sinn:
Du willst mit dem Auto nach Paris und fragst Dich jetzt wie eigentlich 
Alu Verhüttet wird um die Motorblöcke zu giessen und wie dann die 
Verbrennung gesteuert wird, Vergaser oder Direkteinspritzer und wie 
Vulkanisiert man eigentlich Gummi für die Reifen und wie bohrt man 
eigentlich die Löcher um an das Öl dafür zu kommen, weil man muss ja 
auch die Generatoren für die Halbleiterwerke bauen für die Steuerchips 
fürs Auto ...

Und egal was man sagt, Du sagts freundlich danke und fragst dann wie das 
doch gleich mit der Gasdruckfeder funktioniert für das Auto und das Du 
noch französisch lernen musst.

Meine Güte!
Lern doch erstmal Auto FAHREN, bevor Du dich im irgendwas sonst 
kümmerst!
Paris ist weit weg und die erste Fahrt sollte wohl erstmal Sonntags um 
den Block gehen.

So wie Du da rangehst, mit einem verkrusteten Christianiverlag, dem 
Lernmedium von vor 30J, mit CPUs von vor 30J, mit Software und Rechnern 
und Programmierequipment von vor 30J um damit interne Halbleitervorgänge 
sehen zu wollen...


Mein letzter Versuch:
Nehme Dir eine einfache CPU die fast jeder kennt, mit einer 
Programmierumgebung die aktuell ist und gut unterstützt und für die Du 
ganz viel Hilfe überall bekommen kannst.
Damit machst Du etwas das wir 'hello, World!' Programm nennen.
Ein einfaches Programm, das beweist das man ein programm auf der CPU 
ausführen kann.
Die absolute Basis für jede weitere Arbeit.
Das wird Dich ein eWeile in Aktion halten.
Ohne das Du E-Schrott Container und Flohmärkte nach längst 
ausgestorbenen Equipment durchsuchen musst und von Silberfischen 
angenagten Floppy Drive Hüllen nachjagts.

Ergo:
Kaufe Dir für ganz kleines Geld einen Arduino, installiere die IDE, 
stecke das USB Kabel an und leg los.
WENN Du dann die allergrundlegensten Sachen hinbekommst, schnappst du 
dir das Datemblatt zum AVR Controller der darauf verbaut ist und 
sprichst mal die Hardware im Controller direkt an.

WENN Du das geschafft hast, kannst Du Dir ja mal den übersetzten 
Assemblercode ansehen oder auch selbst einzelne ASM Passagen im Programm 
verwenden.

Und wenn Du bis dahin noch nicht verzweifelt bist und noch rüstig genug, 
kannst Du ja mal die grundlegenden Hardwareinheiten verstehen wollen.
Aber das liegt noch sehr weit weg für Dich.

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


Lesenswert?

(prx) A. K. schrieb:
> Falk B. schrieb:
>> sollte man einen Amiga nehmen
>
> Werden die nicht mittlerweile in Gold aufgewogen? :)

Nicht wirklich. Falls jemand ein 68000 System zum Spielen sucht: ich 
hätte noch einen Atari 1040STF mit Monitor abzugeben.

von Falk B. (falk)


Lesenswert?

Axel S. schrieb:
> Nicht wirklich. Falls jemand ein 68000 System zum Spielen sucht: ich
> hätte noch einen Atari 1040STF mit Monitor abzugeben.

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

;-)

von Günter K. (enk)


Lesenswert?

Falk B. schrieb:
> Rbx schrieb:
>> Assembler sind einfach nur Merkwörter für Opcodes.
>
> Ja, ganz einfach weil sich normale Menschen Wörter deutlich besser
> merken können als reine Zahlen. Erst recht, wenn sie sich an natürlicher
> Sprache orientieren, denn die behrrscht der Mensch schon.
> Bei Autisten ist das anders.
>
>> Man versteht das ganze auch viel besser, wenn man vorher schon mal ein
>> paar komplexere Platinen hergestellt oder verlötet hatte.
>
> Unsinn! Um Digitaltechnik zu lernen und zu verstehen muss man nicht
> VORHER Hardwerker werden. Man wird es bestenfalls HINTERHER.

Hallo Leute,

ich denke es wird ganz verschieden sein, je nach dem wie der Mensch
veranlagt ist, wie Rbx zB. über Autisten schrieb. Es wird auch damit
zusammenhängen welche Möglichkeiten zur Entwicklung da waren.

Ich denke es gibt Leute, die sind wie fürs Handwerk geboren. Eine Frage 
fürs Forum hätte ich bitte noch gerne. Wie macht man die Buchstaben 
farbig um besser zu unterscheiden, wer was sagt?

Ja ich sehe gerade, die Forumsoftware macht das automatisch.

Heute habe ich Haushalts-Tag, in der Zeit sitze ich dann nicht am 
Rechner.
Die guten Vorschläge, nehme ich mir zu Herzen.
Außer, dass ich mit dem Z80 weiter machen möchte, dort das 
Uhren-Programm mit Disassembler analysiern und verstehen lernen; denn 
wenn es disassembelt ist, werde ich es noch nicht verstanden haben. Das 
da viel incrementiert wird, oder vielleicht auch viel decrementier um 
das Zero-Flag abzufragen, kann ich mir schon vorstellen. Es gibt ICs die 
können selber das Nibbel-Bitmuster in 7-Segment umwandeln. Bei dem 
MPF-1, sieht es aber nicht so aus. Man kann sich vorstellen, was die 
Hardware selber macht, braucht nicht programmiert zu werden. Ich wundere 
mich aber, dass das Prg, so kurz ist.
Also jetzt steht erst einmal die Haushalts-Arbeit an.
Vielen Dank nochmal für Eure guten Tipps.
Auch dem für Bleistift u. Radiergummi.
Dem Tipp für die kleinen µCs, und
Dem Disassembler für LINUX.
Ich melde mich wieder.
LG. Enk
PS.:
Die anderen E-Mails muss ich noch Lesen.

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


Lesenswert?

Günter K. schrieb:
> Wie macht man die Buchstaben
> farbig um besser zu unterscheiden, wer was sagt?

Text markieren, dann auf "Markierten Text zitieren" klicken.

von Falk B. (falk)


Lesenswert?

(prx) A. K. schrieb:
>> sollte man einen Amiga nehmen
>
> Werden die nicht mittlerweile in Gold aufgewogen? :)

https://www.youtube.com/watch?v=-5ks5ms3z4w

LOL

von Thomas W. (Gast)


Lesenswert?

Falk B. schrieb:
> Thomas W. schrieb:
>> https://hackaday.io/project/177988-68k-mbc-a-3-ics-68008-homebrew-computer
>>
>> Herrlich, was heute machbar ist. Fuer relativ wenig Geld.
>
> Und relativ wenig Sinn. Wenn man mit einem 68k rumspielen will, sollte
> man einen Amiga nehmen.

Dann moechte ich nicht wissen, was Du von meinen Vaxen (Plural von VAX) 
haelst.

Aber ich gebe Dir ein bischen Recht: Meine VAX ist mittlerweile voll 
emuliert, eine virtuelle Maschine mit Gigabit-Ethernet, 
Platten-IO-Leistung zum Abwinken, 512MB RAM, CPU-Leistung mehr als genug 
(zwar nur ein Kern, aber das war im Orginal auch so).

Nur die schoene Abwaerme im Herbst und das Rauschen der acht Luefter, 
das fehlt mir (ich habe mir die Terminal-Farbe bei Putty auf Amber und 
gruen gesetzt...)

von (prx) A. K. (prx)


Lesenswert?

Thomas W. schrieb:
> Dann moechte ich nicht wissen, was Du von meinen Vaxen (Plural von VAX)
> haelst.

Nicht dass es jemand mit vaxxen verwechselt. Da sind manche etwas 
empfindlich. :)

Eine VAX der späteren Generation könnte man als Höhepunkt einer 
Fehlentwicklung betrachten. Aber all Ding hat seine Zeit.

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Wenn man wirklich sehen will, was in einem Prozessor so abgeht, dann 
lohnt sich vielleicht ein mehrtägiger Museumsbesuch in Cambridge, wo 
dieses Ding inzwischen steht:
https://www.megaprocessor.com/
https://www.youtube.com/playlist?list=PLNmCdcvSgJj5bllQx5E3A6OsbMq2luA9J

Aber ohne Englischkenntnisse auch wieder blöd, sorry.

: Bearbeitet durch User
von Mario M. (thelonging)


Lesenswert?

Günter K. schrieb:
> Ich wundere
> mich aber, dass das Prg, so kurz ist.

Das liegt daran, dass Routinen aus dem Monitor (=Betriebssystem) des 
Mikroprofessors mit benutzt werden. Das wären die Tonausgabe, das 
Wandeln in Siebensegmentcode und die Anzeige auf dem Diplay. Allerdings 
dürfte die Uhr alles andere als genau gehen, da der Sekundentakt nur 
grob aus Programmlaufzeiten abgeleitet wird.

von Roland F. (rhf)


Lesenswert?

Hallo,
Jobst M. schrieb:
> Allerdings gibt es dort kein X,Y,A ...

Gott sei Dank!

rhf

von Falk B. (falk)


Lesenswert?

(prx) A. K. schrieb:
> Eine VAX der späteren Generation könnte man als Höhepunkt einer
> Fehlentwicklung betrachten. Aber all Ding hat seine Zeit.

Die ganze Menschheitsgeschichte ist voll von Fehlentwicklungen! Und auch 
die GEGENWART, nicht nur was Computer angeht! Aus den meisten lernt man 
was, wenn oft leider erst spät und mit einem hohen Preis!

von Falk B. (falk)


Lesenswert?

Roland F. schrieb:
>> Allerdings gibt es dort kein X,Y,A ...
>
> Gott sei Dank!

Dann lieber Y, M, C, A!

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

;-)

von Thomas W. (Gast)


Lesenswert?

Falk B. schrieb:
> (prx) A. K. schrieb:
>> Eine VAX der späteren Generation könnte man als Höhepunkt einer
>> Fehlentwicklung betrachten. Aber all Ding hat seine Zeit.
>
> Die ganze Menschheitsgeschichte ist voll von Fehlentwicklungen! Und auch
> die GEGENWART, nicht nur was Computer angeht! Aus den meisten lernt man
> was, wenn oft leider erst spät und mit einem hohen Preis!

Experience is a hard teacher. First comes the test, then the lesson.

von Falk B. (falk)


Lesenswert?

Thomas W. schrieb:
>> Die ganze Menschheitsgeschichte ist voll von Fehlentwicklungen! Und auch
>> die GEGENWART, nicht nur was Computer angeht! Aus den meisten lernt man
>> was, wenn oft leider erst spät und mit einem hohen Preis!
>
> Experience is a hard teacher. First comes the test, then the lesson.

Es gibt drei Wege zur Erkenntnis.

Durch Nachmachen, das ist der Einfachste.
Durch Nachdenken, das ist der Edelste.
Durch Erfahrung, das ist der Bitterste.

Konfuzius

(oder war's Laotse?)

von Jobst M. (jobstens-de)


Lesenswert?

Thomas W. schrieb:
> 68008 gibt es ja auch

Aber von den 68000 habe ich nun noch einen ganzen Sack.

Falk B. schrieb:
> Wenn man mit einem 68k rumspielen will, sollte
> man einen Amiga nehmen.

Davon habe ich bereits einige. Der ist aber nicht das was ich will.

Roland F. schrieb:
> Gott sei Dank!

In der Tat! Aber der TO steht drauf. Hatte gehofft, ihn mit dem 68k 
ablenken zu können ;-)

von (prx) A. K. (prx)


Lesenswert?

Falk B. schrieb:
> (oder war's Laotse?)

Meine These: alle 3, in dieser Reihenfolge. Erst macht man nach, kapiert 
aber nichts. Dann denkt man drüber nach, kommt dabei auf großartige 
Ideen und realisiert sie. Anschließend wird man auf den Boden der 
Tatsachen zurück geholt.

von Falk B. (falk)


Lesenswert?

Jobst M. schrieb:
> Thomas W. schrieb:
>> 68008 gibt es ja auch
>
> Aber von den 68000 habe ich nun noch einen ganzen Sack.

Dann mach eine Moasik-Legearbeit draus! Oder ein Dominospiel! Nicht zu 
verwechseln mit Dominaspielen ;-)

> Falk B. schrieb:
>> Wenn man mit einem 68k rumspielen will, sollte
>> man einen Amiga nehmen.
>
> Davon habe ich bereits einige. Der ist aber nicht das was ich will.

Tja, dann wird's nicht besser. Nicht mit 68k.

von Jobst M. (jobstens-de)


Lesenswert?

Falk B. schrieb:
> Dann mach eine Moasik-Legearbeit draus! Oder ein Dominospiel!

Ich bin fassungslos über diese vollkommen verblödete Idee.

von Klaus (feelfree)


Lesenswert?

Jobst M. schrieb:
> Falk B. schrieb:
>> Dann mach eine Moasik-Legearbeit draus! Oder ein Dominospiel!
>
> Ich bin fassungslos über diese vollkommen verblödete Idee.

Ich bin fassunglos über deine Fassungslosigkeit aufgrund eines 
unlustigen Witzes.

von Rbx (rcx)


Lesenswert?

Falk B. schrieb:
> Unsinn! Um Digitaltechnik zu lernen und zu verstehen muss man nicht
> VORHER Hardwerker werden. Man wird es bestenfalls HINTERHER.

Digitaltechnik an sich ist einfach nur Abzählerei. Darüber hinaus geht 
es aber um Grundtechnik von Schaltungen und Zusammenhängen zu verstehen.
Analogtechnik heißt ja auch Analog, weil sie so anschaulich ist. Analog 
kann man
kontinuierliche Verläufe verfolgen, also stufenlos verfolgen, digital 
eben nur abgezählte, die allenfalls stufenlos imitieren, inklusive der 
Verzerrung wegen den nötigen Abstufungen.
(http://studio96.de/artikel/art010609%20analog%20digital%20wandlung.html)
Außerdem kam früher alles bezüglich Computerzusammenhängen mit guten 
Erklärungen daher.
Wenn also jemand etwas von Grund auf verstehen möchte, kommt man auch 
schlecht an der Analogtechnik vorbei.

Ist doch so ähnlich, wie bei einem Apfel und Birne Vergleich: Vergleicht 
man beide, erkennt man die Unterschiede viel besser und so auch den 
Apfel und die Birne.

von Rbx (rcx)


Lesenswert?

Jobst M. schrieb:
> Derzeit bin ich hin und hergerissen, ob ich ein System mit 68000
> aufbaue. Tatsächlich habe ich aber keine wirkliche Verwendung dafür.
> Aber wollen würd' ich schon gerne.

Mach doch was praktisches. Drumcomputer/Samper z.B.,.. naja, Atari 
Falcon mit DSP war wohl damals ein bisschen viel auf einmal, und 
Kompatibilität und Fertigung war wohl auch ziemlich schwierig.

Aber wenn man selber was versucht, warum  nicht 68000 mit DSP oder mit 
Cell oder irgendwie sowas?
Die Filtertabellen vom Yamaha TX16W Sampler hatten auch etwas für sich - 
waren aber nur rudimentär angedeutet implementiert, und so kaum nutzbar. 
Aber mit DSP oder ähnlichem ginge das schon viel besser.

von Christoph M. (mchris)


Lesenswert?

>Aber wenn man selber was versucht, warum  nicht 68000 mit DSP oder mit
>Cell oder irgendwie sowas?
Totaler Käse, Zeitverschwendung.
Für Signalverarbeitung ist viel Rechenleistung immer gut. Das geht zwar 
auch mit einem Attiny, aber 96kHz Stereo 16Bit ist da nicht drinn.
Das kleinste, was man heute nehmen würde ist ein ESP32, PiPico, STM32H7 
und dann die RasperiPi Liga und dann mit richtig Leistung CUDA und 
Grafikkarte.

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
>>Aber wenn man selber was versucht, warum  nicht 68000 mit DSP oder mit
>>Cell oder irgendwie sowas?
> Totaler Käse, Zeitverschwendung.
> Für Signalverarbeitung ist viel Rechenleistung immer gut. Das geht zwar
> auch mit einem Attiny, aber 96kHz Stereo 16Bit ist da nicht drinn.
> Das kleinste, was man heute nehmen würde ist ein ESP32, PiPico, STM32H7
> und dann die RasperiPi Liga und dann mit richtig Leistung CUDA und
> Grafikkarte.

Hallo Leute, grüßt Euch,
wie sieht es mit RasperiPi aus?
Es geht mir ja darum, etwas -einfaches- zu haben.

Also fast zurück, bis nach ELISA
von Professor Joseph Weizenbaum.
LG. Enk

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> wie sieht es mit RasperiPi aus?

Weder alt noch einfach.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Günter K. schrieb:
>> wie sieht es mit RasperiPi aus?
>
> Weder alt noch einfach.

Hallo Klaus, Danke.

von Günter K. (enk)


Lesenswert?

Mario M. schrieb:
> Günter K. schrieb:
>> Ich wundere
>> mich aber, dass das Prg, so kurz ist.
>
> Das liegt daran, dass Routinen aus dem Monitor (=Betriebssystem) des
> Mikroprofessors mit benutzt werden. Das wären die Tonausgabe, das
> Wandeln in Siebensegmentcode und die Anzeige auf dem Diplay. Allerdings
> dürfte die Uhr alles andere als genau gehen, da der Sekundentakt nur
> grob aus Programmlaufzeiten abgeleitet wird.

Dankeschön Mario,

das ist eine gute Anwort.
LG. Enk

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


Lesenswert?

Günter K. schrieb:
> Hallo Leute, grüßt Euch,
> wie sieht es mit RasperiPi aus?

Jetzt ist es vorbei. Der Raspberry Pi ist ein PC!

: Bearbeitet durch User
von Julian L. (rommudoh)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Raspberry Pi ist ein PC!

Naja, es gibt auch Mikrocontroller von Raspberry Pi, den RP2040 oder 
RP2350. Aber die sind auch nicht sehr "einfach" wie hier gewünscht.

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


Lesenswert?

Julian L. schrieb:
> Naja, es gibt auch Mikrocontroller von Raspberry Pi, den RP2040 oder
> RP2350.

Nein. Der "Raspberry Pi" ist ein Computer und die Firma heißt "Raspberry 
Foundation". Das "Raspberry Pi Pico" Board ist ein Mikrocontroller 
Board. Das ist nicht der "Raspberry Pi" um den es hier ging. Ich habe 
mir diese verwirrenden Namen nicht ausgedacht.

> Aber die sind auch nicht sehr "einfach" wie hier gewünscht.
richtig

: Bearbeitet durch User
von Motopick (motopick)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Julian L. schrieb:
>> Naja, es gibt auch Mikrocontroller von Raspberry Pi, den RP2040 oder
>> RP2350.
>
> Nein. Der "Raspberry Pi" ist ein Computer und die Firma heißt "Raspberry
> Foundation".

Die Firma heisst: "Raspberry Pi Ltd".
Deren Seinszweck ist unzweifelhaft die Erzielung von Profit.

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


Lesenswert?

Julian L. schrieb:
> es gibt auch Mikrocontroller von Raspberry Pi, den RP2040 oder
> RP2350. Aber die sind auch nicht sehr "einfach" wie hier gewünscht.
Immerhin kann der RP2040 vollständiges CP/M.
Womit man dann mit beiden Beinen in der 8080/Z80 Welt steht.

von Falk B. (falk)


Lesenswert?

Arduino F. schrieb:
> Immerhin kann der RP2040 vollständiges CP/M.
> Womit man dann mit beiden Beinen in der 8080/Z80 Welt steht.

So wie im Morast. Wer will da heute nicht stehen, nicht wahr? ;-)

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

Das hat sich's im Morast gereeeecht . . . .  ;-) Brüller

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


Lesenswert?

Motopick schrieb:
>> Nein. Der "Raspberry Pi" ist ein Computer und die Firma heißt "Raspberry
>> Foundation".
>
> Die Firma heisst: "Raspberry Pi Ltd".

Raspberry Pi Holdings
Raspberry Pi Ltd
Raspberry Foundation

von Falk B. (falk)


Lesenswert?

(prx) A. K. schrieb:
>> Die Firma heisst: "Raspberry Pi Ltd".
>
> Raspberry Pi Holdings
> Raspberry Pi Ltd
> Raspberry Foundation

Klingt nach Briefkastenfirmen auf den Cayman Islands ;-)

von Motopick (motopick)


Lesenswert?

(prx) A. K. schrieb:
> Motopick schrieb:
>>> Nein. Der "Raspberry Pi" ist ein Computer und die Firma heißt "Raspberry
>>> Foundation".
>>
>> Die Firma heisst: "Raspberry Pi Ltd".
>
> Raspberry Pi Holdings
> Raspberry Pi Ltd
> Raspberry Foundation

Was auch immer. Profit!

> Klingt nach Briefkastenfirmen auf den Cayman Islands ;-)

Moeglicherweise.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Motopick schrieb:
>> Raspberry Pi Holdings
>> Raspberry Pi Ltd
>> Raspberry Foundation
>
> Was auch immer. Profit!

Ist zwar besonders von Linksextremen als Teufelszeug verschrien, aber 
eher der Normalfall unternehmerischer Tätigkeit. Natürlich kann und 
sollte man zwischen "normalem" und pervers hohem Profit unterscheiden. 
Drogenhandel, Kunstmarkt und Crypto rangieren her im letzgenannten 
Bereich. ;-)

Das Gegenstück dazu heißt Sozialismus. Wird auch von Linksextremen sehr 
stark propagiert. Aber kaum von welchen, die in diesem leben.

https://de.wikipedia.org/wiki/KISS-Prinzip

VIVA la revolution!

https://www.youtube.com/watch?v=0UZ916Qr8gY

Einer der wirklich Großen, der leider viel zu früh gehen musste! Ruhe in 
Frieden!

von (prx) A. K. (prx)


Lesenswert?

Motopick schrieb:
>> Raspberry Pi Holdings
>> Raspberry Pi Ltd
>> Raspberry Foundation
>
> Was auch immer. Profit!

The Raspberry Pi Foundation is a registered charity in England and 
Wales.

von Motopick (motopick)


Lesenswert?

(prx) A. K. schrieb:
> Motopick schrieb:
>>> Raspberry Pi Holdings
>>> Raspberry Pi Ltd
>>> Raspberry Foundation
>>
>> Was auch immer. Profit!
>
> The Raspberry Pi Foundation is a registered charity in England and
> Wales.

Soziales Blendwerk!

von Falk B. (falk)


Lesenswert?

Falk B. schrieb:
> Das Gegenstück dazu heißt Sozialismus. Wird auch von Linksextremen sehr
> stark propagiert. Aber kaum von welchen, die in diesem leben.
>
> https://de.wikipedia.org/wiki/KISS-Prinzip

Scheibenkleister, falscher Link!

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

von Günter K. (enk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Günter K. schrieb:
>> Hallo Leute, grüßt Euch,
>> wie sieht es mit RasperiPi aus?
>
> Jetzt ist es vorbei. Der Raspberry Pi ist ein PC!

Bitte, - ich widerspreche hier nicht.
Ich stellte mir vor, dass man ihn leeren kann,
jedoch es stimmt schon, es würde wahrscheinlich zu kompliziert werden.

Denn Mario M. schrieb ja,
Weil
> Günter K. schrieb:
>> Ich wundere
>> mich aber, dass das Prg, so kurz ist.
>
> Das liegt daran, dass Routinen aus dem Monitor (=Betriebssystem) ...
... und bin mit der Antwort sehr zufrieden.
Und ich bin auch damit zufrieden weil
Klaus schrieb:
> Günter K. schrieb:
>> wie sieht es mit RasperiPi aus?
>
> Weder alt noch einfach.
Ist klar, ich wollte es ja -einfach- haben.
Jedoch, ich bin kein Troll - (!) Ich bin zwar alt,
aber nicht uninteressiert.

Ich kann aber mittlerweile erkennen, dass wenn
Progamme im Hintergrund laufen, dass ich in dem Moment nicht weiß,
was sich eigentlich abspielt. Das sagen mir die Bücher bisher nicht.
Und auch beim Z80 ist die Programmierung viel komlexer, weil er mehr 
kann.
Vielleicht könnte ich das Uhren-Prg. von Christiani in eine Eieruhr 
umschreiben.

Sobald ich aber CPU-Emulator und dazu das Laufende Programm sehe,
würde ich es sehr wahrscheinlich verstehen können.
(Was ein Schwingkreis ist und andere Sachen weiß ich auch.)
Erstaunlich ist auch, dass der MPF-1 mit seinem "Monitor" noch läuft,
dass das E-PROM sich nicht (Radioaktiv) gelöscht hat.
Als ich die Uhr laufen sah, war ich begeistert. :-))  ;-)
In dem Christiani-Lehrgang ist auch kein kompletter Befehlssatz.
Und der von Zaks, gibt für einen Befehl mehrere Op-Codes an.
Es ist wirklich nicht einfach beschrieben.
Ich suche gleich im Internet. Letztendlich sollte man auch ein
Monitor, am Besten mit RGB-Signal betrieben werden können.
Nun ja, - vielleicht mache ich weiter mit dem 6502.
Mal sehen was ich im Internet noch finde,
habt Ihr noch Internet-Adressen dazu?

LG. Enk

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


Lesenswert?

Günter K. schrieb:
> Letztendlich sollte man auch ein
> Monitor, am Besten mit RGB-Signal betrieben werden können.

Damit bist du weit weg von "einfach". Lass die Idee mal ruhen bis du das 
Gefühl hast den Mikrocontroller, eine Menge Peripherie und die Software 
dazu zu beherrschen.

Für dich sind erst mal LEDs und später eine serielle Konsole als 
Ausgabeschnittstellen angemessen.

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


Lesenswert?

Falk B. schrieb:
> Arduino F. schrieb:
>> Immerhin kann der RP2040 vollständiges CP/M.
>> Womit man dann mit beiden Beinen in der 8080/Z80 Welt steht.
>
> So wie im Morast. Wer will da heute nicht stehen, nicht wahr? ;-)
>
> https://www.youtube.com/watch?v=Gwa7hXrvUG8
>
> Das hat sich's im Morast gereeeecht . . . .  ;-) Brüller

Ich mag deinen Ton nicht.

Und doch ist es so, dass es sich, mehr oder weniger, im ganzen Thread um 
das satteln von quasi toten Pferden dreht.

von (prx) A. K. (prx)


Lesenswert?

Arduino F. schrieb:
> Und doch ist es so, dass es sich, mehr oder weniger, im ganzen Thread um
> das satteln von quasi toten Pferden dreht.

Andere fahren und pflegen Autos, die älter sind, als sie selbst.

von Motopick (motopick)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Günter K. schrieb:
>> Letztendlich sollte man auch ein
>> Monitor, am Besten mit RGB-Signal betrieben werden können.

> Für dich sind erst mal LEDs und später eine serielle Konsole als
> Ausgabeschnittstellen angemessen.

Mein erster Z80 war "stand-alone". Da gab es keine serielle Konsole.
Allerdings war er vollstaendig selbst entwickelt und gebaut.
Da war der Anschluss einer einfachen(!) Videoschnittstelle einfacher.
Die "klaute" per BUSRQ dem Z80 den Speicher, und konnte 32 Zeichen
auf 32 Zeilen darstellen. Immerhin monochromatisch. :)
Das ist leider bei einem "Fertigsystem" nicht so einfach moeglich.
RGB in Pixelform kam dann einige Jahre spaeter.

von (prx) A. K. (prx)


Lesenswert?

Motopick schrieb:
> Die "klaute" per BUSRQ dem Z80 den Speicher, und konnte 32 Zeichen
> auf 32 Zeilen darstellen.

Kennst du das Verfahren des Sinclair ZX80? Absolut minimalistisch.

von Motopick (motopick)


Lesenswert?

(prx) A. K. schrieb:
> Motopick schrieb:
>> Die "klaute" per BUSRQ dem Z80 den Speicher, und konnte 32 Zeichen
>> auf 32 Zeilen darstellen.
>
> Kennst du das Verfahren des Sinclair ZX80? Absolut minimalistisch.

Die Kenntnis kam erst spaeter.
Gar so minimalistisch ging es bei mir nicht.
Und meiner hatte immerhin 3 kByte statt blos 1 kByte.

von Falk B. (falk)


Lesenswert?

Günter K. schrieb:

>> Jetzt ist es vorbei. Der Raspberry Pi ist ein PC!
>
> Bitte, - ich widerspreche hier nicht.
> Ich stellte mir vor, dass man ihn leeren kann,

In der Tat. Leeren ist deine Kernkompetenz!

> jedoch es stimmt schon, es würde wahrscheinlich zu kompliziert werden.

Aber nicht doch!

>> Günter K. schrieb:
>>> wie sieht es mit RasperiPi aus?
>>
>> Weder alt noch einfach.
> Ist klar, ich wollte es ja -einfach- haben.
> Jedoch, ich bin kein Troll - (!) Ich bin zwar alt,
> aber nicht uninteressiert.

Für Psychiologen. Und Neurologen. Und Antropologen.
Sie haben alle gelogen! ;-)

> Ich kann aber mittlerweile erkennen, dass wenn
> Progamme im Hintergrund laufen, dass ich in dem Moment nicht weiß,
> was sich eigentlich abspielt.

Das merkt man.

> Das sagen mir die Bücher bisher nicht.

Ist halt nur toter Baum! Der spricht seine eigene Sprache!

> Und auch beim Z80 ist die Programmierung viel komlexer, weil er mehr
> kann.

Kann sein!

> Vielleicht könnte ich das Uhren-Prg. von Christiani in eine Eieruhr
> umschreiben.

Na rumeiern kannst du doch schon ganz gut!

> Sobald ich aber CPU-Emulator und dazu das Laufende Programm sehe,
> würde ich es sehr wahrscheinlich verstehen können.

Oder auch nicht.

> (Was ein Schwingkreis ist und andere Sachen weiß ich auch.)
> Erstaunlich ist auch, dass der MPF-1 mit seinem "Monitor" noch läuft,
> dass das E-PROM sich nicht (Radioaktiv) gelöscht hat.

Lieber fernsehmüde als radioaktiv!

> Als ich die Uhr laufen sah, war ich begeistert. :-))  ;-)

Trommelwirbel

> In dem Christiani-Lehrgang ist auch kein kompletter Befehlssatz.

Links-Zwo-Drei-Vier reicht doch!

> Und der von Zaks, gibt für einen Befehl mehrere Op-Codes an.
> Es ist wirklich nicht einfach beschrieben.

Oder einfach zu verstehen? Oder einfach sinnlos?

> Ich suche gleich im Internet. Letztendlich sollte man auch ein
> Monitor, am Besten mit RGB-Signal betrieben werden können.

Wie man das wohl im Jahr 2024 am Besten anstellt? Am Besten erstmal an 
die Ostsee fahren und Sand (SiO2) schürfen! Alles andere folgt daraus!

> Nun ja, - vielleicht mache ich weiter mit dem 6502.

Oder dem 4711er?

> Mal sehen was ich im Internet noch finde,

Alles! Und noch mehr!

> habt Ihr noch Internet-Adressen dazu?

http://www.alles-was-ich-wissen-will.de

von Gerhard O. (gerhard_)


Lesenswert?

Moin,

Die MSP430 haben einen schönen Maschinenbefehlssatz und Architektur; 
darauf zu lernen ist bestimmt kein Fehler. Es gibt freie SW mit Debugger 
und die günstigen T.I. Launchpad Bords haben minimal alles drauf, was 
man braucht. Der Debugger erlaubt das Beobachten des Programmablaufs und 
aller CPU Register. Das wäre halt mein Vorschlag. Da kann man gut damit 
lernen. Auch Assembler Programmieren ist unterstützt.

Zilog hat da noch die Z-Encore! uC. Da gibts auch ein freies IDE mit 
Debugger und einfaches Single Wire Debugging, den man sich selber bauen 
kann. Der Z8 hat auch eine schöne Architektur.

Auch gegen AVR ist wenig einzuwenden. Nur die uralten PICs würde ich mir 
nicht antun wollen. Wenngleich auch die neueren in der Hinsicht 
wesentlich günstiger sind. Der F6014 z.B. ist noch ziemlich freundlich 
und man kann viel damit machen. Auch Microchip hat da freie SW.

Arduino ist auch sehr brauchbar. Man kann ja auch dort auf HW Ebene 
operieren und muß nicht alles unbedingt mit fertigen Libs machen. Aber 
da gibt es keinen Debugger.

Auch mit dem 8051 kann man sich gründlich austoben. Keil hat einen 
begrenzten Compiler dafür. Man kann auch von Silicon Labs einen 
bekommen. Beim Keil kann man ja auch ohne HW Simulieren. Da brauchst 
nicht einmal eine Bord. Der Keil uV2 ist da noch am Einfachsten. Wenig 
Overhead. Bare Metal.

Möglichkeiten, derer, gibt es also sicherlich genug. Mache es Dir nicht 
unnötig zu kompliziert. Vermeide die lähmende "Analysis-Paralysis". Mach 
einfach.

Duck und weg,
Gerhard

von Thomas W. (Gast)


Lesenswert?

Günter K. schrieb:

> In dem Christiani-Lehrgang ist auch kein kompletter Befehlssatz.

Das brauchst Du fuer den Anfang nicht: Ich hatte Dir das 
Programmiermodell der Z80 gezeigt (siehe 
Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"). Die Arbeit wird 
mit dem Akku gemacht, die anderen Register sind als Hilfsspeicher zu 
sehen (LD A, H kopiert den Inhalt von A nach H).

> Und der von Zaks, gibt für einen Befehl mehrere Op-Codes an.
> Es ist wirklich nicht einfach beschrieben.

Wenn Du eine Befehl (z.B. ADD, Abb. 4.7) ausfuehren willst, musst Du 
natuerlich auch schreiben, was Du addieren kannst: Addiere A, B, C, D, 
E, H oder L zu dem Akku, das Ergebnis ist im Akku (die Z80 ist sehr 
primitiv).

Oder einfach eine Konstante (#immediate). Besonders fuer Hochsprachen 
(Pascal, Fortran, Basic) sind die indirekte Zugriffe (d.h. Du addierst 
das Byte, das Du im Speicher findest wo der Inhalt des Registers HL 
zeigt). Die Zugriffe mit IX und IY sind ebenso indiziert.

D.h. es gibt fuer einen Befehl (ADD) 11 verschiedene OPCode, je nachdem, 
welche die Quelle (was addiert werden soll) ist.

> Ich kann aber mittlerweile erkennen, dass wenn
> Progamme im Hintergrund laufen, dass ich in dem Moment nicht weiß,
> was sich eigentlich abspielt. Das sagen mir die Bücher bisher nicht.
> Und auch beim Z80 ist die Programmierung viel komlexer, weil er mehr
> kann.

Das kann ich so nicht stehen lassen: Z.B. ADD A,(HL) hat ein schoenes 
Bild, erklaert den Datenfluss und das Ergebnis.

Und wenn Du wirklich das komplette Datenblatt sehen willst, gehe einfach 
zum Hersteller: https://www.zilog.com/docs/z80/um0080.pdf

Freundliche 332 Seiten.

Gruesse

von Roland F. (rhf)


Lesenswert?

Hallo,
Günter K. schrieb:
> Und der von Zaks, gibt für einen Befehl mehrere Op-Codes an.

Stichwort: Adressierungsarten.

rhf

von Günter K. (enk)


Lesenswert?

Roland F. schrieb:
> Hallo,
> Günter K. schrieb:
>> Und der von Zaks, gibt für einen Befehl mehrere Op-Codes an.
>
> Stichwort: Adressierungsarten.
   Ja, ok. das verstehe ich.
   Aber da sind oft viel zu viele Hexzeichen, zB. CALL B0
   und bei ADD A, B da steht auch B0.
   (Nun ja, die andereren gehören zum Beispiel.)

   Ich verstehe einfach fast nichts vom Befehlssatz.
>
> rhf

Hallo Roland und alle,

jetzt hab' ich den Zaks nochmal in die Hände genommen.
Ich hatte schon allerhand Zeugs geschrieben, doch so lernt man
sich kurz zu fassen. Ich war aus der Seite ausgestiegen,
um ein Wort in Wikipedia zu suchen, auf einmal war alles weg.

In Zukunft passiert mir das nicht mehr.

... und schon habe ich wieder jede Menge geschrieben.

Jede Menge Tabellen die ich nicht verstehe,
bin im Buch weiter nach vorne gegangen, (will nicht zuviel schreiben).
Da stand zu Exponent und Mantisse,
schrieb man im Buch(bei Gleitkommazahlen, für das Vorzeichen "S");
ich habs nur erraten. Also "nichts","+" oder "-".

Dann steht über BITS, MSD; was heist das?
Ja, für die PIO muss ich das Buch Nr. C201 besorgen.
Hier gibt es nur 6 Flags.

[(Bei den 64-Bit-Prozessoren hat man schon ein 32-Bit-Flagregister.)
Das war nur nebenbei.]

Es erscheint mir alles viel zu viel, aber ich habe den MPF-1 nun mal.
Nur mit LEDs u. Arduino o.ä. anfangen ist gar nicht so schlecht.
Aber bitte nur in Maschinensprache, bzw. Assembler.

Jetzt guck ich mal nach, ob es noch Programme und Bücher
für den Junior-Computer(6502), gibt es da noch was?
Von dem fehlt die Speicherkarte und ebenfalls eine passende Peripherie.
Ich suche mal weiter im Internet.
LG. Enk

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


Lesenswert?

Günter K. schrieb:
> Nur mit LEDs u. Arduino o.ä. anfangen ist gar nicht so schlecht.
> Aber bitte nur in Maschinensprache, bzw. Assembler.

Ist doch kein Problem!
Was hält dich ab?

von Falk B. (falk)


Lesenswert?

Arduino F. schrieb:
>> Nur mit LEDs u. Arduino o.ä. anfangen ist gar nicht so schlecht.
>> Aber bitte nur in Maschinensprache, bzw. Assembler.
>
> Ist doch kein Problem!
> Was hält dich ab?

Sein Chaos im Kopf . . .

von Thomas W. (Gast)


Lesenswert?

Günter K. schrieb:
> Roland F. schrieb:
>> Hallo,
>> Günter K. schrieb:
>>> Und der von Zaks, gibt für einen Befehl mehrere Op-Codes an.
>>
>> Stichwort: Adressierungsarten.
>    Ja, ok. das verstehe ich.
>    Aber da sind oft viel zu viele Hexzeichen, zB. CALL B0
>    und bei ADD A, B da steht auch B0.
>    (Nun ja, die andereren gehören zum Beispiel.)
>
>    Ich verstehe einfach fast nichts vom Befehlssatz.

Dann ist es so. Dann wird Dir der Junior auch nicht helfen, weil die 
Probleme und Nomenklatur identisch ist (OK, Stack und Zero-page).

Die (deutschen) Junior-Buecher von Elektor findest Du bei 
http://retro.hansotten.nl/ , die Buecher bei 
http://retro.hansotten.nl/6502-sbc/elektuur-junior/elektor-junior-literature/elektor-books/

Natuerlich hat der Zaks auch ein Buch ueber die 6502 geschrieben, 
"Programmieren des 6502".

Die Junior-Platine ist stand-alone, Speicherkarten braucht man nicht.

Ich verabschiede von diesem Thread (mir fehlt das Ziel und die 
Mitarbeit) und wuensche Dir alles Gute.

Gruesse

von Günter K. (enk)


Lesenswert?

Thomas W. schrieb:
> Günter K. schrieb:
>
>> In dem Christiani-Lehrgang ist auch kein kompletter Befehlssatz.
>
> Das brauchst Du fuer den Anfang nicht: Ich hatte Dir das
> Programmiermodell der Z80 gezeigt (siehe
> Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen,
> Erfahrung?"). Die Arbeit wird
> mit dem Akku gemacht, die anderen Register sind als Hilfsspeicher zu
> sehen (LD A, H kopiert den Inhalt von A nach H).
>
>> Und der von Zaks, gibt für einen Befehl mehrere Op-Codes an.
>> Es ist wirklich nicht einfach beschrieben.
>
> Wenn Du eine Befehl (z.B. ADD, Abb. 4.7) ausfuehren willst, musst Du
> natuerlich auch schreiben, was Du addieren kannst: Addiere A, B, C, D,
> E, H oder L zu dem Akku, das Ergebnis ist im Akku (die Z80 ist sehr
> primitiv).
>
> Oder einfach eine Konstante (#immediate). Besonders fuer Hochsprachen
> (Pascal, Fortran, Basic) sind die indirekte Zugriffe (d.h. Du addierst
> das Byte, das Du im Speicher findest wo der Inhalt des Registers HL
> zeigt). Die Zugriffe mit IX und IY sind ebenso indiziert.
>
> D.h. es gibt fuer einen Befehl (ADD) 11 verschiedene OPCode, je nachdem,
> welche die Quelle (was addiert werden soll) ist.
>
>> Ich kann aber mittlerweile erkennen, dass wenn
>> Progamme im Hintergrund laufen, dass ich in dem Moment nicht weiß,
>> was sich eigentlich abspielt. Das sagen mir die Bücher bisher nicht.
>> Und auch beim Z80 ist die Programmierung viel komlexer, weil er mehr
>> kann.
>
> Das kann ich so nicht stehen lassen: Z.B. ADD A,(HL) hat ein schoenes
> Bild, erklaert den Datenfluss und das Ergebnis.
>
> Und wenn Du wirklich das komplette Datenblatt sehen willst, gehe einfach
> zum Hersteller: https://www.zilog.com/docs/z80/um0080.pdf
>
> Freundliche 332 Seiten.
>
> Gruesse
Deine Beiträge kommen bei mir gut an.
Dein genanntes Beispiel, das Progrämmle,
das, hatte ich vor, noch mal zu lesen, was ich nur überflog.
Das nächste mal, wenn ich soetwas lese,
schreibe ich Deinen Namen, zB.:
"Thomas W. schrieb:" und Datum u. Zeitpunkt auf.
Das Manual vom MPF-1 habe ich nicht.
LG. Enk

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Angehängte Dateien:

Lesenswert?

Dieses Wochenende waren auf dem VCFB einige CPU-Lern-Systeme zu sehen 
(siehe Anhang).

https://vcfb.de/2024/ausstellungen.html#sonderausstellung

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


Lesenswert?

Thomas W. schrieb:
Günter K. schrieb:
>>    Aber da sind oft viel zu viele Hexzeichen, zB. CALL B0
>>    und bei ADD A, B da steht auch B0.
>>    (Nun ja, die andereren gehören zum Beispiel.)
>>
>>    Ich verstehe einfach fast nichts vom Befehlssatz.
>
> Dann ist es so. Dann wird Dir der Junior auch nicht helfen, weil die
> Probleme und Nomenklatur identisch ist (OK, Stack und Zero-page).
>
> Die (deutschen) Junior-Buecher von Elektor findest Du bei
> http://retro.hansotten.nl/ , die Buecher bei
> 
http://retro.hansotten.nl/6502-sbc/elektuur-junior/elektor-junior-literature/elektor-books/
>
> Natuerlich hat der Zaks auch ein Buch ueber die 6502 geschrieben,
> "Programmieren des 6502".
>
> Die Junior-Platine ist stand-alone, Speicherkarten braucht man nicht.
>
> Ich verabschiede von diesem Thread (mir fehlt das Ziel und die
> Mitarbeit) und wuensche Dir alles Gute.
>
> Gruesse

Ach, das ist aber schade, trotzdem ein ;-)  :-)

Das Buch vom Junior, spricht mich schon sehr an.
Und ich bin auch nicht ganz ohne Erfahrung.
Morgen will ich versuchen, das Buch zu bestellen.
Das Buch sieht gut aus, und erscheint mir besser lesbar.
Doch auch das ist sehr viel Lesestoff.

Allerdings, so denke ich, dass er noch Speicherbausteine braucht.
Denn auf anderen Bildern sah ich ihn, mit einer doppelten Platine;
ich habe an ihn nur mit einer Platine. Sicherlich gibt es heute
auch schnellere Lade-Möglichkeiten. Natürlich kann das nicht schneller 
sein, als der Computer selbst ist - oder doch - wenn nur die 
Speicherbausteine geladen werden, kann es schneller gehen.
Nur der Computer selbst ist nicht schneller.

Ich hoffe, das ich den anderen hier im Thread nicht lästig gewirkt habe.
Wenn es lästig erscheint, ist es nicht so gemeint.
Danke für die Mitbeteiligung,
für heute erst mal gute Nacht,
LG. Enk  Günter K.

: Bearbeitet durch User
von Marci W. (marci_w)


Lesenswert?

Thomas W. schrieb:
> Und wenn Du wirklich das komplette Datenblatt sehen willst, gehe einfach
> zum Hersteller: https://www.zilog.com/docs/z80/um0080.pdf

ACK!

Ich finde, es würde auch nichts dagegen sprechen, sich irgend ein Modul 
mit AVR-uC für ein paar Euro zu holen. Da kann Günter dann problemlos in 
Assembler programmieren. ESP ist schon deutlich zu komplex, alleine 
durch das ganze Boot-Procedere beim Start, und der Tensilica Befehlssatz 
wird ja auch nicht gerade an die große Glocke gehängt (obwohl man nach 
ein wenig suchen die kompletten technical references findet).
Z80 ist halt wirklich seehr einfach, sehr gut dokumentiert (siehe z.B. 
das von Dir verlinkte DB).
Aber AVRs habe ich auch schon from scratch in Assembler hochgezogen. Ist 
ähnlich einfach wie beim Z80. Die einfacheren ARM-Strukturen (z.b. M3) 
gehen auch noch ganz gut from scratch. Da ist halt der Befehlssatz a 
bissle komplexer durch die ganzen verschiedenen Befehlssätze (thumb 
etc).
Wenn Günter Elektriker ist, dann wird er ja wenigstens die logischen 
Grundstrukturen (Gatter, Flip Flops, Zähler etc.) schon man in der 
Ausbildung kennen gelernt haben, denke ich.
Günters Idee, das ominöse Uhrenprogramm zu disassemblieren und zu 
verstehen, halte ich eher für eine blöde Idee, es sei denn, der Weg ist 
das Ziel. <SCNR>

Ich denke, die geringen Englischkenntnisse von Günter könnten ein 
größeres Problem sein.

Günter soll doch bitte mal mitteilen, wie er denn jetzt starten wird, 
dann könnte man auch sagen, ob das eher eine gute oder schlechte Idee 
ist. Zu den von Günter beschriebenen Lernsystemen (MicroProfessor etc.) 
kann ich nix sagen. Mein erstes Z80-System habe ich mit Hilfe der 
Zilog-Doku (die damals gar nicht so leicht zu bekommen war als Schüler), 
dem TI Logik Datenbuch und dem Klassiker von Rolf Dieter Klein 
entwickelt... uuups, ich schweife ab...

Also Günter: was sind denn aktuell Deine Pläne?

ciao

Marci

P.S.: natürlich kann man mit einem uC-System eine relativ genaue Uhr 
basteln, wenn man gut programmiert (Ablaufpfade beachten) und Takte 
zählt. Denn normalerweise kommt der Takt ja von einem Quarz. Das reicht 
doch zum experimentieren.

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


Lesenswert?

Marci W. schrieb:
> Also Günter: was sind denn aktuell Deine Pläne?
Hallo Marci W.
Euer Interesse freut mich sehr.
Logische Bausteine der Elektronik,
gab es in der Ausbildung noch nicht.
Das waren noch die 60er Jahre.
Die Spannung war noch auf 220 im Dreieck.
Oft mit kassischer Nullung VDE 0100 Ü.
Aber Schalter sind ja auch logisch,
(ebenso wie bei Konrad Zuse)
trotzdem ließ ich mich danach auf
Abendschule darin ausbilden, bekam
sehr gute Zertifikate, die ich noch habe.
Das ist alles sehr, sehr lange her.
Viele meiner Kollegen sind schon gestorben.

Morgen versuche ich etwas über den Junior-Computer zu bekommen.
Denn den habe ich auch noch vom Speicher des Hauses geholt.
Arduinos, habe ich auch. Warum ich das nicht kapiere,
weiß ich auch nicht. Um es aber wirklich zu verstehen,
muss ich ins Eingemachte also den Prozessor selbst, auch beim Arduino.

Ich wünsche Euch eine gute Nacht.

: Bearbeitet durch User
von Jobst M. (jobstens-de)


Lesenswert?

Hat hier eigentlich schon jemand den NDR Kleincomputer erwähnt?

https://de.wikipedia.org/wiki/NDR-Klein-Computer

Den gibt es in den Geschmacksrichtungen Z80, 6502, 68000/08/20, 8080, 
8088 und HD64180. Prinzipiell könnte man sich aber auch Karten für 8032, 
6800/9, 8086, Z8000 oder NS320xx herstellen.

2017 wurde eine Neuauflage gestartet.

Gruß

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


Lesenswert?


von Hippelhaxe (hippelhaxe)


Lesenswert?

Günter K. schrieb:

> Ich kann aber mittlerweile erkennen, dass wenn Progamme
> im Hintergrund laufen, dass ich in dem Moment nicht weiß,
> was sich eigentlich abspielt. Das sagen mir die Bücher
> bisher nicht.

Hmm.
Also... ich bin jetzt 55 und nehme seit zwei Jahren
Klavierunterricht. Natürlich hat mich gleich interessiert,
ob es bekannte, charakteristische Unterschiede zwischen
Kindern und Erwachsenen als Instrumentalschülern gibt.

Was ich aus Büchern und einschlägigen Foren zusammengetragen
habe, lässt sich ungefähr so zusammenfassen: "Erwachsene
Instrumentalschüler haben potenziell den Vorteil, dass sie
zeitweilige Durststrecken kraft ihrer Lebenserfahrung besser
überwinden können. Häufig wird das aber geradezu ins Gegenteil
verkehrt, weil Erwachsene in der Regel zielorientierter sind
und fast immer zu schnell zu viel wollen und sich daher von
den Mühen des Übens und dem trotzdem langsamen Fortschritt
abschrecken lassen.
Kinder leben viel mehr im Augenblick; wenn ihnen die Tätigkeit
an sich Spaß macht, haben sie kein Problem damit, denselben
Ablauf hunderte Male zu wiederholen, weil sie sich am konkreten
Tun und am Lernfortschritt erfreuen, aber nicht dauern reflek-
tieren, wie weit das große Ziel noch entfernt ist."


Du erkennst Dich enventuell wieder...?!


> Und auch beim Z80 ist die Programmierung viel komlexer,
> weil er mehr kann.

Komplexer -- verglichen womit?


> In dem Christiani-Lehrgang ist auch kein kompletter
> Befehlssatz. Und der von Zaks, gibt für einen Befehl
> mehrere Op-Codes an.

Quark.


> Es ist wirklich nicht einfach beschrieben.

Doch.
Es ist -- wie so oft -- zum Teil ein rein sprachliches Problem.

"...Wörter [sind] Abkürzungen für alte Denkvorgänge..."
(Tucholsky)

Wenn man über den Aufbau des Prozessors redet, würde ich
den Ausdruck "Befehl" vollkommen vermeiden.

Statt dessen gibt es die"Op-Codes"; sie werden in Form von
Zahlen (häufig Hex-Zahlen, aber auch oktal oder binär)
niedergeschrieben und repräsentieren eindeutig eine bestimmte
Verarbeitungsoperation im Prozessor. (Auch mögliche Präfix-
Bytes durchbrechen die Eindeutigkeit nur scheinbar.)

Außerdem gibt es "Mnemonics"; das sind kurze Buchstabenfolgen
(i.d.r. Abkürzungen englischer Worte), die einen Hinweis auf
den Sinn, den Inhalt des/der Op-Code(s) geben.
Die Mnemonic "LD" (für "load") ist beispielsweise ein Sammel-
becken für Dutzende unterschiedliche OpCodes. Wenn mich mein
Gedächtnis nicht verlassen hat, dann führt "LD A,n" zum
OpCode 0x3E, "LD A,(nnnn)" entspricht 0x3A, und "LD A,(HL)"
ergibt (...Mist. Jetzt muss ich doch nachschlagen...) 0x7E.

Unterschiedliche OpCodes -- unterschiedliche intere Wirkung --
unterschiedliche Operanden und Adressierungsarten -- aber
identische Mnemonic "LD".


Von "Befehlen" würde ich nur sprechen, wenn über den Aufbau
von Programmen diskutiert wird und der kleinste Bestandteil
eines solchen gemeint ist. ("...der letzte Befehl vor dem
relativen Sprung...").

von Hippelhaxe (hippelhaxe)


Lesenswert?

Falk B. schrieb:

> Auch wenn Assembler praktisch 1:1 in Maschinensprache
> übersetzt wird, liegen Welten dazwischen.

Für das Verständnis des angehenden Programmierers nicht.

(Für das Erstellen nützlicher Programme allerdings sehr
wohl.)


> Auch eben weil das Programm "Assembler" viele nützliche
> bzw. notwendige Hilfskonstruktionen bereitstellt, sei
> es zur Definition von Variablen oder diverse
> Assemblerdirektiven!

Variablentabelle kann man notfalls von Hand führen.

Der wichtigste Fortschritt beim Assembler ist m.E. das
selbsttätige Bestimmen der (absoluten) Speicheradressen
für die Befehle des Programmes: Versuche mal, im Hex-Code
irgendwo drei Befehle einzufügen, wenn Du nicht vorher
in weiser Voraussicht ein paar NOPs eingefügt hattest...

von Christoph M. (mchris)


Lesenswert?

Günther K. schrieb
>Jede Menge Tabellen die ich nicht verstehe,
>bin im Buch weiter nach vorne gegangen, (will nicht zuviel schreiben).
>Da stand zu Exponent und Mantisse,
>schrieb man im Buch(bei Gleitkommazahlen, für das Vorzeichen "S");
>ich habs nur erraten. Also "nichts","+" oder "-".
>Dann steht über BITS, MSD; was heist das?

Das erste, was man vielleicht verstehen muss, ist, dass man nicht alles 
verstehen muss.
Man muss mit kleinen Erfolgen anfangen. Kannst du das Gerät schon 
einschalten und kennst du schon einige Tasten, die man drücken muss?

von Peter D. (peda)


Lesenswert?

Günter K. schrieb:
>> Wie gesagt Papier, Bleistift, Radiergummi besorgen und dann Kapitel für
>> Kapitel im Z80-Buch durcharbeiten.

So habe ich auch angefangen zu assemblieren. Erst die Mnemoniks 
aufschreiben, dann die Befehle in Hex dahinter, dann die Adressen davor 
und dann die Sprünge abgezählt und eingetragen.
Und nach jeder Teilfunktion 10 Bytes freigelassen. Dann muß man bei 
Fehlern nicht alles neu schreiben, sondern fügt einen Sprung zur 
korrigierten Funktion ein. Die fehlerhafte wird ausge-NOPt. Dann muß man 
auch den EPROM nicht jedesmal löschen.
Das ist aber schon 40 Jahre her.

von Klaus (feelfree)


Lesenswert?

Christoph M. schrieb:
> an muss mit kleinen Erfolgen anfangen. Kannst du das Gerät schon
> einschalten und kennst du schon einige Tasten, die man drücken muss?

Ich glaube so weit ist er noch nicht.
Er befindet sich noch in der Geräteauswahlphase.
Danach kommt die Dokumentationsbeschaffungsphase.
Anfang 2026 wird dann ein erster Einschaltversuch unternommen.

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


Lesenswert?

Günter K. schrieb:
> Es erscheint mir alles viel zu viel

Zu viel gleichzeitig. Du springst wild hin und her zwischen den 
Fachthemen.

Der Umgang mit der PIO hilft dir nicht, die CPU zu verstehen. 
Andererseits will man wenigstens eine LED ansteuern, damit es etwas zu 
sehen gibt. Bei Mikrocontrollern wie den AVR ist das Ansteuern von LEDs 
ganz einfach, weil es CPU Register gibt, deren Bits 1:1 mit den I/O Pins 
verbunden sind.

Das Springen zwischen Büchern hilft nicht, dem Lehrpfad eines Autors zu 
folgen.

> CALL B0
ruft die Prozedur auf, die an Adresse B0 im Programmspeicher beginnt.

Ich möchte nochmal mein Assembler Tutorial für AVR empfehlen:
http://stefanfrings.de/avr_workshop/index.html

Eine simplere überschaubarere Hardware kann es nicht geben und du hast 
dort direkt einen fließenden Übergang zu größeren Arduino Modulen, die 
ebenfalls mit AVR bestückt sind und genau so programmiert werden.

Das Tutorial zeigt Schritt für Schritt, wie man mit dem Datenblatt und 
der Doku vom Befehlssatz voran kommt. Am Ende hat man ein kleines Spiel, 
das man den Enkeln schenken kann.

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


Lesenswert?

Hippelhaxe schrieb:
> Und der von Zaks, gibt für einen Befehl
>> mehrere Op-Codes an.
>
> Quark.

Wieso? Bei Intels 8080 Mnemotechnik gab es pro Befehl exakt einen 
Opcode, aber Zilog fasste z.B, alle Varianten der Addition unter ADD 
zusammen. Weshalb ADD diverse Opcodes hat.

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


Lesenswert?

Tipp: Der Google Übersetzer kann ganze PDF Dateien (wie Datenblätter und 
Befehlssätze) ins deutsche übersetzen.
https://translate.google.com/?hl=de&sl=auto&tl=de&op=translate

Dazu müssen sie allerdings Text enthalten. Eingescannte Telefaxe aus den 
80er Jahren sind dazu nicht geeignet.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Günter K. schrieb:

> Jede Menge Tabellen die ich nicht verstehe, bin im Buch
> weiter nach vorne gegangen, (will nicht zuviel schreiben).
> Da stand zu Exponent und Mantisse, [...]

???

Was machst Du denn? Hast Du in der 1. Klasse auch gleich
schon das Lösen partieller Differentialgleichungen gelernt,
oder vielleicht doch erstmal nur das Einmaleins?


> schrieb man im Buch(bei Gleitkommazahlen, für das
> Vorzeichen "S"); ich habs nur erraten. Also "nichts",
> "+" oder "-".
>
> Dann steht über BITS, MSD; was heist das?

Lass' doch um Himmels Willen erstmal den ganzen Krempel
weg, den Du für den Anfang nicht brauchst.


> Es erscheint mir alles viel zu viel,

Ja klar -- weil Du planlos von Problem zu Problem springst.

Ich habe vor über 40 Jahren mit einem geliehenen LC80
angefangen, und da ich erstmal kein Programmierhandbuch
dazu hatte, sondern nur die Bedingungsanleitung mit ein
paar Beispielprogrammen, war ich gezwungen, diese Beispiele
zu analysieren und die dort verwendeten Befehle (OpCodes
und Mnemonic) zu verstehen. Das waren wohl ungefähr ein
oder zwei Dutzend; damit musste ich auskommen.

"JMP" (0xC3) gehörte dazu, "JR" (0x18) auch, ebenso
"CALL" (0xCD) und "RET" (0xC9) -- wobei Unterprogrammtechnik
beim allerersten Anfang schon verzichtbarer Luxus ist.

Von "JC" und "JZ" weiss ich den OpCode nicht mehr, aber
bedingte Sprünge will man auch ganz zu Anfang haben --
kann man auch mit relativen Sprüngen machen, das vereinfacht
die Adressrechnerei bei Programmänderungen.

Was braucht man noch? 0x3E und 0x3A sowie die Gegenstücke
(deren OpCodes ich vergessen habe) sowie "INC A" und "DEC A".

"IN" und "OUT" wird man noch haben wollen; vielleicht auch
noch AND und ADD.

Das sind alles in allem vielleicht zwei Dutzend verschiedene
OpCodes -- und damit kann man funktionierende Programme
schreiben!
Ja -- die Programme sind Musterbilder an Umständlichkeit.
Richtig! -- Aber das ist ganz am Anfang, wo es darum geht,
das Prinzip zu begreifen, erstmal SCHEISSEGAL.

von Peter D. (peda)


Lesenswert?

Günter K. schrieb:
> Es gibt ICs die
> können selber das Nibbel-Bitmuster in 7-Segment umwandeln.

7-Segment Dekoder (SN74LS47) habe ich noch nie an CPUs oder µCs benutzen 
müssen. Das ist doch ne schöne Aufgabe, die sich bequem in Software 
erledigen läßt, Stichwort Tabellenzugriff. Der 8051 hat dafür einen 
eigenen Befehl (MOVC A, @A+DPTR).

von Hippelhaxe (hippelhaxe)


Lesenswert?

Peter D. schrieb:

> So habe ich auch angefangen zu assemblieren. Erst die
> Mnemoniks aufschreiben, dann die Befehle in Hex dahinter,
> dann die Adressen davor und dann die Sprünge abgezählt
> und eingetragen.
> Und nach jeder Teilfunktion 10 Bytes freigelassen. Dann
> muß man bei Fehlern nicht alles neu schreiben, sondern
> fügt einen Sprung zur korrigierten Funktion ein. Die
> fehlerhafte wird ausge-NOPt. Dann muß man auch den EPROM
> nicht jedesmal löschen.

Kommt mir teilweise sehr vertraut vor... :)

Faszinierend fand ich, dass ich bei der Zettel-und-Stift-
Entwicklung DRASTISCH weniger Fehler mache als beim
sofortigen Eintippen in den Computer.


> Das ist aber schon 40 Jahre her.

Das klingt wie eine Kritik...?!

Klavierschüler fangen auch nicht im ersten Jahr mit Rachmaninoff
an, sondern mit Übungen im Fünftonraum...

von Hippelhaxe (hippelhaxe)


Lesenswert?

(prx) A. K. schrieb:
> Hippelhaxe schrieb:
>> Und der von Zaks, gibt für einen Befehl
>>> mehrere Op-Codes an.
>>
>> Quark.
>
> Wieso?

Hatte ich wenige Zeilen weiter unten erklärt und begründet:
Das Wort "Befehl" hat keine ausreichende Unterscheidungskraft.
"OpCode" ist relativ eindeutig, und "Mnemonic" auch.

Ob "LD A,B" und "LD C,D" derselbe Befehl ist oder nicht, ist
Definitionssache, über die ich keine Lust habe zu streiten.

Die Mnemonic ist eindeutig dieselbe (nämlich "LD"), die OpCodes
sind eindeutig verschieden.

von Peter D. (peda)


Lesenswert?

Hippelhaxe schrieb:
>> Das ist aber schon 40 Jahre her.
>
> Das klingt wie eine Kritik...?!

Ich meinte:
Das ist nun schon 40 Jahre her.

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


Lesenswert?

Ich will niemanden beleidigen, aber dieser Gedanke geht mir seit einer 
Woche nicht aus dem Kopf:

Hat man mit 80 Jahren noch genug Lebenszeit übrig, die gesamte 
historische Entwicklung der Mikrocomputer nachzuvollziehen, um am Ende 
ungefähr den aktuellen Stand zu erreichen?

So, jetzt ist es raus.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:

> Hat man mit 80 Jahren noch genug Lebenszeit übrig,
> die gesamte historische Entwicklung der Mikrocomputer
> nachzuvollziehen,

Vermutlich nicht... die hat man schätzungsweise auch
mit 55 Jahren nicht mehr...


> um am Ende ungefähr den aktuellen Stand zu erreichen?

Du meinst, eine KI zu programmieren, die Bilder von
Menschen erzeugen kann, die siebenfingrige Hände haben
und bei Übelkeit Bierflaschen erbrechen?

Warum zum Teufel sollte man das wollen?

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Es geht mir ja darum, etwas -einfaches- zu haben.

Auf Tipps genau zu diesem Punkt gehst du ja gar nicht ein.

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


Lesenswert?

Hippelhaxe schrieb:
> Du meinst, eine KI zu programmieren

muss nicht ganz so weit gehen  denn da sind wir ja nicht mehr bei 
Mikrocontrollern.

> Warum zum Teufel sollte man das wollen?

Erkläre du es! Das war deine Idee.

: Bearbeitet durch User
von Roland F. (rhf)


Lesenswert?

Hallo,
Jobst M. schrieb:
> Hat hier eigentlich schon jemand den NDR Kleincomputer erwähnt?
> ...
> Den gibt es in den Geschmacksrichtungen
> Z80,
> 6502,
> 68000/08/20,
> 8080,
> 8088,
> HD64180,
> 8032,
> 6800/9,
> 8086,
> Z8000,
> NS320xx

Bring ihn nicht auf falsche Gedanken, du bist gerade dabei die Büchse 
der Pandora zu öffnen

rhf

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


Angehängte Dateien:

Lesenswert?

Viel zu wenig Herausforderung...

ich schlage vor: Cosmac Elf (1802 ganz ohne Betriebssystem und Monitor) 
oder MMD1 - 8080 in Oktal programmieren.

von (prx) A. K. (prx)


Lesenswert?

Wolfgang R. schrieb:
> ich schlage vor: Cosmac Elf (1802 ganz ohne Betriebssystem und Monitor)

Der lässt sich übersichtlich direkt in Hex programmieren, ohne auf einen 
Assembler zurückgreifen zu müssen. Und hat einen übersichtlichen 
Befehlssatz.

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


Lesenswert?

(prx) A. K. schrieb:
> direkt in Hex

Direkt in Binär. Über Kippschalter. Härter geht nicht.

von (prx) A. K. (prx)


Lesenswert?

Ja, aber die Anzeige ist Hex.

Die LED neben der Datenanzeige ist Q?

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


Lesenswert?

(prx) A. K. schrieb:
> Ja, aber die Anzeige passt nicht dazu, die ist Hex.

Mist, ja stimmt, da ist der MMD1 konsquenter....

(prx) A. K. schrieb:
> Die LED neben der Datenanzeige ist Q?

Ja.

von Christoph M. (mchris)


Lesenswert?

Auch gut zum Lernen könnte die Tastenprogrammierbare Steuerung von 
Kainka sein:
https://www.elektronik-labor.de/Lernpakete/TPS/TPS0.html
Dafür gibt es auch einen Emulator:
https://wkla.no-ip.biz/hosting/vtps/index.html

: Bearbeitet durch User
von Klaus F. (klaus27f)


Lesenswert?

Günter K. schrieb:
> .
> Das Manual vom MPF-1 habe ich nicht.
> LG. Enk


Lieber Günter,
Du hast den MPF-1.
Du hast damit bereits erfolgreich ein Uhrenprogramm abgetippt und 
gestartet.
Vor einigen Tagen hat dir "soul eye" alle Links zu den Manuals hier 
angegeben, mit dem deutschsprachigen Christiani Lehrgang.
Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"

Auf was wartest du?
Damit kannst du loslegen, der MPF-1 ist ein Super Lehrsystem.

Bleib erstmal dabei.
Vermischung mit anderen uP, anderen Assemblersprachen und 
komplizierteren Peripherie-ideen bringt dich momentan nicht weiter.
Mit dem vorhandenen System bist du gut aufgdstellt und hast Tage oder 
Wochen gute Lehrarbeit vor dir.

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Hat man mit 80 Jahren noch genug Lebenszeit übrig, die gesamte
> historische Entwicklung der Mikrocomputer nachzuvollziehen, um am Ende
> ungefähr den aktuellen Stand zu erreichen?

Man könnte es ja in Relation zu einem Studium der Technische Informatik 
setzen, welches mit 4.5 a abgefrühstückt sein sollte. Die 
durchzschnittliche Restlaufzeit für 80 jährigen beschwanzten Deutschen 
liegt bei 7,88 a (Sterbetafel 2023). Passt also.

https://de.statista.com/statistik/daten/studie/1783/umfrage/durchschnittliche-weitere-lebenserwartung-nach-altersgruppen/

von Falk B. (falk)


Lesenswert?

Günter K. schrieb:
> Arduinos, habe ich auch. Warum ich das nicht kapiere,
> weiß ich auch nicht.

Ich schon . . .

> Um es aber wirklich zu verstehen,
> muss ich ins Eingemachte also den Prozessor selbst, auch beim Arduino.

Nö, im Gegenteil. Man fängt "ganz oben" an, auf der Arduino-Ebene mit 
seinen Funktionen. digitalWrite, digitalRead. Damit kannst du alles 
machen, was du in deiner Situation brauchst und vielleicht auch noch 
verstehen kannst. OK, ein paar Grundkonstrukte von C braucht es auch, 
allen voran if(). Damit kannst du dein Uhr bauen und noch viel mehr.

https://docs.arduino.cc/language-reference/de/

Schau an, die Doku gibt es sogar auf Deutsch! Viel Glück, du wirst es 
brauchen.

von Falk B. (falk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Hat man mit 80 Jahren noch genug Lebenszeit übrig, die gesamte
> historische Entwicklung der Mikrocomputer nachzuvollziehen, um am Ende
> ungefähr den aktuellen Stand zu erreichen?
>
> So, jetzt ist es raus.

Du bist ja mutig! Aber mal wieder eher langsam.

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

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


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Nö, im Gegenteil. Man fängt "ganz oben" an, auf der Arduino-Ebene mit
> seinen Funktionen. digitalWrite, digitalRead. Damit kannst du alles
> machen, was du in deiner Situation brauchst und vielleicht auch noch
> verstehen kannst. OK, ein paar Grundkonstrukte von C braucht es auch,
> allen voran if(). Damit kannst du dein Uhr bauen und noch viel mehr.

Naja...
Man kann auch in der Arduinowelt direkt mit ASM starten. Siehe Anhang.
Vorgesehen ist das allerdings nicht, wird aber unterstützt.

Vorgesehen ist C++ für Anwendungen. Wird am breitesten unterstützt.
Auch C geht.

digitalWrite, digitalRead sind z.B. in C geschrieben
Die meisten Libs sind in C++ abgefasst.

von Falk B. (falk)


Lesenswert?

Arduino F. schrieb:
> Naja...
> Man kann auch in der Arduinowelt direkt mit ASM starten.

Kann man. Aber ob das für den OP sinnvoll oder gar MÖGLICH ist, wage ich 
zu bezweifeln.

von Cyblord -. (cyblord)


Lesenswert?

Arduino F. schrieb:
> Man kann auch in der Arduinowelt direkt mit ASM starten

Nur ist man dann nicht mehr in der Arduino Welt.

Trotzdem ist ASM auf einem AVR keine schlechte Idee die Grundlagen von 
Rechnerarchitekturen zu verstehen. Einfach genug ist es dafür.

von Falk B. (falk)


Lesenswert?

Cyblord -. schrieb:
> Trotzdem ist ASM auf einem AVR keine schlechte Idee die Grundlagen von
> Rechnerarchitekturen zu verstehen. Einfach genug ist es dafür.

Stimmt. Dann nimmt man aber nicht die Arduino-IDE sondern das olle 
Atmelstudio oder das neue Microchip Studio, denn dort ist auch der 
Simulator schon mit drin. Einfacher geht es kaum. Aber für den OP 
vermutlich zu viel oder zu "neu", er hat ja eine Vorliebe für CPUs der 
1970er . . .

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


Lesenswert?

Falk B. schrieb:
> Dann nimmt man aber nicht die Arduino-IDE sondern das olle Atmelstudio
> oder das neue Microchip Studio, denn dort ist auch der Simulator schon
> mit drin. Einfacher geht es kaum

Eben deswegen habe ich mein Assembler Tutorial ein zweites nal 
empfohlen.

Upps, jetzt 3x 😅

von Cyblord -. (cyblord)


Lesenswert?

Falk B. schrieb:
> Stimmt. Dann nimmt man aber nicht die Arduino-IDE sondern das olle
> Atmelstudio oder das neue Microchip Studio

Korrekt.

Sherlock 🕵🏽‍♂️ schrieb:
> Eben deswegen habe ich mein Assembler Tutorial ein zweites nal
> empfohlen.

Ich habe den Eindruck, sinnvolle Tipps kommen beim TE nicht an.

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


Lesenswert?

Cyblord -. schrieb:
> Nur ist man dann nicht mehr in der Arduino Welt.

Die Arduino Welt besteht aus einer Menge Boards, von vielen Herstellern 
und quasi ebenso vielen verschiedenen µC, von 8 Bit bis 64 Bit.

Aus 4(?) verschiedenen IDEs

Aus min. 2 verschiedenen Frameworks. Einmal das übliche, mehr oder 
weniger dem Arduino AVR Framework/Core entsprechend, und einmal extra 
für SPS.


Auch wenn man da das Framework weglässt, ist man immer noch in der Welt. 
Verzichtet nur auf einen großteil Komfort

von Hippelhaxe (hippelhaxe)


Lesenswert?

Wolfgang R. schrieb:
> (prx) A. K. schrieb:
>> direkt in Hex
>
> Direkt in Binär. Über Kippschalter. Härter geht nicht.

Das war jetzt gemein.
Wie soll ich denn diese fixe Idee wieder loswerden...?

von (prx) A. K. (prx)


Lesenswert?

Hippelhaxe schrieb:
> Wie soll ich denn diese fixe Idee wieder loswerden...?

An solchen Rechnerlein kann man üben, wie man ROM-lose Rechner startet. 
Startprogramm per Klaviatur ins RAM schreiben und dann Reset.

Die 1802 CPU hatte einen eigens für sowas gebauten Load-Modus. Ich hatte 
das mal genutzt, um auf ein selbst gebautes ROM-loses 1802 Teil über 
eine serielle Schnittstelle das Programm vor dem Reset ins RAM schreiben 
zu können.

: Bearbeitet durch User
von Hippelhaxe (hippelhaxe)


Lesenswert?

(prx) A. K. schrieb:

> Hippelhaxe schrieb:
>> Wie soll ich denn diese fixe Idee wieder loswerden...?
>
> An solchen Rechnerlein kann man üben, wie man ROM-lose
> Rechner startet. Startprogramm per Klaviatur ins RAM
> schreiben und dann Reset.

Genau.

Muss eigentlich auch mit einem Z80 gehen: CPU per
Busrequest in Schockstarre versetzen, SRAM beschreiben
und dann los.

SRAM könnte gern batteriegestützt sein, damit man nicht
jedes Mal von vorn anfängt; vielleicht kann man auch
parallele EEPROMs oder FRAMs dranklöppeln...

von (prx) A. K. (prx)


Lesenswert?

Hippelhaxe schrieb:
> Muss eigentlich auch mit einem Z80 gehen: CPU per
> Busrequest in Schockstarre versetzen, SRAM beschreiben
> und dann los.

Irgendwo oben findet sich ein Link auf ein Platinchen mit einem PIC 
Mikrocontroller zusätzlich zum eigentlichen Mikroprozessor. Der wird 
vmtl genau das machen. Ist etwas unzeitgemäss.

Meine 1802 Lösung verwendete dazu den LOAD Modus in Verbindung mit einem 
per Pins statt Register konfigurierbaren AY-3-1015 als 
Async-Schnittstelle. Mehr war nicht nötig. Und natürlich CD4000 als 
Logikbausteine, keine systemfremden TTLs.

Hippelhaxe schrieb:
> damit man nicht jedes Mal von vorn anfängt

Liegt dabei im Flash vom PIC oder AVR, der auch als Bootloader dient.

: Bearbeitet durch User
von Hippelhaxe (hippelhaxe)


Lesenswert?

(prx) A. K. schrieb:

> Hippelhaxe schrieb:
>> Muss eigentlich auch mit einem Z80 gehen: CPU per
>> Busrequest in Schockstarre versetzen, SRAM beschreiben
>> und dann los.
>
> Irgendwo oben findet sich ein Link auf ein Platinchen
> mit einem PIC Mikrocontroller zusätzlich zum eigentlichen
> Mikroprozessor. Der wird vmtl genau das machen. Ist etwas
> unzeitgemäss.

Ja.
Der PIC wird wieder einen PC als Entwicklungssystem brauchen,
und das finde ich nicht schön. Kommt mir immer so vor, als
verwende man ein CNC-Bearbeitungszentrum, um eine Zaunlatte
gerade abzuschneiden...
Wer aus Spaß an der Freude handwerkelt, sollte das auch mit
einer ordinären Säge können...


> Meine 1802 Lösung verwendete dazu den LOAD Modus in
> Verbindung mit einem per Pins statt Register
> konfigurierbaren AY-3-1015 als Async-Schnittstelle. Mehr
> war nicht nötig. Und natürlich CD4000 als Logikbausteine,
> keine systemfremden TTLs.

Setzt halt auch eine serielle Datenquelle für den
Boot-Code voraus.

von (prx) A. K. (prx)


Lesenswert?

Hippelhaxe schrieb:
> Setzt halt auch eine serielle Datenquelle für den
> Boot-Code voraus.

Ja. Die Zeit, als ich vor meinem AIM65 sass und direkt darauf 
entwickelte, mit Kassettenrecorder als Massenspeicher, ist 
glücklicherweise vorbei. Schon damals war etwas wie der KIM-1 zu 
umständlich.

Wenn ich also schon aus Jux mit Urschleim bastele, dann nicht zu extrem.

: Bearbeitet durch User
von Hippelhaxe (hippelhaxe)


Lesenswert?

(prx) A. K. schrieb:

> Hippelhaxe schrieb:
>> Setzt halt auch eine serielle Datenquelle für den
>> Boot-Code voraus.
>
> Ja. Die Zeit, als ich vor meinem AIM65 sass und direkt darauf
> entwickelte, mit Kassettenrecorder als Massenspeicher, ist
> glücklicherweise vorbei. Schon damals war etwas wie der KIM-1
> zu umständlich.
>
> Wenn ich also schon aus Jux mit Urschleim bastele, dann nicht
> zu extrem.

Nix dagegen; jeder, wie er mag.

Ich finde halt den Gedanken faszinierend, ein System zur
Verfügung zu haben, das ohne fremde SOFTWARE auskommt. Die
Hardware darf gern halbwegs zeitgemäß sein...

Kassettenrecorder als Massenspeicher würde ich mir mangels
Kassetten und mangels Recorder auch nicht mehr antun wollen...

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


Lesenswert?

Hippelhaxe schrieb:
> jeder, wie er mag.
Das auch!

Ansonsten: Jeder wie sie/er/es kann!

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
> Das erste, was man vielleicht verstehen muss, ist, dass man nicht alles
> verstehen muss.
Hallo Christoph M.
Danke für die guten Tipps. Vielleicht ist sein Buch für den 6502 ja 
besser.

Wozu dient eine Sprache, wenn man weder Zeichen noch Wörter
zu verstehen braucht?
LG Enk

von Günter K. (enk)


Lesenswert?

Hippelhaxe schrieb im Beitrag #775926


> Genau.
>
> Muss eigentlich auch mit einem Z80 gehen: CPU per
> Busrequest in Schockstarre versetzen, SRAM beschreiben
> und dann los.
>
> SRAM könnte gern batteriegestützt sein, damit man nicht
> jedes Mal von vorn anfängt; vielleicht kann man auch
> parallele EEPROMs oder FRAMs dranklöppeln...

Hallo Hippelhaxe,
Danke für Deinen Beitrag. Danke für die Tipps.
welche Bauteile kriegt man heute noch dafür?
Gibt es noch EEPROMs oder FRAMs zu kaufen?
Gibt es Tricks um die heutige Schnelligkeit in etwa zu benutzen.
Du hast Dir ja schon die richtigen Gedanken dazu gemacht,
das finde ich sehr gut.

LG. Enk

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Danke für die Tipps.

Die Tipps nutzen dir gar nichts.
Du weißt doch jetzt gar nicht mehr, was du anschauen sollst.

Also nochmal: Nimm deinen MPF-1, Doku ist oben verlinkt in Deutsch.

Und ignoriere ab sofort ALLE anderen Tipps.

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


Lesenswert?

Günter K. schrieb:
> welche Bauteile kriegt man heute noch dafür?
> Gibt es noch EEPROMs oder FRAMs zu kaufen?
> Gibt es Tricks um die heutige Schnelligkeit in etwa zu benutzen.
> Du hast Dir ja schon die richtigen Gedanken dazu gemacht

Für dich sind das die falschen Gedanken, weil sie dich wieder auf den 
falschen Weg bringen (vom aktuellen Lernsystem ablenken).

EEPROM waren unbezahlbar teuer, als dein Lernsystem aktuell war, also 
praktisch nicht existent. FRAM wurden erst viel später erfunden, ich 
glaube um 2005 herum.

Auf die Z80 Architektur zu wechseln macht für dich im Moment nur dann 
Sinn, wenn sie zu einer erheblich simpleren Schaltung führt, die dich 
weniger vom Assembler ablenkt, als der aktuelle Lerncomputer. Das sehe 
ich hier nicht gegeben.

: Bearbeitet durch User
Beitrag #7759537 wurde vom Autor gelöscht.
von Jens B. (dasjens)


Lesenswert?

Schau dir Dieses Video an:
https://www.youtube.com/watch?v=kqGNVuqevkY&t
Etwas gewöhnungsbedürftig, aber die Beispiele zeigen wie es geht einen 
Emulator zu schreiben.
Damit kann man auch die Grundlagen (hoffe ich, ich kenn sie ja schon^^) 
einigermassen verstehen.

Und danach: machen, einfach machen.
Machen ist wie wollen, nur krasser.

von Falk B. (falk)


Lesenswert?

Mal sehen wie lange es dauert, bis die Leute mit Helfersyndrom merken, 
daß sie mit einem verwirrten Menschen sprechen, der nie und nimmer was 
sinnvolles mehr zustande bringen wird, egal welche Tips man ihm gibt. 
Oder sie einfach nur von einem ganz guten Troll veralbert werden.

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


Lesenswert?

Jens B. schrieb:
> Machen ist wie wollen, nur krasser.

Tausend mal schaut der Wille durchs Fenster, bis die Tat durch die Tür 
schreitet.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Günter K. schrieb:
> Vielleicht ist sein Buch für den 6502 ja
> besser.

Ich wuerde sagen, die sind gleichgut.

Gruss
WK

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


Lesenswert?

Falk B. schrieb:
> Mal sehen wie lange es dauert, bis die Leute mit Helfersyndrom
> merken,
> daß sie mit einem verwirrten Menschen sprechen, der nie und nimmer was
> sinnvolles mehr zustande bringen wird, egal welche Tips man ihm gibt.
> Oder sie einfach nur von einem ganz guten Troll veralbert werden.

Ob ein Mensch ein Gentleman ist, erkennt man an seinem Benehmen 
denjenigen Menschen gegenüber, von denen er keinen Nutzen hat.
Quelle: William Lyon Phelps

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


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Auf die Z80 Architektur zu wechseln ...

Vergiss den Satz, der MPF-1 ist ja ein Z80. Jetzt bin ich auch schon 
durcheinander vor lauter Architekturen.

Der Satz müsste mit "Auf eine andere Architektur zur zu wechseln ..." 
beginnen, dann wäre er passend

Alles was von dem MPF-1 weg führt, egal wie toll, sollte von jetzt an 
gemieden werden. Sonst dreht sich der Günter noch länger ihm Kreis, bis 
ihm so schwindelig ist, dass er umkippt.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Arduino F. schrieb:
> Ob ein Mensch ein Gentleman ist, erkennt man an seinem Benehmen
> denjenigen Menschen gegenüber, von denen er keinen Nutzen hat.
> Quelle: William Lyon Phelps

Wahre Worte sind nicht schön.
Schöne Worte sind nicht wahr.

Laotse

von Rbx (rcx)


Lesenswert?

Günter K. schrieb:
> Arduino F. schrieb:
>> Günter K. schrieb:
>>> Nun, ja, das Buch zum 8086 war bzw. ist schon sehr Verheißungsvoll,
>>> und es beginnt damit, ein Zeichen auf den Bildschirm zu bringen.
>>> Leider habe ich nicht das Betriebsystem dazu;
>> Hier ist es, dein neues Betreibsystem: https://www.menuetos.net/
>
> Lustig! Ich nehme an es an es ist ein Scherz. :-))
>
> Die Programme zu diesem Buch werden zwar geladen,
> laufen aber nicht, weil das Windows-Betriebsystem zu hoch ist.
> Vermutlich unter DOS. Das kann WINDOS 10 nicht mehr.

Das hier muss man doch nochmal aufspießen: Das ist ein eigenständiges, 
in Assembler (https://flatassembler.net) programmiertes System, das 
normalerweise auf Diskette geladen werden kann, weil der Code so sparsam 
ist.
Das heißt, das ist kein Windows Programm, und auch kein DOS Programm. Es 
ist ein eigenes OS. Für sowas gibt es u.a. hervorragende PC-Emulatoren 
(wie Bochs (https://bochs.sourceforge.io), oder (z.B.) im VM-Ware-Player 
läuft das auch ganz gut.

von Günter K. (enk)


Lesenswert?

Hallo Leute,

heute habe ich ein par Sachen eingekauft, mal sehen,
was ich damit machen kann. U.a.:

Ein Raspberry Pi Pico WH (C) 2022
FCC ID  2ABCB.PICOW
  IC.20953.PICOW

In diesem Falle ist es kein PC.

Links oben ist eine
LED    Ein Stück
   darunter ist ein
   BOOTSEL(Schalter)                                   R'= Raspberry Pi

Leider kann ich nicht lesen was auf dem mittleren schwarzen R'Chip 
steht.
Unten rechts neben dem quadratischen R'Chip steht: DEBUG
Es hat einen Trapezförmigen USB-Anschluss.
Habe aber kein weiteres Dokument dazu.
(Meine Güte, was sind die Bauteile klein!)

Gibt es Programme oder Schaltungen, die man nicht debuggen muss?
LG Enk

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Günter K. schrieb:
> Gibt es Programme oder Schaltungen, die man nicht debuggen muss?

Wenn man's beim ersten Mal gleich richtig macht, muss man auch nix 
debuggen.

scnr,
WK

von Günter K. (enk)


Lesenswert?

Dergute W. schrieb:
> Moin,
>
> Günter K. schrieb:
>> Gibt es Programme oder Schaltungen, die man nicht debuggen muss?
>
> Wenn man's beim ersten Mal gleich richtig macht, muss man auch nix
> debuggen.
>
> scnr,
> WK

DANKE
LG. Enk

von Klaus (feelfree)


Lesenswert?

O.M.G.

Beitrag #7759622 wurde vom Autor gelöscht.
von Günter K. (enk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Alles was von dem MPF-1 weg führt, egal wie toll, sollte von jetzt an
> gemieden werden. Sonst dreht sich der Günter noch länger ihm Kreis, bis
> ihm so schwindelig ist, dass er umkippt.

DANKESCHÖN!
LG. Enk

von Günter K. (enk)


Lesenswert?

Cyblord -. schrieb:
> Günter K. schrieb:
>> Es geht mir ja darum, etwas -einfaches- zu haben.
>
> Auf Tipps genau zu diesem Punkt gehst du ja gar nicht ein.

Hallo Cyblord,
vieles, ist eben nicht so einfach, sonst würde ich nicht weiter fragen.
Mal sehen, was der neue µC Pico von Raspberry Pi bringt.
LG. Enk

von Günter K. (enk)


Lesenswert?

Rbx schrieb:
Das heißt, das ist kein Windows Programm, und auch kein DOS Programm. 
...
Günter K schrieb:
> Vermutlich unter DOS. Das kann WINDOS 10 nicht mehr.
Das Buch fragt nach DOS, also werde ich kein anderes Betriebssystem 
nehmen.
Also, ich sehe wirklich den guten Rat,
aber in diesem Fall geht es ja um DOS, worüber dann das Assembler läuft.
Ich hatte mir sagen lassen, die DOSBOX funktioniert auch bei LINUX.
Probiert habe ich es noch nicht.
Selbstverständlich habe ich den MPF-1 nicht vergessen, und ich weiß,
dass es auch hier ein ganz anders Assembler ist.
Hier handelt es sich um den 8086. Eine Entwicklung die bis in unsere 
Zeit führt.

Und Falk, Dich spreche ich noch einmal extra an.
Hier in diesem Beispiel, ist ein Grund, warum ich an dieser Stelle
einen Rat für meinen Fall hier, nicht annehme; wobei ich nichts gegen 
das neue Betriebsystem sage. Und auch garnichts gegen Dich Rbx sage.
LG. Enk

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Also, ich sehe wirklich den guten Rat,
> aber in diesem Fall geht es ja um DOS, worüber dann das Assembler läuft.
> Ich hatte mir sagen lassen, die DOSBOX funktioniert auch bei LINUX.
> Probiert habe ich es noch nicht.
> Selbstverständlich habe ich den MPF-1 nicht vergessen, und ich weiß,
> dass es auch hier ein ganz anders Assembler ist.
> Hier handelt es sich um den 8086. Eine Entwicklung die bis in unsere
> Zeit führt.

Du entfernst dich mit jeden neuen Beitrag weiter von deinem Ziel.
Das wird so nix.

von Thomas Z. (usbman)


Lesenswert?

Günter K. schrieb:
> Mal sehen, was der neue µC Pico von Raspberry Pi bringt

Wieso kaufst du so ein Teil wenn du kein Englisch kannst? Das Datenblatt 
gibt es nicht auf deutsch.
https://cdn-reichelt.de/documents/datenblatt/A300/RASPBERRY_PI_PICO_DB_EN.pdf

Hier eine gut gemachte Übersicht auf Deutsch mit Beispielen:
https://www.elektronik-kompendium.de/sites/raspberry-pi/2604131.htm

Zitat:
"Er lässt sich mit MicroPython, CircuitPython, C/C++ und Visual Studio 
Code programmieren" Also nichts mit Assembler obwohl das natürlich auch 
geht.

Ich hätte ja ein MFA System vorgeschlagen. Das ist ein System auf 8085 
was in der Ausbildung bei den Elektronik Berufen in den 90er verwendet 
wurde. Der große Vorteil ist dass es didaktisch sehr gut aufgebaute 
Literatur auf Azubi Niveau gibt. Mit dem Bussignalgeber konnte man das 
Ding in Singlestep betreiben und  jedem Byte zuschauen. Betrieben wurde 
das Sytem über die V24 Schnittstelle mit einem ganz normalen Terminal 
Programm. Der grosse Nachteil ist, dass die Systeme auf Ebay immer noch 
sehr teuer sind und sehr oft ziemlich verbastelt wurden. Ich hab mir mal 
vor Zeiten ein MFA System gebaut was CPU RAM ROM und V24 auf einer 
100x100 Platine vereint. Da geht aber einiges an Lernefekt verloren.

https://www.mfa-8085.de/

von Günter K. (enk)


Lesenswert?

Falk B. schrieb:
> Mal sehen wie lange es dauert, bis die Leute mit Helfersyndrom
> merken,
> daß sie mit einem verwirrten Menschen sprechen, der nie und nimmer was
> sinnvolles mehr zustande bringen wird, egal welche Tips man ihm gibt.
> Oder sie einfach nur von einem ganz guten Troll veralbert werden.
Überflüssig s. o. - !
Vorhin war es ein Beispiel warum ich einen Rat zu diesem Zweck nicht 
angenommen habe. Wobei dieser Rat ohne weiters weiters nützlich sein 
kann.
Enk.

Beitrag #7759690 wurde vom Autor gelöscht.
von Günter K. (enk)


Lesenswert?

Cyblord -. schrieb:
> Ich habe den Eindruck, sinnvolle Tipps kommen beim TE nicht an.
Doch, der Tip ist doch gut, warum soll das bei mir nicht ankommen?
Welche MC mit welcher einfachen CPU würdest Du bzw. Ihr vorschlagen?
LG. Enk

von Günter K. (enk)


Lesenswert?

Hallo Cyblord,
vieles, ist eben nicht so einfach, sonst würde ich nicht weiter fragen.
Mal sehen, was der neue µC Pico von Raspberry Pi bringt.
Bin ich hier auf dem richtigen Gleis?
LG. Enk

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


Lesenswert?

Günter K. schrieb:
> Bin ich hier auf dem richtigen Gleis?

Ja klar!
32Bit Dualcore Risc Maschinen sind total ASM freundlich.

von Günter K. (enk)


Lesenswert?

Arduino F. schrieb:
> Günter K. schrieb:
>> Bin ich hier auf dem richtigen Gleis?
>
> Ja klar!
> 32Bit Dualcore Risc Maschinen sind total ASM freundlich.
DANKESCHÖN!
LG Enk

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


Lesenswert?

Günter K. schrieb:
> DANKESCHÖN!

Übrigens:
Das mit menuetos war kein Witz, sondern ernst.
Aber das mit dem ASM freundlich war bitterer Sarkasmus.

von Günter K. (enk)


Lesenswert?

Arduino F. schrieb:
> Günter K. schrieb:
>> DANKESCHÖN!
>
> Übrigens:
> Das mit menuetos war kein Witz, sondern ernst.
> Aber das mit dem ASM freundlich war bitterer Sarkasmus.

Hallo Arduino F.,

oooh, wie soll ich das, - nur verstehen - ?
Arduino F., was hälst Du denn von Arduino?

Nun muss ich ins Bett,
bis später.

von Michael (Gast)


Lesenswert?

Günter K. schrieb:
> der neue µC Pico von Raspberry Pi bringt.

>> Aber das mit dem ASM freundlich war bitterer Sarkasmus.

> oooh, wie soll ich das, - nur verstehen - ?

Du?
Wahrscheinlich garnicht.
Bis ich Dir erklärt habe warum ein 32bit dualcore RISC nur von 
autistischen Masochisten mit ASM programmiert wird, bist Du bereits 
dabei Infos zum Transputer zusammenzutragen, mit dem Du Dich unbedingt 
beschäftigen willst.

Und diese Endlosschleife dreht sich weiter und weiter und weiter.
Nur das Du niemals irgendeine CPU verstehen und programmieren wirst.
Weil Dein Fokus von CPU zu CPU zur nächsten Aufgabe, zum nächsten 
Teilproblem zur nächsten Architektur zum nächsten Projekt springt.
Unfähig mal lange genug zu verweilen um die Informationen korrekt zu 
verarbeiten die Dir gegeben werden.

Wir können uns endlos mit Deinem Aufmerksamkeitsdefizit beschäftigen, 
oder Dich ziehen lassen.
Ist ja egal was man sagt.
Du hast es vergessen so bald Dich das nächste triggert.
Wie eine Katze die einen Laserpointer jagt.

von (prx) A. K. (prx)


Lesenswert?

Michael schrieb:
> Infos zum Transputer zusammenzutragen

Transputer in Assembler, das hat was ;). Das ist was für Laberköppe ob 
der Geschwätzigkeit. Es geht, führt aber leicht zu Code, den man nur 
schreiben aber nicht mehr lesen kann. Da schreibt man lieber erst einen 
Compiler für.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Günther K. schrieb:
>heute habe ich ein par Sachen eingekauft, mal sehen,
>was ich damit machen kann. U.a.:

>Ein Raspberry Pi Pico WH (C) 2022
>FCC ID  2ABCB.PICOW
>  IC.20953.PICOW

Das Problem ist, dass es vielleicht zu viele Handgriffe sind, so ein 
System in Betrieb zu nehmen.

Du kannst es aber damit probieren:
https://projects.raspberrypi.org/en/projects/get-started-pico-w/1

Hier gibt es eine Anleitung auf Deutsch für das LED-Blink Programm. Die 
sollte funktionieren, wenn man das Programmiersystem wie oben 
installiert hat.
https://www.elektronik-kompendium.de/sites/raspberry-pi/2707041.htm

von Peter D. (peda)


Lesenswert?

Vergiß das alte Z80 Geraffel, dazu findest Du nur wenig für Einsteiger 
taugliches und auch wenig in deutsch.
Der Kieser Meder aus der DDR zum Z80 ist doch sehr theoretisch 
aufgebaut. Es ist also sehr schwer, mit dem Z80 zu basteln, da er ja nur 
eine CPU ist und haufenweise externe Beschaltung braucht:
https://www.amazon.de/Mikroprozessortechnik-Aufbau-Anwendung-Mikroprozessorsystems-U880/dp/B0029I3YOU

Viel bastlerfreundlicher sind daher µCs, z.B. die MCS51-Serie. Dazu gibt 
es viel Einsteigerliteratur in deutsch. Sehr bekannt ist das Kochbuch:
https://www.amazon.de/Microcontroller-Kochbuch-MCS51-Andreas-Roth/dp/3826607228
Die Tools auf der CD werden wohl nur noch unter DOSBox laufen.
Man braucht auch kein großes Entwicklungsboard mehr, ein AT89C51RB2 hat 
alles onboard. Mit Flip lädt man ein Programm über die UART in dessen 
Flash.
https://www.digikey.de/de/products/detail/microchip-technology/AT89C51RB2-3CSUM/1245778

Die MCS51 lassen sich sehr bequem in Assembler programmieren. Z.B. haben 
sie schon 8Bit Multiplikation und Division, sowie Befehle für Daten- und 
Sprungtabellen.

Noch ohne PC lernen, entwickeln, programmieren, debuggen zu wollen ist 
aber nur was für extrem schmerzbefreite. Im Alter hat man für sowas 
keine Kraft mehr und erst recht nicht mehr die Zeit.

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


Lesenswert?

Günter K. schrieb:
> Ein Raspberry Pi Pico

Ich kann dazu nur den Kopf schütteln. 🤦

Mehrere Leute haben dir davon abgeraten. Der RP2040 ist für den Anfang 
viel zu komplex, zu neu, nicht für Assembler gedacht, und nicht auf 
deutsch dokumentiert.

Günter K. schrieb:
> Bin ich hier auf dem richtigen Gleis?

ganz sicher: nein

: Bearbeitet durch User
von Peter B. (funkheld)


Angehängte Dateien:

Lesenswert?

Damit spiele ich manchmal stundenlang.
Einfach super.

Gruss

von Peter D. (peda)


Lesenswert?

Günter K. schrieb:
> heute habe ich ein par Sachen eingekauft, mal sehen,
> was ich damit machen kann. U.a.:
>
> Ein Raspberry Pi Pico WH (C) 2022
> FCC ID  2ABCB.PICOW
>   IC.20953.PICOW

Du verarscht uns doch.
Was soll dann das ganze Gerede von Assembler.
Das paßt hinten und vorne nicht zusammen.

von Christoph M. (mchris)


Lesenswert?

Peter D. (peda)
>Du verarscht uns doch.
>Was soll dann das ganze Gerede von Assembler.
>Das paßt hinten und vorne nicht zusammen.

Ihr seit zu befehlshörig. Der Kunde weiß oft nicht was er will, deshalb 
muss man "out of the box" denken und dem Kunden das für ihn Passende 
anbieten.
Ich gehe davon aus, dass Günther denkt, moderne Programmiersprachen sind 
zu kompliziert und Assembler wäre das einfachste. Wenn er den PiPico mit 
Micropython ausprobiert und erst mal sieht, wie einfach damit eine LED 
anzusteuern ist, ändert er seine Meinung vielleicht.

von Michael (Gast)


Lesenswert?

Christoph M. schrieb:
> Ich gehe davon aus, dass Günther denkt
Die einen sagen so, die anderen so.

Christoph M. schrieb:
> ändert er seine Meinung vielleicht.
Mit Sicherheit!
Günther ändert seine Meinung auch mehrfach im Satz.
Deswegen kommt er ja nicht zu Potte.

von Falk B. (falk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
>> Bin ich hier auf dem richtigen Gleis?
>
> ganz sicher: nein

Es fährt ein Zug, nach Nirgendwo . . . ;-)

von Falk B. (falk)


Lesenswert?

Michael schrieb:
> Günther ändert seine Meinung auch mehrfach im Satz.

Das nennt man heute opinion fluid . . .

von Thorsten R. (halogenfan)


Lesenswert?

Schau Dir mal den Commander X16 an. Das ist vielleicht genau das, was Du 
suchst? Ein moderner retro Lern- und Spielcomputer mit aktueller 
Hardware.

https://8bit-museum.de/der-neue-retro-computer-commander-x16/

Es gibt auch eine Website und mehrere YouTube Videos dazu.

von Michael (Gast)


Lesenswert?

Thorsten R. schrieb:
> Commander X16

W65C816S
8/16–bit Microprocessor

Super Wahl!
Den kennt dann wirklich keiner und Günther kann nach Herzenslust alles 
selber lernen und herausfinden.
Man sollte als blutiger Anfänger immer eine möglichst obskure und 
maximal komplizierte Wahl treffen damit man völlig unbeeinträchtigt von 
anderen lernen kann.

von Falk B. (falk)


Lesenswert?

Michael schrieb:
> W65C816S
> 8/16–bit Microprocessor
>
> Super Wahl!
> Den kennt dann wirklich keiner und Günther kann nach Herzenslust alles
> selber lernen und herausfinden.

Das ist der große Bruder vom 6502, 100% kompatibel zum Befehlssatz + 
Erweiterungen.
Das Problem von Günther wird hier so oder so nicht gelöst.

von Michael (Gast)


Lesenswert?

Falk B. schrieb:
> 100% kompatibel zum Befehlssatz +
> Erweiterungen.

Schon klar.
Natürlich mit komplexerer HW und da Günther es ganz genau wissen will 
welches Bit wann gekippt wird ...

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


Lesenswert?

Günter K. schrieb:
> Arduino F., was hälst Du denn von Arduino?

Hmmm...
Ich wenigen Worten:
Es kommt mir in einigen Belangen entgegen. z.B. die 
Mächtigkeit/Portabilität von C++ und die Vielfalt an einfach nutzbarer 
Hardware.
Tausende, wenn nicht gar zehntausende arbeiten Weltweit an 
Erweiterungen, in Form von Boarddefinitionen und Libraries. Nicht zu 
vergessen, die Hardware und Toolchainentwickler, auf dessen Schultern 
"wir Arduino" reiten dürfen.

Vor ca 10 Jahren bin ich durch Zufall darauf gestoßen, als ein Kollege 
eine kleine Ablaufsteuerung benötigte und ihm eine SPS zu teuer war.
Eine kurze Geschichte....
Ca mittags wurde mir ein "Starterkit" mit UNO, Käbelchen, Steckbrett, 
Relais usw. überreicht. War einmal ein Weihnachtsgeschenk für eins 
seiner Kinder, aber die konnten alle nix damit anfangen.
Nach ca. 1H war die Software auf dem PC, und die ersten Beispiele 
getestet.
2H später, war der Prototype fertig. Nix kompliziertes. Ein paar IO und 
etwas Zeitabhandlung.

Nie vorher hatte ich einen ATMega bewusst wahrgenommen.
Etwas C im Hintergrund, aber von C++ nur gehört.

Der schnelle Einstieg hat mich fasziniert.
Jetzt nach 10 Jahren, gibt es immer noch Herausforderungen. C++ verstehe 
ich nun einigermaßen. Meine Vorbildung in anderen OOP Sprachen hat 
geholfen.

Assembler kommt bei mir kaum vor. Manchmal möchte/muss ich sehen was der 
Compiler baut. Nur ganz selten fasse ich es selber an.
z.B. hier, eins der Experimente:
Arduino F. schrieb:
> Man kann auch in der Arduinowelt direkt mit ASM starten. Siehe Anhang.
> Vorgesehen ist das allerdings nicht, wird aber unterstützt.

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
> Ich gehe davon aus, dass Günther denkt, moderne Programmiersprachen sind
> zu kompliziert und Assembler wäre das einfachste. Wenn er den PiPico mit
> Micropython ausprobiert und erst mal sieht, wie einfach damit eine LED
> anzusteuern ist, ändert er seine Meinung vielleicht.

Hallo Christoph M., guten Tag alle zusammen,

Danke für die Antwort. - Das, wovon Du ausgehst ist richtig. Assembler 
(bzw. Maschinensprache) kann man noch nachvollziehen. Wenn ich mit 
Micropython
auch nachvollziehen kann, wie das die Maschine macht, wäre das ok.

Inzwischen, vermute ich stark, ich weiß es eben noch nicht, durch die 
Worte die ich darüber gelesen habe, dass Assembler und Assembler 2-erlei 
ist.
Einmal das Assembler-Programm das man schreibt,
zum anderen das Assembler-Programm, welches das Assembing durchführt.
Dazu habe ich noch nichts gelernt. So ein Programm habe ich noch nie 
gesehen. Im übertragenen Sinne ist es im Grunde genommen, die 
Maschinensprache die mich interessiert.

Aber ich habe nochmal hochgescrolt und gute Zeilen gelesen.
Darauf gehe ich noch ein.

Der 6502 ist der mir bisher sympatichste Prozessor. Nur der 8086 ist 
eben der, der der Zeit gefolgt ist. Dafür muss ich noch die DOSBOX 
installieren.

Nein, ich habe meine Meinung nie geändert,
weder im Satz, noch in den Abschnitten.

LG. Günter alias Enk

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


Lesenswert?

Günter K. schrieb:
> Einmal das Assembler-Programm das man schreibt,
> zum anderen das Assembler-Programm, welches das Assembing durchführt

Und drittens: die Programmiersprache Assembler.

von Günter K. (enk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Günter K. schrieb:
>> Einmal das Assembler-Programm das man schreibt,
>> zum anderen das Assembler-Programm, welches das Assembling durchführt
>
> Und drittens: die Programmiersprache Assembler.

Ja, Danke, Das ist richtig!
LG. Günter K.

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


Lesenswert?

Günter K. schrieb:
> Nur der 8086 ist eben der, der der Zeit gefolgt ist.

Nicht wirklich.

Den kannst du eher mit einem kleinen Häuschen vergleichen, dass mit ein 
paar Balkonen erweitert wurde. Danach hat man eine Burg drumherum 
gebaut, die ständig mit weiteren Gebäuden, Erkern, Türmchen, Balkonen, 
Tunneln und Geheimgängen erweitert wird. Das Häuschen ist nur noch ein 
Zimmer innerhalb der Burg.

Was wir heute im PC stecken haben ist das exakte Gegenteil von 
durchschaubar. Aus gutem Grund gibt es keine Mikrocontroller auf Basis 
der 8086 Architektur. Der 80186 ging ein bisschen in die Richtung, ist 
aber ebenfalls Geschichte.

: Bearbeitet durch User
von Roland F. (rhf)


Lesenswert?

Hallo,
Günter K. schrieb:
> Einmal das Assembler-Programm das man schreibt,...

Ersetze in diesem Zusammenhang mal Assembler-Programm durch 
"Assembler-Quelltext meines Programms".

> ...zum anderen das Assembler-Programm, welches das Assembing durchführt.

Und in diesem Zusammenhang durch "Übersetzungsprogramm, das das den 
Assembler-Quelltext meines Programms in den Binärcode meines 
Mikroprozessors übersetzt".

rhf

von Roland F. (rhf)


Lesenswert?

Hallo,
Sherlock 🕵🏽‍♂️ schrieb:
> Das Häuschen ist nur noch ein
> Zimmer innerhalb der Burg.

Ich würde eher sagen es ist nur noch ein Zimmer innerhalb der Metropole, 
in der die Burg steht.

rhf

von Peter D. (peda)


Lesenswert?

Günter K. schrieb:
> Der 6502 ist der mir bisher sympatichste Prozessor.

Darum geht es aber nicht. Wenn Du Dich mit Assembler beschäftigen 
willst, dann nützt Dir nur eine Architektur was, die auch weit 
verbreitet ist. Hier im Forum gibt es einen Großteil, der sich mit AVR 
auskennt und auch bereit ist, mal über Deinen Code zu schauen.
AVR wäre also mein ganz heißer Tipp oder Dein bisheriges Assemblergerede 
war nur eine ganz große Luftnummer.
8051, MSP430, PIC Assembler kennen auch noch einige, aber da wird die 
Luft schon dünner.

Sprut hat ja mal mit PIC angefangen. Die recht eigenwillige PIC 
Architektur muß man nicht mögen, aber da findet man doch viele 
Grundlagen erklärt:
https://www.sprut.de/electronic/pic/index.htm
Und Abschreckendes:
https://www.sprut.de/misc/rip.htm

von Hippelhaxe (hippelhaxe)


Lesenswert?

Günter K. schrieb:

> Inzwischen, vermute ich stark, ich weiß es eben noch
> nicht, durch die Worte die ich darüber gelesen habe,
> dass Assembler und Assembler 2-erlei ist.
> Einmal das Assembler-Programm das man schreibt,

Das ist der sog. "Quelltext"; beim Programmieren in
Assemblersprache eben ein "Assembler-Quelltext".


> zum anderen das Assembler-Programm, welches das
> Assembing durchführt.

Das ist im Slang "der Assembler".


> Dazu habe ich noch nichts gelernt. So ein Programm
> habe ich noch nie gesehen. Im übertragenen Sinne ist
> es im Grunde genommen, die Maschinensprache die mich
> interessiert.

Und warum programmierst Du dann nicht einfach in
"Maschinensprache" (=Hex-Code)?

Wenn ich das richtig verstanden habe, besitzt Du inzwischen
einen MPF-1 ("Mikroprofessor"), da ist ein Z80 drinn. Was
zum Teufel hindert Dich? Anstecken, einschalten, loslegen...


Wie ich weiter oben schon erklärte, kommst Du zu Anfang mit
ca. zwei Dutzend Befehlen aus; das hält den Lernaufwand in
Grenzen.



> Der 6502 ist der mir bisher sympatichste Prozessor. Nur
> der 8086 ist eben der, der der Zeit gefolgt ist.

???

Assemblersprache lernt man heute i.d.R. nicht, um reale
Programmierprobleme zu lösen, sondern um ein Gefühl dafür
zu bekommen, was im Innern eines Prozessors abläuft.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Peter D. schrieb:

> Günter K. schrieb:
>> Der 6502 ist der mir bisher sympatichste Prozessor.
>
> Darum geht es aber nicht. Wenn Du Dich mit Assembler
> beschäftigen willst, dann nützt Dir nur eine Architektur
> was, die auch weit verbreitet ist.

... oder wenigstens "war".


> Hier im Forum gibt es einen Großteil, der sich mit AVR
> auskennt [...]

Wie man so lesen kann, haben erstaunlich viele auf ihrem
Weg auch mal mit dem Z80 zu tun gehabt -- womit wir wieder
beim Mikroprofessor wären...

von (prx) A. K. (prx)


Lesenswert?

Hippelhaxe schrieb:
> Wie man so lesen kann, haben erstaunlich viele auf ihrem
> Weg auch mal mit dem Z80 zu tun gehabt -- womit wir wieder
> beim Mikroprofessor wären...

Altersfrage. Irgendwann sterben dem in Ehren ergrauenden Forum die 
Teilnehmer weg. Dann weiss von den paar Übrigen keiner mehr, warum das 
mal so war. :)

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


Lesenswert?

PS: Ist ja fast eine geschlossene Gesellschaft hier. Und wenn mal ein 
Neuling kommt, der nicht gleich wieder verbissen wird, dann stellt sich 
heraus, dass er 80 ist.

von Hippelhaxe (hippelhaxe)


Lesenswert?

(prx) A. K. schrieb:

> Hippelhaxe schrieb:
>> Wie man so lesen kann, haben erstaunlich viele auf ihrem
>> Weg auch mal mit dem Z80 zu tun gehabt -- womit wir wieder
>> beim Mikroprofessor wären...
>
> Altersfrage. Irgendwann sterben dem in Ehren ergrauenden
> Forum die Teilnehmer weg.

Logisch -- aber das wird ja hoffentlich weder dieses noch
nächstes Jahr der Fall sein; also können noch viele Z80-
Minimalsysteme auf Lochrasterplatine gebastelt werden...

von Günter K. (enk)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> ... Tunneln und Geheimgängen erweitert wird. Das Häuschen ist nur noch ein
> Zimmer innerhalb der Burg.
>
> Was wir heute im PC stecken haben ist das exakte Gegenteil von
> durchschaubar. Aus gutem Grund gibt es keine Mikrocontroller auf Basis
> der 8086 Architektur. Der 80186 ging ein bisschen in die Richtung, ist
> aber ebenfalls Geschichte.

Das ist sehr schön erklärt.

Ich werde mal versuchen, nur ein Zeichen auf den Bildschirm zu bringen.
Es wird folgendes Programm sein. Ich tippe es aber erst mal ein.
LG. Enk.

von Michael (Gast)


Lesenswert?

Günter K. schrieb:
> das Assembler-Programm, welches das Assembing durchführt.
> Dazu habe ich noch nichts gelernt. So ein Programm habe ich noch nie
> gesehen. Im übertragenen Sinne ist es im Grunde genommen, die
> Maschinensprache die mich interessiert.

Assembler IST die Maschinensprache.
Die pure Hardware führt Assembler aus.
Im Assembler Mnemonik ist in den Bits codiert welche Hardware in der CPU 
was in welcher Abfolge zu tun hat.

von Klaus F. (klaus27f)


Lesenswert?

Günter K. schrieb:
>> Ja klar!
>> 32Bit Dualcore Risc Maschinen sind total ASM freundlich.
> DANKESCHÖN!
> LG Enk


Als Steigerung bietet sich noch die "8bit-Computing mit FPGA" von Josef 
an.
Beitrag "8bit-Computing mit FPGA"
 ... und dann gerade mal 10 Jahre weiter sind wir da ... bei den OpCodes
Beitrag "Re: 8bit-Computing mit FPGA"

Oder, als Vorprojekt, diese Info
Beitrag "Re: Ein 8bit-Rechner auf dem Spartan-3A-Starterkit"

Da kann sich Günter jetzt mal reinwühlen.
Da hat er zu tun bis er über 90 ist.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich werde mal versuchen, nur ein Zeichen auf den Bildschirm zu bringen.

Also auf meinem Bildschirm tauchen sogar schon ganze Sätze von dir auf!

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


Lesenswert?

Günter K. schrieb:
> Ich werde mal versuchen, nur ein Zeichen auf den Bildschirm zu bringen.

Ohne BIOS, ohne Windows API und ohne zu lernen, wie die (welche auch 
immer) Grafikkarte bzw. GPU funktioniert?

Ich dachte, du wolltest dich auf die Bits in der CPU konzentrieren. Dann 
bleibe um Gottes Willen bei deinem Z80 Lernsystem! So lange du wild hin 
und her springst lernst du gar nichts.

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


Lesenswert?

Michael schrieb:
> Assembler IST die Maschinensprache.

Keineswegs. Die ist binär und es kommt oft vor, dass nicht der 
Programmierer die binäre Form des Befehls bestimmt, sondern der 
Assembler. Wenn mehrere Möglichkeiten.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Michael schrieb:

> Günter K. schrieb:
>> das Assembler-Programm, welches das Assembing durchführt.
>> Dazu habe ich noch nichts gelernt. So ein Programm habe
>> ich noch nie gesehen. Im übertragenen Sinne ist es im
>> Grunde genommen, die Maschinensprache die mich interessiert.
>
> Assembler IST die Maschinensprache.

HIMMELHERRGOTT! NICHT SCHON WIEDER!

1. Maschinensprache ist Maschinensprache ist Maschinensprache!


> Die pure Hardware führt Assembler aus.

Schwachsinn!

2. Die Hardware führt MASCHINENCODE aus!

3. Ein "Assemblerprogramm" (=Assemblerquelltext) ist eine
   TEXTDATEI! Mit der kann kein Prozessor irgenwas anfangen!

4. Um aus einem "Assemblerprogramm" (=Assemblerquelltext) ein
   ausführbares Programm zu machen, ist ein ÜBERSETZER nötig,
   der die Textdatei einliest und Maschinencode ausspuckt!
   Dieses Übersetzerprogramm wird "Assembler" genannt.


> Im Assembler Mnemonik ist in den Bits codiert welche Hardware
> in der CPU was in welcher Abfolge zu tun hat.

Nein!

In den Assemblerbefehlen (=ASCII-Zeichenketten) ist codiert,
welche Maschinenbefehle das Übersetzungsprogramm nacheinander
erzeugen soll!


Richtig ist allerdings, dass Assemblersprachen in der Regel
so ausgedacht sind, dass im Wesentlichen eine 1:1-Zuordnung
zwischen Assemblerbefehlen und Maschinencode existiert.


Merke: Ein Rezept ist keine Mahlzeit -- sondern nur eine
Vorschrift, wie die Mahlzeit herzustellen ist...

von Cyblord -. (cyblord)


Lesenswert?

(prx) A. K. schrieb:
> Michael schrieb:
>> Assembler IST die Maschinensprache.
>
> Keineswegs. Die ist binär und es kommt oft vor, dass nicht der
> Programmierer die binäre Form des Befehls bestimmt, sondern der
> Assembler. Wenn mehrere Möglichkeiten.

Erbsenzählerei.

Assembler kann meistens 1:1 in die eindeutige Maschinensprache übersetzt 
werden. Bis auf sehr wenige Ausnahmen. Damit ist Assemblersprache 
lediglich eine Eingabehilfe für Maschinensprache. Mit sehr wenig 
Spielraum für den Assembler. Daher ist es nicht falsch das Gleich zu 
setzen.

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


Lesenswert?

Soweit ich das sehe, ist Z80 ein absterbender Ast.
AVR sind nicht wirklich komplexer, aber dafür deutlich 
aktueller/billiger.

Somit sollte eigentlich klar sein, womit man sich eher beschäftigen 
sollte.

von (prx) A. K. (prx)


Lesenswert?

Hippelhaxe schrieb:
> Richtig ist allerdings, dass Assemblersprachen in der Regel
> so ausgedacht sind, dass im Wesentlichen eine 1:1-Zuordnung
> zwischen Assemblerbefehlen und Maschinencode existiert

Von 1:N bis N:1 ist alles dabei. Mal gibt's mehrere Befehle für den 
gleichen Opcode, etwa SBR und ORI bei AVR. Mal gibt's mehrere Opcodes 
für ADD. Intel war anno 8080 radikaler, aber das ist lange her.

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


Lesenswert?

Günter K. schrieb:
>> der 8086 Architektur. Der 80186 ging ein bisschen in die Richtung, ist
>> aber ebenfalls Geschichte.
>
> Das ist sehr schön erklärt.
>
> Ich werde mal versuchen, nur ein Zeichen auf den Bildschirm zu bringen.
> Es wird folgendes Programm sein. Ich tippe es aber erst mal ein.
> LG. Enk.

Bzw. das Progrämmchen, welches hier folgt: ...
Leider fehlt der OpCode.

************************************************************************ 
*
* 
*
* Aufgabe 1:  Einlesen eine Taste auf                                 *
              Bildschirmmit mit definierter                           
    Rueckkehr ins Betriebsystem                             
* Progammname:  Prog1.ASM 
                                            
* 
************************************************************************ 
*
.Model SMAL
.Code

    MOV AH,08H    ; liest Tastatur - bringt
    Int 21H      ; Zeichencode nach AL
    MOV DL,AL
    MOV AH,02H    ; bringt Zeichen aus Register
    INT 21H      ; DL zur Anzeige
    MOV AH,4CH    ; Definierte Rueckkehr
    Int 21H      ; zum Betriebssytem
    END

------------------------------------------------------------------------
Dieses Programm kann noch nicht laufen weil DOS fehlt.

LG.Enk

von Rbx (rcx)


Lesenswert?

(prx) A. K. schrieb:
> Dann weiss von den paar Übrigen keiner mehr, warum das
> mal so war. :)

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

Man kann aber genau so gut Algorithmen auf dem Papier in C und in 
Assembler entwickeln und wird dann nicht dümmer. Darüberhinaus werden 
auch gleich die Vorteile von C offensichtlich (neben einigen Schwächen) 
oder auch die Vorteile von Assembler (neben einigen Schwächen).
Bei Mikrocontrollern ist oft der, den du gerade nicht hast, wichtig - 
weswegen für den Anfang eine Emulation auf dem PC hilfreich ist. Wenn 
man damit durch ist, kann man sich mit den Datenblättern der älteren gut 
bekannten Mcs auseinandersetzen und sollte sich dann auch ansprechende 
Hardware besorgen.

FPGA oder 3D-Druck haben ihre Vorteile - aber eben auch Nachteile, aber 
spätestens da sollte man wissen, wo man eigentlich hin möchte.

Codes gehörten auch zu den Grundlagen, über die muss man auch Bescheid 
wissen, helfen auch verstehen:
https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange

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


Lesenswert?

Günter K. schrieb:
> Dieses Programm kann noch nicht laufen weil DOS fehlt.

Darum ja auch mein Vorschlag den Rasberry Pico als CP/M System zu 
verwenden.
Damit passt dein "DOS", Assembler und Z80/8080(?) Emulation in eine 
Streichholzschachtel

von (prx) A. K. (prx)


Lesenswert?

Rbx schrieb:
> Zu mindestens sollte man den Unterschied zwischen CISC und RISC kennen.

Gar nicht so einfach, bei allem, was die Leute so RISC nennen. Etwa 
"variable length RISC" bei Coldfire. 6502 so einzutüten hat hier auch 
jemand geschafft.

von Günter K. (enk)


Lesenswert?

Hallo Leute,

leider sind mir bei der letzte Programmeingabe
vermutlich einige Tabulatoren durch die Gegend gesprungen.
In Zukunft mache ich die Sternrahmen kleiner.

LG. Enk

PS.: Jetzt mache ich erst mal Mittagschlaf.

: Bearbeitet durch User
von Hippelhaxe (hippelhaxe)


Lesenswert?

(prx) A. K. schrieb:

> Hippelhaxe schrieb:
>> Richtig ist allerdings, dass Assemblersprachen in der Regel
>> so ausgedacht sind, dass im Wesentlichen eine 1:1-Zuordnung
>> zwischen Assemblerbefehlen und Maschinencode existiert
>
> Von 1:N bis N:1 ist alles dabei.

Ich könnte mich jetzt rausreden und behaupten, ich hätte
gemeint, dass ein (nicht-Macro-)Assembler aus einem Befehl
im Quelltext stets genau einen Maschinenbefehl erzeugt... :)
(Wäre aber gelogen, also mache ich's nicht.)


Oder gibt's etwa auch dafür Gegenbeispiele?


> Mal gibt's mehrere Befehle für den gleichen Opcode, etwa
> SBR und ORI bei AVR.

Ahh! Stimmt. Mea culpa. Kennt der MSP430 auch.


> Mal gibt's mehrere Opcodes für ADD. Intel war anno 8080
> radikaler, aber das ist lange her.

Mir ist klar, dass die 1:1-Zuordnung nicht wörtlich stimmt;
allerdings denke ich, dass es "vergröbert", also gruppenweise
richtig ist: Ein Sprung wird tatsächlich zu einem Sprung
übersetzt, eine ALU-Operation zu einer ALU-Operation und so
weiter. Das ist ja bei einem Compiler für eine Hochsprache
keineswegs immer so.

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


Lesenswert?

Günter K. schrieb:
> Dieses Programm kann noch nicht laufen weil DOS fehlt.

Es ruft Funktionen von einem Betriebssystem auf, dessem Quelltext nicht 
vorliegt. Dieses wiederum ruft BIOS Funktionen auf, deren Quelltext 
nicht vorliegt. Dieses ruft Funktionen des ROMS der Grafikkarte auf, 
deren Quelltext nicht vorliegt. Die Signale der CPU sind so schnell, 
dass sie nicht einmal mit einem Logic Analyzer beobachtet werden können. 
Am Herzen des Systems zu basteln ist unmöglich, wäre auch finanzielll 
betrachtet eine maximale Dummheit.

Also absolut unggeeignet zum Lernen der Grundlagen.

: Bearbeitet durch User
von Hippelhaxe (hippelhaxe)


Lesenswert?

Günter K. schrieb:

> Dieses Programm kann noch nicht laufen weil DOS fehlt.

Und vor allem lernst Du an diesem Beispielprogramm nichts,
weil Du es Dir nicht selbst ausgedacht hast.

von Christoph M. (mchris)


Lesenswert?

Vielleicht sollte man beim Thema Assembler einen Vergleich wagen:

Assembler ist wie die menschliche Sprache: Es gibt verschiedene. Hat man 
einmal Spanisch gelernt, kann man damit in China nicht viel anfangen.
Kann man Z80 Assembler auswendig, funktioniert schon wieder nichts mehr 
auf einen AVR.
Aus diesem Grunde macht Assembler nur für Spezialisten wirklich Sinn und 
Assembler wird heute nur noch wenig verwendet (höre ich einen Aufschrei 
hier?). Es macht Sinn, eine verallgemeinernde Sprache wie z.B. Python zu 
verwenden, die auf so ziemlich vielen Systemen vom mittelgroßen 
Mikrocontroller bis zum PC läuft.

von Falk B. (falk)


Lesenswert?

(prx) A. K. schrieb:
> PS: Ist ja fast eine geschlossene Gesellschaft hier.

Vielleicht doch ne geschlossene Anstalt?

von (prx) A. K. (prx)


Lesenswert?

Hippelhaxe schrieb:
> Oder gibt's etwa auch dafür Gegenbeispiele?

Die Assembler mancher RISCs bauen einen "load immediate" Befehl je nach 
Wert der Konstanten aus mehrere Operationen zusammen. Oder aus einem 
"load relative" und einer Konstanten in der Nähe.

von Falk B. (falk)


Lesenswert?

Hippelhaxe schrieb:
> Logisch -- aber das wird ja hoffentlich weder dieses noch
> nächstes Jahr der Fall sein; also können noch viele Z80-
> Minimalsysteme auf Lochrasterplatine gebastelt werden...

Du bist auch in den 80er hängen geblieben . . .

von Falk B. (falk)


Lesenswert?

Michael schrieb:
> Assembler IST die Maschinensprache.
> Die pure Hardware führt Assembler aus.

Nö.

> Im Assembler Mnemonik ist in den Bits codiert welche Hardware in der CPU
> was in welcher Abfolge zu tun hat.

Auch nö. Die Mnemonik sind menschenlesbare Kodierung der reinen Zahlen 
der Maschinensprache.

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

von (prx) A. K. (prx)


Lesenswert?

Falk B. schrieb:
> Vielleicht doch ne geschlossene Anstalt?

Meine Rede seit Jahren. Früher war A&B die Offene und Offtopic die 
Geschlossene. In Erstere durfte jeder rein, in Letztere nur mit 
Anmeldung. Die Offene wurde dann aufgrund hoffnungsloser Überbelegung 
geschlossen.

von Michael (Gast)


Lesenswert?

Falk B. schrieb:
> Die Mnemonik sind menschenlesbare Kodierung

Die man 1zu1 in den hex Code übersetzen kann, der eine binäre Folge 
repräsentiert, in der codiert ist welche HW...

Komm schon, das kannst Du besser.

von Falk B. (falk)


Lesenswert?

Arduino F. schrieb:
> Soweit ich das sehe, ist Z80 ein absterbender Ast.

Absterbend? Der ist schon lange tot! So wie V8 Big Block!

> AVR sind nicht wirklich komplexer, aber dafür deutlich
> aktueller/billiger.

Aktueller ja. Aktuell, naja. Die Dinger gibt es auch schon reichlich 25 
Jahre, wenn auch immer wieder mal mit leicht aufgebohrter CPU und vor 
allem Drum herum.

> Somit sollte eigentlich klar sein, womit man sich eher beschäftigen
> sollte.

KI!!!! ;-)

von (prx) A. K. (prx)


Lesenswert?

Hippelhaxe schrieb:
> allerdings denke ich, dass es "vergröbert", also gruppenweise
> richtig ist

Auch ein Compiler macht aus einer Operation nicht ihr Gegenteil. Ein AVR 
Assembler wiederum macht aus der vorgeblichen Ladeoperation CLR die 
ALU-Operation EOR.

Es ist nicht einfach, Begriffe und Sachverhalte so zu definieren, dass 
man darin keine Löcher und Widersprüche findet. In der ebenfalls von 
Logik geprägten Juristerei auch nicht.

: Bearbeitet durch User
von Thomas Z. (usbman)


Lesenswert?

Günter K. schrieb:
> Bzw. das Progrämmchen, welches hier folgt: ...
> Leider fehlt der OpCode.

so ein quatsch. Du springst wild zwischen den Architekturen hin und her. 
Von Z80,6502,8086 und Raspberry Pi Pico. Dabei hast nicht die leiseste 
Vorstellung  wie du zu den entsprechenden Hex codes kommst. Es wurden 
dir so viele Wege aufgezeigt wie du arbeiten kannst. Das setzt aber 
voraus, dass du dich auf eine Architektur festlegst und dann loslegst. 
Dazu gehört selbstverständlich das Einarbeiten in die entsprechenden 
Tools.

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

von Günter K. (enk)


Lesenswert?

Arduino F. schrieb:
> Günter K. schrieb:
>> Dieses Programm kann noch nicht laufen weil DOS fehlt.
>
> Darum ja auch mein Vorschlag den Rasberry Pico als CP/M System zu
> verwenden.
> Damit passt dein "DOS", Assembler und Z80/8080(?) Emulation in eine
> Streichholzschachtel

Hallo Arduino F. und alle.

Gut das werde ich machen und ich habe auch noch den Arduino.
Das Wesendliche ist mir, sehen zu können, was sich abspielt.
An und für sich, sollte es für jeden Prozessor Assembler geben,
weil ja jeder Prozessor in Maschinensprache arbeitet.
Kann man Mikrophyton in Assembler übersetzen?
Ich hatte mal gehört, Python wäre eine Interpreter-Sprache stimmt das?
Den Lehrgang zu dem Rasberry Pico suche ich noch raus,
auch, weil ich zu wenig Englisch kann.
LG. Enk

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Moin,

Vll. wäre eine uralte Bord mit Monitor, Keypad und LED Display das 
Richtige. Da ist ein PC nicht unbedingt nötig. Ich denke da in erster 
Linie an die alten Motorola Bords. Ich fing mit 6802 und HC11 an. Beim 
6802 war alles auf der Bord. Der HC11 EVB brauchte ein Terminal.

Das war alles Maschinen-Nahe. Man mußte die OPCodes direkt als Hex 
Nummer eingeben. Es funktionierte. Würde ich mir das heute noch antun 
wollen? Nicht wirklich.

Eine Simulation mit uV2 ist da auch nicht zu verachten. Der MCS51 
Befehlssatz ist zum Lernen nicht schlecht. Auch die Z8 Architektur ist 
nicht schlecht. MSP430 hat auch seinen Reiz und vorzügliche SW. Auch mit 
PIC kann man mit ASM zurechtkommen. Auch bei uC gilt:

"Dem Hungrigen schmeckt alles".

Daran steckt in diesen Kontext schon ein "Bitchen" Wahrheit.

AVR ist auch nicht zu verachten. Wer will, findet alles Notwendige dazu 
in der Welt für Peanuts oder frei.

Reden ist Silber, Machen ist Gold! Nach all der schon verspritzten 
Forumstinte ist es an der Zeit, zu machen. Es wurde schon viel zu viel 
geredet.

Den Rpi halte ich im Kontext hier für eine recht unglückliche Wahl. 
Dafür habe  nicht mal ich echte Lust dazu. Ich finde, Acht-Bitter 
dagegen, haben auch in unserer Zeit immer noch einen gewissen Reiz und 
Charm. Aber auch dort, hat eine Sprache wie C Sinn, wenn es um die 
Verwirklichung von Entwicklungsaufgaben geht. ASM da nur, wenn die 
Umstände es nahelegen. C ist ohnehin nur einen Katzensprung von ASM 
entfernt und kann je nach Implementierung sehr HW-Nahe sein. C hat 
praktische Nähe zu ASM. Das kann sehr nützlich sein.

Duck und weg,
Gerhard

von Hippelhaxe (hippelhaxe)


Lesenswert?

Falk B. schrieb:
> Hippelhaxe schrieb:
>> Logisch -- aber das wird ja hoffentlich weder dieses noch
>> nächstes Jahr der Fall sein; also können noch viele Z80-
>> Minimalsysteme auf Lochrasterplatine gebastelt werden...
>
> Du bist auch in den 80er hängen geblieben . . .

Und?


Aktuell benötige ich eine Art MIDI-Recorder. Passende
Linux-Software ist bereits installiert, aber der MIDI-to-
USB-Konverter führt im Zusammenspiel mit dem Kernel zu
stotternder Übertragung...

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

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


Lesenswert?

Falk B. schrieb:
> Aktueller ja. Aktuell, naja. Die Dinger gibt es auch
> schon reichlich 25 Jahre

Das stimmt. Deswegen sind AVR sehr gut dokumentiert. Und man kann sie 
noch problemlos für wenig Geld kaufen (bisher kein Ende in Sicht).

Z80 und 6502 existierten in einer anderen Zeit, als es noch kein 
Internet gab und normale Menschen keinen eigenen PC hatten. Wer sich mit 
denen beschäftigt, sollte nach Büchern Ausschau halten. Bei mir in der 
Stadtbücherei wurden sie inzwischen ausgemustert. Auch die Bücher über 
DOS und CP/M.

Da dem Günter für sein Z80 Gerät die ganze Doku auf deutsch (das war ihm 
wichtig) vorliegt, spricht meiner Meinung nach fast nichts dagegen, die 
Grundlagen auf diesem Gerät zu lernen. Die Art wie es dokumentiert ist 
wird ihn sicher eher ansprechen, als die moderne Art von Arduino. Das 
ist eher was für die Generationen nach ihm.

Ich schreibe "fast nichts", weil ich mir Sorgen um die Reparierbarkeit 
mache. Den Z80 und die zugehörigen I/O Bausteine kann man (bei seriösen 
Händlern) nicht mehr kaufen. Stattdessen häufen sich Berichte über 
schlechte Fälschungen.

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


Lesenswert?

(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.

von Günter K. (enk)


Lesenswert?

Hippelhaxe schrieb:
> Günter K. schrieb:
>
>> Dieses Programm kann noch nicht laufen weil DOS fehlt.
>
> Und vor allem lernst Du an diesem Beispielprogramm nichts,
> weil Du es Dir nicht selbst ausgedacht hast.

Ja, ja, das stimmt -; selbst bei diesem Beispiel treten Fragen auf.
Genau wohin wird das Zeichen auf dem Bildschirm gesendet.
Dann muss der Bildschirm vermutlich in der Grafikkarte
auch einen Speicherplatz haben. Aber wohin auf dem Bildschirm?
Wenn da aber schon schon eines ist.
LG.Enk

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

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> Gerne, freut mich, wenn es voran geht. Wenn man damit anfängt, ...

Lieber Wolfgang
Dankeschön für die Auf-Erbauung!

Hallo liebe Leute,
auch Dank an Allen!
Ich bin wohl erstmal, mehr eher ähnlich bei Maschinensprache
als mit Assembler beschäftigt, - schreibe aber die Mnemonik dazu.

Natürlich werde ich versuchen, das an Software, zu benutzen,
welches Ihr mir geschickt habt.

Als nächstes käme für den Tongenerator, die passenden Töne zu errechnen,
die in der Nähe des Wohltemperierten Tonsystems passen. - Das wird nicht 
ganz gelingen, weil ja nur ganze Wellen bearbeitet werden.
Aber ich habe mir schon Gedanken dazu gemacht.
Mal abwarten was werden wird.
Viele liebe Grüße
Günter K.
(ENK)

von Christoph M. (mchris)


Lesenswert?

>Als nächstes käme für den Tongenerator, die passenden Töne zu errechnen,
>die in der Nähe des Wohltemperierten Tonsystems passen.
Wie ist denn die Spezifikation von deinem Z80-System?
- CPU CLK?
- Anbindung Lautsprecher?
- RAM-Bereich (von bis .. ich nehme an, das Programm läuft aus dem RAM )

von Re (r42)


Lesenswert?

Christoph M. schrieb:
> Wie ist denn die Spezifikation von deinem Z80-System?

Günter K. schrieb:
> Es handelt sich um eine Programm für den Junior-Computer,
> mit einem 6502 als Prozessor, und einem 6532.

Thomas W. schrieb:
> Die (deutschen) Junior-Buecher von Elektor findest Du bei
> http://retro.hansotten.nl/ , die Buecher bei
> 
http://retro.hansotten.nl/6502-sbc/elektuur-junior/elektor-junior-literature/elektor-books/


In der dort verlinkten deutschean Ausgabe: Seiten 18/19.


HTH (re)

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

>In der dort verlinkten deutschen Ausgabe: Seiten 18/19.

Danke für den Link.

- 6502, 1MHz
- 1K Ram (0x0000-0x03FF)
- 6532 IO mit noch mal 128 Byte RAM (0x1A00-0x1A7F)

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

Der Lautsprecher finde ich auf dem Schaltplan nicht.
Auf welche Adresse legt man das Programm und wie wird es gestartet?

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
>>Als nächstes käme für den Tongenerator, die passenden Töne zu
> errechnen,
>>die in der Nähe des Wohltemperierten Tonsystems passen.
> Wie ist denn die Spezifikation von deinem Z80-System?
> - CPU CLK?
> - Anbindung Lautsprecher?
> - RAM-Bereich (von bis .. ich nehme an, das Programm läuft aus dem RAM )

Christoph M. schrieb:
>>Als nächstes käme für den Tongenerator, die passenden Töne zu errechnen,
>>die in der Nähe des Wohltemperierten Tonsystems passen.
> Wie ist denn die Spezifikation von deinem Z80-System?
> - CPU CLK?
> - Anbindung Lautsprecher?
> - RAM-Bereich (von bis .. ich nehme an, das Programm läuft aus dem RAM )

Lieber Christof M.

Tja, in dem Buch, den ich für den Z80 gehabt habe,
sind für einen Befehl mehrere OP-Codes angegeben worden.
Das Buch ist aber in einer etwas besseren Auflage auch
im Internet zu finden.

Beim Z80 würde das natürlich besser gehen, weil der
CPU CLK = 4 MHz hat. Beim Junior-Computer beträgt der
CPU CLK = 1 MHz. Dazu kommt noch, dass der z80 im übertragenden Sinne,
16 Bit bearbeiten kann. - Ja, der Z80 hat einen Lautsprecher,
und ich habe ihn auch schon gehört. - Ich selber, kann nicht mehr
gut (mit schrecklichem Tinnitus) hören; bin schon froh, dass ich ein 
Programm habe, das auf dem Junior-Computer läuft.

Als Lautsprecher habe ich noch einen alten Aktiv-Lautsprecher, der ist
zwar am Eingang kaputt, den ich noch reparieren kann.
Dieses Ton-Programm läuft u.a. über das Y- und X-Register, um die
Wellenlänge einzustellen.

Ach ja, das Programm läuft aus dem RAM-Bereich von 0300 bis 0322.
Den Ton könnte ich bauchen, um bei einer vorher programmierte Eier-Uhr,
den Ton zu erzeugen.

Danke, dass Du fragst,
viele liebe Grüße
Günter K.
(ENK)

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:

> Der Lautsprecher finde ich auf dem Schaltplan nicht.

Das ist auch nicht ungewoehnlich: Es gibt keinen, bei dem Prograemmchen 
werden alle acht Bit des Ports umgeschaltet.

Wenn der TO (oder Du) in das sehr schoene Junior Computer Buch 2 (
http://retro.hansotten.nl/uploads/junior/books/de/JuniorComputer_book_02.pdf) 
guckst, findest Du ab p.45 das Kapitel "Musik auf dem Junior-Computer": 
Eine kleine Tastatur (16 Tasten) und eine kleine Darlington-Stufe zum 
Lautsprecher. So hat man das damals (1980!) so gemacht.

Und da man nicht so viel RAM hatte (ein ganzes halbes kilobyte) wurde 
die Lookup-Tabelle in dem RAM des PIA verfrachtet.

> Auf welche Adresse legt man das Programm und wie wird es gestartet?

Das Prograemmchen von Guenter lieg auf 0x300, und, Start mit AD, 0300 
und betaetige die GO-Taste!

War schoene Zeit!

von (prx) A. K. (prx)


Lesenswert?

Günter K. schrieb:
> Beim Z80 würde das natürlich besser gehen, weil der
> CPU CLK = 4 MHz hat. Beim Junior-Computer beträgt der
> CPU CLK = 1 MHz.

Das täuscht. Die 6502 erledigt wesentlich mehr in einem Takt als die 
Z80. Weshalb die beiden sich nicht wirklich viel schenken.

: Bearbeitet durch User
von Thomas W. (datenreisender)


Lesenswert?

(prx) A. K. schrieb:
> Günter K. schrieb:
>> Beim Z80 würde das natürlich besser gehen, weil der
>> CPU CLK = 4 MHz hat. Beim Junior-Computer beträgt der
>> CPU CLK = 1 MHz.
>
> Das täuscht. Die 6502 erledigt wesentlich mehr in einem Takt als die
> Z80. Weshalb die beiden sich nicht wirklich viel schenken.

Und jetzt kommen wir wieder zum Diskurs RISC <-> CISC, und dann darf 
natuerlich nicht die VAX oder 68000 fehlen...

von (prx) A. K. (prx)


Lesenswert?

Wenn Du das dem Forum unbedingt antun willst, dann schieb es nicht mir 
in die Schuhe. Das hat nichts miteinander zu tun.

: Bearbeitet durch User
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

In einer der Unterlagen zum Junior-Computer findet sich die Memory-Map. 
Die ist allerdings etwas irreführend: Beim 6502 sind die Reset- und 
Interrupt-Vektoren am Ende des Speicherbereichs, deshalb muss dort ein 
gültiger Speicher verfügbar sein.
Im Anhang habe ich mal die Daten zusammen kopiert.

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Thomas W. (datenreisender)
02.05.2025 12:20
>Wenn der TO (oder Du) in das sehr schoene Junior Computer Buch 2 (
>http://retro.hansotten.nl/uploads/junior/books/de/>JuniorComputer_book_02.pdf)
>guckst, findest Du ab p.45 das Kapitel "Musik auf dem Junior-Computer":
>Eine kleine Tastatur (16 Tasten) und eine kleine Darlington-Stufe zum
> Lautsprecher. So hat man das damals (1980!) so gemacht.

Ok, danke. Der Lautsprecher scheint wohl standardmäßig an PB0 
angeschlossen zu werden.

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Thomas W. (datenreisender)
> 02.05.2025 12:20
>>Wenn der TO (oder Du) in das sehr schoene Junior Computer Buch 2 (
>>http://retro.hansotten.nl/uploads/junior/books/de/>JuniorComputer_book_02.pdf)
>
> Ok, danke. Der Lautsprecher scheint wohl standardmäßig an PB0
> angeschlossen zu werden.

Ja und nein: Der Junior benutzt in der Grundausstattung PA0-PA6 und 
PB1-PB4 fuer Tastatur/Display. Wenn Du jetzt aber die 
Erweiterungsplatine dazupackst (hat einen Arm und ein Bein gekostet), 
werden PB0 und PA7 fuer den Seriellen Port verwendet (1200 Baud), 
PB5/PB6 ist fuer Motor-Controll fuer den Kassettenrecorder und PB7 ist 
Input/Output fuer Kassettenrecorder (fuer den Interessierten: 
http://retro.hansotten.nl/uploads/junior/books/de/JuniorComputer_book_03.pdf)

Durch die Entscheidung den Bus nicht komplett zu decodieren (die 
Adressdekodierung A10, A11 und A12 wurde mit einem 74LS145 gemacht, A13, 
A14 und A15 werden ignoriert) war das Design in 1980 sehr preisguenstig 
(Beschraenkung bis 0x1fff). Als dann die Erweiterungskarte auf den Markt 
kam (im wesentlichen Kassetteninterface und RS232, ein weiteres 1K RAM 
[0x0400 - 0x07ff], zwei EPROM [2 x 2K] und eine 6522 [VIA]) konnte man 
kleine Prograemmchen (1.5kb RAM!) realisieren.

Wenn Du Interesse hast, kannst Du mal nach dem KIM-1 
(https://de.wikipedia.org/wiki/KIM-1) suchen. Von dem Rechner hat sich 
Elektor inspirieren lassen.

Weiterhin nicht komplett dekodiert: Es gab dann die Moeglichkeit der 
kompletten Dekodierung (es gab eine kleine Platine mit einem 2716 um die 
Reset, IRQ und NMI-Vektoren zu haben), aber das wesentliche Problem (der 
zerstueckelte Adressraum) liess sich nicht mehr heilen (ist [meiner 
Meinung nach] auch das wesentliche Problem der 6502)

Geschichtsstunde beendet, Elektor hatte schon einige Highlights besetzt. 
Und man muss sagen, der Elektor-Verlag hat z.B. die Junior-Buecher auf 
Englisch, Deutsch, hollaendisch, franzoesisch und italienisch auf den 
Markt gebracht. Und das war (in 1980!) schon eine gute Leistung. Es gab 
sogar Elektor-Ausgaben fuer die USA und Indien.

von Rbx (rcx)


Lesenswert?

So grundsätzlich könnte man sich aktuell ruhig mit einem AVR 
beschäftigen und (also +) über VM mit DOS z.B. bekannte Algorithmen oder 
C-Programme mit dem Debug-Programm in Assembler erstellen.
Bei dem FreeDOS kann man Debug sogar in 32Bit programmieren, und nicht 
nur das, sondern auch mit dem MMX z.B. Per FASM kann man noch mit 
3216Bit tolle versuche mit den MMX, dem SSE machen.
Weiß jemand, ob man da auch AVX-Experimente machen kann?
Beim FASM-Forum gibt es auch noch Hilfe für hier und da:
https://flatassembler.net/

In Linux gibt es viele Programmbeispiele mit NASM 
(https://cs.lmu.edu/~ray/notes/nasmtutorial/)

von Christoph M. (mchris)


Lesenswert?

> So grundsätzlich könnte man sich aktuell ruhig mit einem AVR
> beschäftigen

Es hat sich aber mittlerweile ergeben, dass der 6502 das Mittel der Wahl 
ist, weil Günter einen alten Junior-Computer von Elektor hat. Ich denke, 
der Assembler des 6502 ist noch mal deutlich übersichtlicher als der des 
AVR.

Instruction Set:
https://www.masswerk.at/6502/6502_instruction_set.html#INX

Online Simulator und Tutorial:
https://skilldrick.github.io/easy6502/

Der Junior-Computer ist bezüglich seines Speichers etwas limitiert, 
sonst könnte man das hier mal ausprobieren:

https://github.com/ytmytm/llama2.c64

um mal den Sprung in die Neuzeit zu machen ;-)

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,

ich staune, wie gut Ihr Bescheid wisst, - sehr gut!
Wenn ich so den geschickten Schaltplan sehe, ist die Tastatur ja schon 
da, - und sie ist sogar schon fast, für eine Tonleiter bezeichnet. Kann 
man die nicht ins Programm hineinnehmen?
   Eine Taste wäre dann noch für das "G", kann man sich ja noch 
raussuchen.
Ach ja, es ist die Eingabe-Tastatur des Junior-Computers gemeint.
(International gilt das "B" als "H".) Auch die Zählung finde ich 
international besser.

Dabei geht es mir nicht darum, - das Keyboard nicht zu bauen,
sondern sich die Spielerei zu erlauben, die schon gegebene Tastatur zu 
benutzen. Nach dem gezeigten Plan wäre auf dem Wege, schnell ein 
(isoliertes) Platinchen mit Lautsprecher gebaut. - Geht das?

Ich suche gerade die Frequenzen heraus, in dem ich Zahlen in das X- und 
Y-Register eingebe. - Ich weiß aber noch nicht, ob man das "YX-Register" 
als Lower Byte und Higher Byte betrachten kann. Ich weiß aber noch 
nicht, - was ich wo, einordnen sollte? XY oder YX - ?
Liebe Grüße
Günter K.
(ENK)

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

> Ich suche gerade die Frequenzen heraus,

Die Frequenzen ab der Note  C4, D4, E4, F4, G4, A4, H4, C5 wären
1
 
2
frequencies = [261.63, 293.66, 329.63, 349.23, 392.00, 440.00, 493.88, 523.25]

und die benötigen Periodendauern in Mikrosekunden für die Delays:
1
  
2
periods_us=[3822, 3405, 3033, 2863, 2551, 2272, 2024, 1911]

Falls diese Töne für dich passen ..

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich weiß aber noch nicht, - was ich wo, einordnen sollte? XY oder YX

Auch wenn ich befürchte, dass du die Analogie nicht verstehst:

Nehmen wir an, du musst 1000 Sekunden warten, kannst aber nur bis 100 
zählen.
Ist es dann egal ob du 10 mal 100 Sekunden wartest oder 100 mal 10 
Sekunden?

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
>> Ich suche gerade die Frequenzen heraus,
>
> Die Frequenzen ab der Note  C4, D4, E4, F4, G4, A4, H4, C5 wären
> frequencies = [261.63, 293.66, 329.63, 349.23, 392.00, 440.00, 493.88,
> 523.25]
>
> und die benötigen Periodendauern in Mikrosekunden für die Delays:
> periods_us=[3822, 3405, 3033, 2863, 2551, 2272, 2024, 1911]
>
> Falls diese Töne für dich passen ..

DANKE lieber Cristoph M.
DANKE!

Ja, genau,
diese Intervalle, muss ich umrechnen in Hex' das ist möglich.
Ja, jetzt fällt es mir erst auf, - :-)))
Denn, denn die Dekrementierungs-Zeit  ist ja gleich lang.
Er fängt ja erst beim X-Register an leerzuzählen, wenn
das Y-Register leergezählt ist.
Über die Prozessorzeit, müsste sich das ausrechnen lassen.
Ja ich nehme mal die Zahlen:
3822, 3405, 3033, 2863, 2551, 2272, 2024, 1911]
Und rechne diese um, in Hex, Aber wo, werden diese gespalten in Y und X?
Liebe Grüße
Günter K.
(ENK)

Die Töne escheinen bei meine Messungen zu Tief.
Ich muss die Messgeräte eichen lassen.
Also, bis später.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Die Töne escheinen bei meine Messungen zu Tief.
> Ich muss die Messgeräte eichen lassen.

Es liegt bestimmt nicht an deinen Messgeräten.

von Harald K. (kirnbichler)


Lesenswert?

Günter K. schrieb:
> Aber wo, werden diese gespalten in Y und X?


3822 = 0x0eee

Also liegt die "Spaltung" bei 0x0e und 0xee

0xee kommt in das schneller herabgezählte Register, 0x0e in das andere, 
das erst bei Unterlauf des schnelleren Registers herabgezählt wird.

Das kann man auch als innere (schneller) und äußere (langsamer) 
Schleife bezeichnen.

Wie Du diese nun den Registern X und Y zuweist, bleibt Dir überlassen.

Der 6502 kennt keine 16-Bit-Register (mit Ausnahme des PC), daher ist 
bei "Logischen Kombinationen" zweier Register zu einem 16-Bit-Wert in 
keiner Weise fest vorgegeben.

von Christoph M. (mchris)


Lesenswert?

Günter schrieb:
> Die Töne escheinen bei meine Messungen zu Tief.

Ich würde erst mal nur mit einem Ton anfangen.
Hier mein Versuch, einen 440Hz Ton zu erzeugen:
1
    org $300
2
3
    ;********************************
4
    ; generate a 440 Hz square wave
5
    ; 2272 us for 440Hz
6
    ; half period 1136 us
7
    ;********************************
8
9
    lda #$1
10
    sta PBDD     ; set PB0 to output
11
loop:
12
    ldx #226     ; 5us×226+5us=1135μs
13
    jsr shortdelay
14
15
    lda PBD      ; Read port B
16
    eor #$01     ; Toggle bit 0
17
    sta PBD      ; Write back
18
    jmp loop
19
20
21
    ; Total time (in microseconds)=5N+5
22
shortdelay:
23
    dex             ; 2 cyc
24
    bne shortdelay  ; 3 cyc jmp , 2 no jmp
25
    rts             ; 6 cyc
26
27
; MOS6532 PIA addreses
28
        org $1A80
29
PAD:
30
31
        org $1A81
32
PADD:
33
34
        org $1A82
35
PBD:
36
37
        org $1A83
38
PBDD:

Rein rechnerisch würde ich ja sagen, dass es so stimmt.
Da ich keine Juniorcomputer habe, versuche ich es mit einem 
zusammengebastelten Simulator. Der kommt aber irgendwie auf 537.6Hz.
Ob es am Simulator liegt oder am Programm, versuche ich gerade 
herauszufinden.

: Bearbeitet durch User
von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:

> Da ich keine Juniorcomputer habe, versuche ich es mit einem
> zusammengebastelten Simulator. Der kommt aber irgendwie auf 537.6Hz.
> Ob es am Simulator liegt oder am Programm, versuche ich gerade
> herauszufinden.

Du hast nur die Delay-Routine beruecksichtigt: ldx 2 cyc, jsr kostet 6 
cyc, STA und LDA je 4 cyc, EOR 2 cyc und der JMP kostet 3cyc -> 21 Cyc 
dazu (pro Durchgang loop).

Bei Deiner ShortDelay-Routine sollte 5*n + 2 + 6 (5N+8) sein.

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


Lesenswert?

Harald K. schrieb:
>> Aber wo, werden diese gespalten in Y und X?
>
> 3822 = 0x0eee
>
> Also liegt die "Spaltung" bei 0x0e und 0xee
>
> 0xee kommt in das schneller herabgezählte Register, 0x0e in das andere,
> das erst bei Unterlauf des schnelleren Registers herabgezählt wird.

Hallo Harald K. ,

auf jeden Fall, DAKESCHÖN! Das ist richtig! Ja, das sehe ich genauso.
Zufälliger Weise, habe ich es mit den gleichen Versuchen eingetragen.
Prima, gut gemacht!

Im Moment habe ich um die 30 Hz.

Also, wenn Töne getroffen werden, wäre das ja auch schon gut,
Natürlich versuche ich das Wohl-Temperierte-System, -;
und wenn es nur die Pythagoreische wäre.
[Dafür müssten dann die schwarzen Tasten gespalten werden;
das ist natürlich quatsch :-))  ]
Jetzt geht es nur um 8 Töne, am Besten in C-Dur.

Dabei fällt mir ein, ich lege in den oberen Bereich
einfach einen 2er-Faktor
über FF Wie 16, 32, 64, o. ä. -. - D.h.: 01, 10, 100, o. ä. -.
Als Wellenlänge sind die längeren Wellen genauer.
Als Frequenz ist der obere Bereich genauer.
39 Wellen auf den Skop, für das "G" das wäre schon was.

Also ich experimentiere Weiter,
Liebe Grüße
Günter K.

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Rein rechnerisch würde ich ja sagen, dass es so stimmt.
> Da ich keine Juniorcomputer habe, versuche ich es mit einem
> zusammengebastelten Simulator. Der kommt aber irgendwie auf 537.6Hz.
> Ob es am Simulator liegt oder am Programm, versuche ich gerade
> herauszufinden.

Bei einem real Junior Computer mit einem ganzen MHz bekomme ich (mit 
Deinem Programm) 432.5Hz lt. Logicanalysator.

Wenn Du in Zeile 10 Deines Programmes LDX $DE (= 222 dec), bekommst Du 
440.1Hz (lt. des Logic-Analysator)

Das Prograemmle:
1
.ORG  $300
2
PAD EQU $1A80
3
PADD equ $1A81
4
PBD equ $1A82
5
PBDD equ $1A83
6
7
; generate a 440 Hz square wave
8
9
    lda #$1
10
    sta PBDD     ; set PB0 to output
11
loop:
12
    ldx #222     ; 5us×222+5us
13
    jsr shortdelay
14
    lda PBD      ; Read port B
15
    eor #$01     ; Toggle bit 0
16
    sta PBD      ; Write back
17
    jmp loop
18
19
shortdelay:
20
    dex             ; 
21
    bne shortdelay  ; 
22
    rts             ;

und der Hexcode zum Selbst-in den Junior tickern:
1
0300: A9 01 8D 83 1A A2 DE 20
2
0308: 15 03 AD 82 1A 49 01 8D
3
0310: 82 1A 4C 05 03 CA D0 FD
4
0318: 60

Ja, das waren die alten Zeiten, und ich bin froh, dass das Geschichte 
ist.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Thomas W. (datenreisender) 04.05.2025 14:30
>Bei einem real Junior Computer mit einem ganzen MHz bekomme ich (mit
>Deinem Programm) 432.5Hz lt. Logicanalysator.

Oh, super cool, danke :-)
Ich war mir auch nicht sicher ob man den Port der PIA für das EOR zurück 
lesen kann. Die Frage hast Du damit gleich mit beantwortet.

von Re (r42)


Lesenswert?

Thomas W. schrieb:
> Wenn Du in Zeile 10 Deines Programmes LDX $DE (= 222 dec), bekommst Du
> 440.1Hz (lt. des Logic-Analysator)

Was ist eigentlich mit den Interrupts für Tastatur und Display, die 
derzeit  noch zwischenfunken und zu (aus Sicht des Hauptprogramms) 
unbestimmten Zeitpunkten zusätzliche erratische Verzögerungen bewirken?

Ich habe den Verdacht, dass das die Pythagoreische Stimmung noch ein 
wenig trüben könnte.  ;-)


Thomas W. schrieb:
> Ja, das waren die alten Zeiten, und ich bin froh, dass das Geschichte
> ist.

Jepp. Früher war alles besser - vor allem die Zukunft! (Lesch?)

(re)

von Christoph M. (mchris)


Lesenswert?

Re (r42) 04.05.2025 19:17
>Was ist eigentlich mit den Interrupts für Tastatur und Display, die
>derzeit  noch zwischenfunken und zu (aus Sicht des Hauptprogramms)

Wer sagt denn, dass es Interrupts gibt?

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Günter K. (enk) 04.05.2025 13:04
>Also, wenn Töne getroffen werden, wäre das ja auch schon gut,
>Natürlich versuche ich das Wohl-Temperierte-System, -;
>und wenn es nur die Pythagoreische wäre.

Ich meine fast, dass auch nur 1 Byte für 8 Frequenzen reicht:
1
    ;*****************************************************************************
2
    ; 
3
    ; erzeuge eine Tonleiter mit Rechecktönen
4
    ;
5
    ; Zielfrequenzen
6
    ; f =   261.63   293.66   329.63   349.23   392.00   440.00   493.88   523.25
7
    ;
8
    ; Hardware: 6502, fcpu=1MHz
9
    ; 
10
    ;*****************************************************************************
11
12
    lda #$1
13
    sta PBDD     ; set PB0 to output
14
15
mainloop:
16
    ; C
17
    lda #200
18
    sta 0 ; teiler register
19
    jsr playnote
20
21
    ; D
22
    lda #158
23
    sta 0 ; teiler register
24
    jsr playnote
25
26
    ; E
27
    lda #121
28
    sta 0 ; teiler register
29
    jsr playnote
30
31
    ; F
32
    lda #104
33
    sta 0 ; teiler register
34
    jsr playnote
35
36
    ; G
37
    lda #73
38
    sta 0 ; teiler register
39
    jsr playnote
40
41
    ; H
42
    lda #45
43
    sta 0 ; teiler register
44
    jsr playnote
45
46
    ; A
47
    lda #20
48
    sta 0 ; teiler register
49
    jsr playnote
50
51
    ; C
52
    lda #9
53
    sta 0 ; teiler register
54
    jsr playnote
55
56
    jmp mainloop
57
58
playnote:
59
    ldy #50 ; duration
60
61
loop:
62
    ; default delay
63
    ldx #180        ; 5us×179+5us=900us
64
    jsr shortdelay  ; 6 cyles
65
66
    ; additional dela
67
    ldx 0 ; teiler register
68
    jsr shortdelay
69
70
    lda PBD      ; Read port B
71
    eor #$01     ; Toggle bit 0
72
    sta PBD      ; Write back
73
    dey
74
    bne loop
75
    rts
76
77
    ; Total time (in microseconds)=5N+5
78
shortdelay:
79
    dex             ; 2 cyc
80
    bne shortdelay  ; 3 cyc jmp , 2 no jmp
81
    rts             ; 6 cyc
82
83
84
; MOS6532 PIA addreses
85
        org $1A80
86
PAD:
87
88
        org $1A81
89
PADD:
90
91
        org $1A82
92
PBD:
93
94
        org $1A83
95
PBDD:

Im Anhang der Sound, wie er vom Emulator erzeugt über den 
Fernsehlautsprecher abgespielt klingt.

von Re (r42)


Lesenswert?

Christoph M. schrieb:
> Re (r42) 04.05.2025 19:17
>>Was ist eigentlich mit den Interrupts für Tastatur und Display, die
>>derzeit  noch zwischenfunken und zu (aus Sicht des Hauptprogramms)
>
> Wer sagt denn, dass es Interrupts gibt?


Nur so eine Vermutung:

Günter K. schrieb:
> Dabei geht es mir nicht darum, - das Keyboard nicht zu bauen,
> sondern sich die Spielerei zu erlauben, die schon gegebene Tastatur zu
> benutzen.

Irgendwie muss die Tastatur ja abgefragt werden, wenn sie mal zum 
Spielen benutzt wird.

Könnte man natürlich auch als Teil der Verzögerungsschleife machen.

(re)

von Klaus (feelfree)


Lesenswert?

Re schrieb:
> Irgendwie muss die Tastatur ja abgefragt werden, wenn sie mal zum
> Spielen benutzt wird.

Das wird dann im weiterführenden Experten-Kurs im Jahre 2027 realisiert.

von Thomas W. (datenreisender)


Lesenswert?

Ich hatte je die Junior-Handbuecher verlinkt, dort wird auch erklaert, 
wie die Tastatur und das Display angesteuert wird.

Hint: Keine Interrupts. Kein UART. I/O (sowohl seriell als auch Tape) im 
Polling. Das waren die Achtziger.

von Josef G. (bome) Benutzerseite


Lesenswert?

Thomas W. schrieb:
>
1
> shortdelay:
2
>     dex             ;
3
>     bne shortdelay  ;
4
>     rts             ;
5
>
Wobei man beachten sollte, dass beim 6502 die Dauer des BNE
davon abhängt, ob eine 256-Byte-Grenze übersprungen wird.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Günter K. schrieb:
>> Ich weiß aber noch nicht, - was ich wo, einordnen sollte? XY oder YX
>
> Auch wenn ich befürchte, dass du die Analogie nicht verstehst:
>
> Nehmen wir an, du musst 1000 Sekunden warten, kannst aber nur bis 100
> zählen.
> Ist es dann egal ob du 10 mal 100 Sekunden wartest oder 100 mal 10
> Sekunden?

Ganz einfach (doch so(!) einfach ist es nicht!)
Ich zähle so und sooft das Y hoch, die dann jedes Mal ebenfalls auch, so 
und sooft multipliziert wird, bis die passende Zahl erreicht wird.
Allerdings mit dem Vorteil, dass das verbleibende X jedes Mal nur einmal 
vorkommt.
Bis der entsprechende
Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 5 Wellen dazu, dann
habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert 
ergibt 440 Hz.
Den Wert für das A4 hat mir jemand von Euch geschickt.

Ich bekomme gerade Besuch, und melde mich später nochmal.
Liebe Grüße
Günter K.
(Enk)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ganz einfach (doch so(!) einfach ist es nicht!)
> Ich zähle so und sooft das Y hoch, die dann jedes Mal ebenfalls auch, so
> und sooft multipliziert wird, bis die passende Zahl erreicht wird.
> Allerdings mit dem Vorteil, dass das verbleibende X jedes Mal nur einmal
> vorkommt.
> Bis der entsprechende
> Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 5 Wellen dazu, dann
> habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert
> ergibt 440 Hz.

Gute Besserung!

von Harald K. (kirnbichler)


Angehängte Dateien:

Lesenswert?

Weiter oben ist ein nicht besonders gut lesbarer Schaltplan gepostet, 
hier gibts einen besseren.

(Quelle: 
http://retro.hansotten.nl/wp-content/uploads/2022/10/schematic_junior_computer.jpg. 
Da da schon jpg, hab' ich das jetzt nicht konvertiert)

Der 6532 könnte einen Interrupt auslösen, das ist der einzige Baustein, 
der an der /IRQ-Leitung des 6502 angeschlossen ist.

von Christoph M. (mchris)


Lesenswert?

Harald K. (kirnbichler)
05.05.2025 07:44
>Der 6532 könnte einen Interrupt auslösen, das ist der einzige Baustein,
>der an der /IRQ-Leitung des 6502 angeschlossen ist.
Darüber hatte ich auch schon nachgedacht. Das Thomas oben erwähnte 
Beispielprogramm funktioniert ohne.
Die Frage ist, ob die Auflösung des 6532 eine genügend granulare 
Frequenz für die Rechtecktonerzeugung hergibt.
Die Frage ist aber auch, ob man wirklich den 6532 verwenden will. Falls 
man die gewonnen Erkenntnisse auf einen Apple 2 übertragen wollte, ginge 
das nicht, weil der diesen Chip nicht hat. Außerdem ist dieser Chip für 
den Bau eines echten Retro-Computers kaum zu bekommen.

von Harald K. (kirnbichler)


Lesenswert?

Christoph M. schrieb:
> Die Frage ist, ob die Auflösung des 6532 eine genügend granulare
> Frequenz für die Rechtecktonerzeugung hergibt.

Wenn Du über den Timerinterrupt gehen willst, ist dessen Quelltakt 
offensichtlich der Systemtakt (hier: 1 MHz). Als Vorteiler kann 1, 8, 64 
oder 1024 verwendet werden, und der Timer selbst ist ein 8-Bit-Timer. 
Der steuert allerdings keinen I/O-Pin, sondern nur die Interruptleitung 
an, d.h. man muss für Timingbetrachtungen auch noch den Overhead eines 
Interruptaufrufs berücksichtigen.

> Die Frage ist aber auch, ob man wirklich den 6532 verwenden will.

Da der im vorliegenden Computer drinsteckt, warum nicht? Es geht dem 
Threadstarter darum, seine Programmierübungen auf dem Gerät zu machen, 
was er hat, nicht, sich Gedanken um irgendwelche anderen Computer zu 
machen.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Auch wenn ich befürchte, dass du die Analogie nicht verstehst:
>
> Nehmen wir an, du musst 1000 Sekunden warten, kannst aber nur bis 100
> zählen.
> Ist es dann egal ob du 10 mal 100 Sekunden wartest oder 100 mal 10
> Sekunden?


Hallo Klaus,

hier ist es mir wichtig, ein extra Dankeschön zu sagen.
Und Danke an alle.

Also spielt es keine Rolle ob gerade das X- oder Y-Register 
herunterzählt.
Inzwichen habe ich auch gelesen, dass durch Lesen eines Bytes eine 
ausreichende Genauigkeit erreicht werden kann.

Bei einer Frequenz von 49 Hz als G und 6 Wellen dazu sind 55 Hz als A.
Das entspricht ungefähr der 6er Wurzel aus 2.
Das ist ein Abstand von einem ganzen Ton.

Erdachte mir aber noch einen Lösungsweg.
Ich fange ganz oben an abzuzählen bei eine ganz Hohe Frequenz.
Dann mache ich eine Liste dieser Frequenzen, wenn die passenden "f"
dabei sind wird vielfach mit dem Faktor 2 heruntergeteilt,
biss ich in dem passenden Bereich bin.
Übrigens, das mit G und A, gibt es auch so ähnlich, zwichen Fis und G,
hierbei handelt es sich ungefähr um die 12er Wurzel aus 2.
Liebe Grüße
Günter K.
(ENK)

PS.: Ich bekomme gleich Besuch,
Wenn ich die Zahlen ausgerchnet habe,
komme ich auch nochmal auf das Fis und G und A zurück;
hat aber nicht direkt was mit dem Herunterzälen zu tun,
sondern nur indirekt. - Bis später.

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Harald K. (kirnbichler) 05.05.2025 08:10

>Wenn Du über den Timerinterrupt gehen willst ..

Danke für den Hinweis.

Ich versuche gerade herauszukriegen, wie der Timer im 6532 genau 
funktioniert.
Wenn ich es richtig verstehe (Anhang), sollte das Schreiben eines 
Start-Bytes auf Base-Adresse + 0x17 den Vorteiler auf 1024 setzten, 
Interrupts "disablen". Danach zählt der Timer vom Startwert aus 
herunter.

Witzig an dieser historischen Technik ist, dass der Vorteiler über die 
Adressierung gesetzt wird, dass spart ziemlich Zeit.

Liege ich mit meinen Annahmen richtig?

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Wenn ich die Zahlen ausgerchnet habe,

Die passenden Zahlen für die Verzögerungsschleife für eine ganze 
Tonleiter sind bereits im Beitrag

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

enthalten, kein Grund die neu zu berechnen.

von Soul E. (soul_eye)


Lesenswert?

Klaus schrieb:
> Günter K. schrieb:
>> Wenn ich die Zahlen ausgerchnet habe,
>
> Die passenden Zahlen für die Verzögerungsschleife für eine ganze
> Tonleiter sind bereits im Beitrag
>
> Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
>
> enthalten, kein Grund die neu zu berechnen.

Man findet die Werte auch in dem oben verlinkten Buch. Zusammen mit der 
Musterlösung zum Einlesen der Klaviatur und zur Tonerzeugung.

Aber durch Abtippen lernt man nichts, da ist selbermachen sinnvoller.

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Harald K. (kirnbichler) 05.05.2025 08:10
>
>>Wenn Du über den Timerinterrupt gehen willst ..
>
> Danke für den Hinweis.
>
> Ich versuche gerade herauszukriegen, wie der Timer im 6532 genau
> funktioniert.

Wenn Du Interesse hast, das Junior Buch Band 2, hat ein komplettes 
Kapitel fuer die 6532.

hier:

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

Seite 33 bis 99.

Ich habe die vier Elektor-Buecher in den 1980'er gekauft, n-mal 
umgezogen (n > 5), aber so haeufig wie in den letzten zwei -  drei 
Monaten habe ich die nie benutzt!

Gruesse

Th.

P.S.: Interrupt war wohl fuer Elektor nicht so spannend (oder zu 
kompliziert), sowohl bei der 6502 als auch bei der z80 (die ein deutlich 
besseres Konzept hat) wurde der Interrupt nie benutzt.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Thomas W. (datenreisender)
05.05.2025 21:06
>Wenn Du Interesse hast, das Junior Buch Band 2, hat ein komplettes
>Kapitel fuer die 6532.
>hier:
>http://retro.hansotten.nl/uploads/junior/books/de/...
>P.S.: Interrupt war wohl fuer Elektor nicht so spannend (oder zu
>kompliziert), sowohl bei der 6502 als auch bei der z80 (die ein deutlich
>besseres Konzept hat) wurde der Interrupt nie benutzt.

Für heutige Verhältnisse scheint mir das Timer-Modul etwas umständlich 
erklärt. Aber ab Seite 77 hat der Autor tatsächlich Interrupts in 
Verwendung (Allerdings auch ziemlich aufwändig ..).

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich fange ganz oben an abzuzählen bei eine ganz Hohe Frequenz.
> Dann mache ich eine Liste dieser Frequenzen, wenn die passenden "f"
> dabei sind wird vielfach mit dem Faktor 2 heruntergeteilt,
> biss ich in dem passenden Bereich bin.
> Übrigens, das mit G und A, gibt es auch so ähnlich, zwichen Fis und G,
> hierbei handelt es sich ungefähr um die 12er Wurzel aus 2.

Mann kann sich natürlich alles völlig von Null erarbeiten. Dann wird man 
halt nie fertig bzw. kommt nie zur eigentlichen Aufgabe.

Ich dachte Du willst programmieren lernen, nicht die Grundlagen einer 
Tonleiter herleiten.

Mein Vorgehen wäre deshalb:
Ich such mir die Frequenzen der Töne, die ich erzeugen will, kurz über 
google zusammen. Dauert 10 Sekunden.

Beispiel für die Note C4:

C4 =  261,626 Hz, entspricht einer Periodendauer von 1/261 = 3822us.
Wir brauchen aber die halbe Periodendauer (jeweils mit Ausgang 0 bzw. 
1), also 3822 = 1911 us. Solange muss man warten, bis der Ausgang 
umgeschaltet wird. Die einfache Verzögerungsschleife braucht 5 
Taktzyklen = 5us pro Wert, also muss die Schleife 1911us/5us = 382mal 
durchlaufen werden.

Weil 382 größer ist als 255 (die mit 8 Bit größte darstellbare Zahl), 
muss man sich etwas einfallen lassen.
Im Progrämmchen von Christoph oben wird die Verzögerungsroutine halt 2 
mal aufgerufen, einmal mit 180 und einman mit 200. Die Summe 380 ist 
noch exakter als meine oben berechneten 382, weil es auch noch feste 
Verzögerungen im Programmablauf gibt. Aber das sind Feinheiten, die am 
Anfang überhaupt nicht interessieren.

Genausogut könnte man sich eine Verzögerungsschleife überlegen, die 
länger als 5us braucht, z.B. 10us. Dann muss man sie nur mit dem Wert 
382/2=191 aufrufen, was wieder mit einem einfachen Zähler geht.

Oder man nimmt halt eine veschachtelte Schleife mit 2 Zahlen, also 
2x191, 4x95, 8x48 oder was einem beliebt und möglichst genau 382 ergbit. 
Das ist halt die komplizierteste Variante.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:

Günter K. schrieb im folgenden Text:
> Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 5 Wellen dazu, dann
>> habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert
>> ergibt 440 Hz.

Da habe ich mich vertippt, ich meinte aber:

"Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 6 Wellen dazu, 
dann
habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert
ergibt 440 Hz."

 von Soul E. (soul_eye)schrieb am 05.05.2025 um 19:48 :
"Aber durch Abtippen lernt man nichts, da ist selbermachen sinnvoller."

Günter K. schreibt:
Hallo, und Danke für die Antwort. Ich muss mich noch mehr damit 
befassen;
so, dass ich es selber machen und verstehen kann. In diesem Falle, die 
Werte in dem Y- und X-Register in Bezugnahme auf Wellenlänge und 
Frequenz.

Bitte hierauf noch nicht antworten.
Ich muss mich selber genug damit beschäftigen, damit ich es verstehe. - 
Falls ich danach, immer noch nicht verstanden habe, danach melde ich 
mich evtl. noch mal mit Fragen. Bis jetzt habe ich es noch nicht richtig 
genug verstanden.

Liebe Grüße Grüße
Günter Ja,
(ENK)

von Christoph M. (mchris)


Lesenswert?

> Nimmt man die 55 Hz mal 4 multipliziert ergibt 440 Hz."

Mathematisch kommt mir das seltsam vor. Mein Taschenrechner sagt:
>> 55*4
ans = 220

von Günter K. (enk)


Lesenswert?

von Klaus (feelfree)
05.05.2025 22:38:

Mann kann sich natürlich ... kommt nie zur eigentlichen Aufgabe. ...
Ich dachte Du willst programmieren lernen, ...
Mein Vorgehen wäre deshalb: ...
C4 =  261,626 Hz, entspricht ... usw.

Dazu schreibe ich:
Das ist hervorragend sehr gut!! EIN VIELFACHES DANKESCHÖN!!
        ======================= ===========================

Natürlich möchte und will ich programmieren lernen.
Gibt es u. a. kurze Beispiele um so, das Verhalten des Prozessors und 
dem
Computer zu verstehen? Aber schon bei dem Z80, Mikro-Professor, kam ich 
nicht zurecht, weil da viel zu viele Informationen waren, von denen ich 
nicht wusste, wozu sie auch gehörten. Bei dem 6502 erscheint es mir 
einfacher.

Ich bin begeistert von Deinen sehr guten Erklärungen!
Besonders auch die Idee mit den Verschachtellungen. Prima.

Gibt es Programmier-Beispiele, die gleichzeitig(also hintereinander)
Wenige Befehle mit Aderessierungsart vorgegeben sind, um zu sehen
wie der Prozessor und der Computer reagiert?
Jetzt will ich fürs Erste, mal bei dem 6502 bleiben.

Zu viele Gedanken über Toleranzen, Schalt-Hysterese und dessen 
Interferenzen mache ich mir jetzt noch nicht, - ich freue mich ja,
kleine Erfolge zu sehen. Schwierige Fragen kommen erst später.
Aber dabei fällt mir ein:
Bei Zahlen die > 127 sind, muss man da das N-Flag ausschalten?

Ein Dankeschön, auch an alle anderen Leute hier.
Selbst Deinen Beitrag, hatte ich noch nicht gelesen.
Mit lieben Grüßen
Günter K
(ENK)

von Christoph M. (mchris)


Lesenswert?

> Bei Zahlen die > 127 sind, muss man da das N-Flag ausschalten?

Am besten ist es, wenn du deine Fragen hier eingibst:
https://www.perplexity.ai

Du solltest aber den Kontext zuerst erwähnen: 6502

von Christoph M. (mchris)


Lesenswert?

Hier mal der Versuch, den Timer ohne Interrupt zu verwenden.
Wenn ich es richtig verstehe, kann man den Timer wohl einfach durch das 
Beschreiben der entsprechenden Adresse starten.

Das Programm sollte also folgendes machen:
1. Timer starten
2. Warten bis abgelaufen
3. Portpin rumdrehen
4. Jump zu 1.

Das wäre dann auch eine einfache Möglichkeit, einen Ton zu erzeugen.

Kann es von euch mal jemand ausprobieren? Ich habe nur eine Simulation 
und weiß nicht, ob sie der Realität entspricht.
1
    lda #$1
2
    sta PBDD     ; set PB0 to output
3
4
start:
5
    lda #18
6
    sta TIMER_DIV64 ; starte timer mit prescaler 64, sollte ca. 430Hz ergeben
7
8
wait:
9
    lda TIMER_READ
10
    bne wait ; Warte, bis timer 0
11
12
    ; port B0 umschalten
13
    lda PBD     ; Read port B
14
    eor #$01    ; Toggle bit 0
15
    sta PBD     ; Write back
16
17
    jmp start
18
19
; MOS6532 PIA addreses
20
21
22
        org $1A82
23
PBD:
24
25
        org $1A83
26
PBDD:
27
28
        org $1A84 ; timer read register
29
TIMER_READ:
30
31
        org $1A96 ; address to start timer prescaler 64 and no Interrupt
32
TIMER_DIV64:
33
34
"""

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> Das Programm sollte also folgendes machen:
> 1. Timer starten
> 2. Warten bis abgelaufen
> 3. Portpin rumdrehen
> 4. Jump zu 1.

Es "gutes" Beispiel, wie man einen Timer maximal sinnlos verwenden kann. 
Eine Warteschleife kann die CPU auch allein. Und die IO-Register 
definiert man als Konstanten und nicht Labels. Auch wenn das Ergebnis 
das Gleiche ist.

PBD = $1A82
PBDD = $1A83

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Falk B. (falk) 06.05.2025 11:58
>Es "gutes" Beispiel, wie man einen Timer maximal sinnlos verwenden kann.

Nicht für jeden ergibt sich der gleiche Sinn. Das Beispiel ist dafür da, 
die Implementation des 6532 meines Emulators zu testen.

>Und die IO-Register
>definiert man als Konstanten und nicht Labels. Auch wenn das Ergebnis
>das Gleiche ist.

Könnte ich, wenn es mein Assembler hergäbe. Da ich den nun aber von hier 
habe
https://github.com/dj-on-github/py6502
geht's so nicht.
1
PBD = $1A82  
2
PBDD = $1A83

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


Lesenswert?

Günter K. schrieb:
> Aber schon bei dem Z80, Mikro-Professor, kam ich
> nicht zurecht, weil da viel zu viele Informationen waren, von denen ich
> nicht wusste, wozu sie auch gehörten. Bei dem 6502 erscheint es mir
> einfacher.

Hmm...
Wundert mich.
Mir erscheint der Z80 einfacher/logischer.
Und von Rodney Zaks auch perfekt und umfassend erklärt

Wie auch immer:
Jedem sein eigenes Himmelreich.

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


Lesenswert?

Arduino F. schrieb:
> Mir erscheint der Z80 einfacher/logischer.

Einfach und logisch ist die 8080. Die Z80 ist etwas zu hybrid.

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
>>> 55*4
> ans = 220

Oh, je, ja stimmt!
Liebe Grüße
Günter K.
(ENK)

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


Lesenswert?

(prx) A. K. schrieb:
> 8080

Die ASM Mnemonics sind beim Z80 einheitlicher.

Aber letztendlich eine Geschmackssache, historisch, und damit heute 
quasi irrelevant.

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


Lesenswert?

Arduino F. schrieb:
> Hmm...
> Wundert mich.
> Mir erscheint der Z80 einfacher/logischer.
  Andere Leute die ich kenne, sagen das auch.
> Und von Rodney Zaks auch perfekt und umfassend erklärt
>
> Wie auch immer:
> Jedem sein eigenes Himmelreich.

Nun ja, wenn ich die weiteren Bücher, die Rodney Zaks vorschlug,
über das Interne des Mikroprozessors lese, würde das wohl stimmen.
Den Mikro-Professor habe ich von einer guten Bekannten von mir.

Wie ich las, hat er ja auch Bücher über den 6502 geschrieben.
Das Lob für ihn ist wohl, wohl verdient.

Nur muss ich mal versuchen mit dem, das mir einfacher erscheinende etwas
zu tun. Dazu habe ich alle Befehle und Adressierungsarten auf einem 
Blatt.
Was aber noch lange nicht heißt, dass ich sie alle verstanden habe, aber 
immerhin, sie stehen auf einem Blatt. :-)
Liebe Grüße
Günter K.
(ENK)

PS.:
Im Grunde genommen, ist es in all diesen Fällen, ja immer logisch.

: Bearbeitet durch User
von Thomas Z. (usbman)


Lesenswert?

Günter K. schrieb:
> Nur muss ich mal versuchen mit dem

Versuchen reicht nicht! Machen ist das Zauberwort... Es hilft auch 
nichts alles mal auf eine Seite zu schreiben. Statt wochenlang über wohl 
temperierte Klangerzeugung zu reden, die es bei einem Rechteck Signal 
sowieso nicht gibt, könntest du ja mal versuchshalber einfach ein 440Hz 
Signal generieren.

Ich gehe jede Wette ein dass du noch kein funktionsfähiges Programm 
geschrieben hast, was zumindest  einen BEEP ausgegeben hat.

Beispiele wie das geht hast du ja schon einige erhalten. Die willst du 
aber nicht nehmen. Dagegen schurbelst du darüber wie einfach doch die 
Ton Erzeugung ist und verwechselt permanent Hex Zahlen mit Dezimal 
Zahlen. Dazu erklärst hier hier dass der Z80 so kompliziert ist und der 
Rodney auch ein Buch über den 6502 geschrieben hat.

Du blabberst von Adressierungsarten hast aber keinen Schimmer von deren 
Bedeutung.

von Roland F. (rhf)


Lesenswert?

Hallo,
Günter K. schrieb:
> Wie ich las, hat er ja auch Bücher über den 6502 geschrieben.

Ja, hat er. Und wenn ich hier so lese wie schwer du dich mit der Materie 
tust, rate ich dir dringend zumindest die Ausgabe "Programmierung des 
6502" zu besorgen.
Und im Buch "6502 Anwendungen" wird im Kapitel 5 ausführlich erklärt wie 
man mit Hilfe eines 6522 Töne erzeugt.

rhf

von Thomas Z. (usbman)


Lesenswert?


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


Lesenswert?

Es würde schon ausreichen, die Elektor Bücher zum Junior konsequent 
durchzuarbeiten. Die beziehen sich immerhin direkt auf die vorhandene 
Hardware!

von Roland F. (rhf)


Lesenswert?

Hallo,
Thomas Z. schrieb:
> Ob das so weiterhilft

Ich fürchte nein.

Wolfgang R. schrieb:
> Es würde schon ausreichen, die Elektor Bücher zum Junior konsequent
> durchzuarbeiten. Die beziehen sich immerhin direkt auf die vorhandene
> Hardware!

Ich glaube dem steht entgegen das Günter eigene Vorstellungen davon hat 
wie man einen Prozessor programmiert und er mit den üblichen Unterlagen 
nichts rechtes anzufangen weiß.

rhf

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
>> Bei Zahlen die > 127 sind, muss man da das N-Flag ausschalten?
>
> Am besten ist es, wenn du deine Fragen hier eingibst:
> https://www.perplexity.ai
>
> Du solltest aber den Kontext zuerst erwähnen: 6502

Hallo Christoph M.

Danke, das geht ganz automatisch.
Liebe Grüße
Günter K.
(ENK)

von Christoph M. (mchris)


Lesenswert?

>Danke, das geht ganz automatisch.

Apropos:
Wenn du nicht mehr von Hand assemblieren willst, gehe auf folgende 
Seite:

https://www.masswerk.at/6502/assembler.html

Tippe dort im linken Fenster folgendes ein:
1
.org $300
2
loop:
3
adc #1
4
jmp loop

Drücke rechts unten auf "Assemble". Dann erscheint der Maschinencode in 
Hexadezimalzahlen.

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> Apropos:
> Wenn du nicht mehr von Hand assemblieren willst, gehe auf folgende
> Seite:

Das haben wir schon mehrfach empfohlen. Scheint aber nicht so ganz 
durchgedrungen zu sein. Was aber nicht übersaschend ist . . .

von Günter K. (enk)


Lesenswert?

Thomas Z. schrieb:
> Günter K. schrieb:
>> Nur muss ich mal versuchen mit dem
>
> Versuchen reicht nicht! Machen ist das Zauberwort... ...Statt wochenlang über 
wohl temperierte Klangerzeugung ... ...
> sowieso nicht gibt, könntest du ja mal versuchshalber einfach ein 440Hz
> Signal generieren.
Günter K. schreibt:
Das habe ich, aber noch nicht gezeigt; - das folgt gleich.
> Ich gehe jede Wette ein dass du noch kein funktionsfähiges Programm
> geschrieben hast, was zumindest  einen BEEP ausgegeben hat.
Günter K. schreibt:
  Das stimmt. Zwar habe ich das Signal erzeugt, aber nicht gehört.
  Habe einen kleinen Lautsprecher u. Platinen(Isolation) dazu gekauft, 
noch
  nicht eingebaut. - Aber einen Aktivlautsprecher habe ich noch 
andernorts.
> Beispiele wie das geht hast du ja schon einige erhalten. Die willst du
> aber nicht nehmen. (Weil hier nicht so sehr relevant, gehe ich hier nicht
hier an dieser Stelle auf die wohl temperierte Klangerzeugung ein.
Günter K. schreibt:
Doch, aber damit komme ich noch nicht so gut zurecht.
> Dagegen schurbelst du darüber wie einfach doch die
> Ton Erzeugung ist und verwechselt permanent Hex Zahlen mit Dezimal
> Zahlen.
Günter K. schreibt: Wo?
> Dazu erklärst hier hier dass der Z80 so kompliziert ist und der
> Rodney auch ein Buch über den 6502 geschrieben hat.
Ich werde es kaufen.
> Du blabberst von Adressierungsarten hast aber keinen Schimmer von deren
> Bedeutung.
Günter K. schreibt:
Tatsächlich, habe ich erst vor kurzem die R.-Adressierungsart gelernt, 
was
Wolfgang R. -sehr gut- erklärt hat. - Mit der Adressierungsart der
indiziert-indirekte und indirekt-indizierte Adressierung muss ich mich 
noch mit beschäftigen.
Unser Lehrer sagte damals zu den eben genannten Adressierungsarten:
"Ja, da stolpern Andere auch." Ich muss mich aber noch mit dem 6532 
beschäftigen, sonst komme ich aus der Schleife nicht mehr raus, wenn ich 
weitere Programmteile einbringen will. Die 440 Hz folgen gleich.
Ich habe hier an Thomas Z. geantwortet, weil mir die Formulierung in 
seinem Stil, etwas zu fraglich erschien.
Ich bedanke mich bei Dir und ich bedanke mich bei Allen das ist sehr 
gut.

Damit es nicht so umständlich wird, schicke ich das 440 Hz-Prg. im 
folgenden Beitrag.
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Angehängte Dateien:

Lesenswert?

Hallo Leute:
Das 440 Hz-Prg.

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

PS.:
Ist die Datei angehängt?
440 Hz.xlsx

von Alexander S. (alesi)


Lesenswert?

Günter K. schrieb:
> Ist die Datei angehängt?
> 440 Hz.xlsx

Ja, aber Programme schreibt man doch nicht in Excel und man speichert 
sie auch nicht im Excel-Format (xlsx), sondern als normale Textdatei (.S 
.c oder .txt). Dann kann man das Programm auch direkt im Browser 
anschauen.

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


Lesenswert?

Alexander S. schrieb:
> Ja, aber Programme schreibt man doch nicht in Excel

Hast du dir die Datei wenigstens mal angeschaut? Sieht nicht danach aus.

von Thomas Z. (usbman)


Lesenswert?

"(Und täglich grüßt das Murmeltier)" steht so in der xls Datei :-(

allerdings sehe ich kein Programm. Da kann man wohl nichts mehr machen.

von Thomas W. (datenreisender)


Lesenswert?

Alexander S. schrieb:
> Günter K. schrieb:
>> Ist die Datei angehängt?
>> 440 Hz.xlsx
>
> Ja, aber Programme schreibt man doch nicht in Excel und man speichert
> sie auch nicht im Excel-Format (xlsx), sondern als normale Textdatei (.S
> .c oder .txt). Dann kann man das Programm auch direkt im Browser
> anschauen.

Details... The rub would be: kommen denn 440Hz aus irgendeinem Port 
raus? Oder nicht? Ist das Ding assemblierbar?

von Christoph M. (mchris)


Lesenswert?

Ich habe den 6502-Eumlator mittlerweile Zyklengenau auf dem PiPico 
laufen. Die 6532Ports habe ich auf PORTA: GPIO2-GPIO9 und PORTB 
GPIO10-GPIO17 gemapped.

Will es jemand aufprobieren?

von Alexander S. (alesi)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Hast du dir die Datei wenigstens mal angeschaut?

Ich habe Linux ohne LibreOffice und werde nur wegen der Datei auch nicht 
nach einem xslx-Viewer im Internet suchen.

von Günter K. (enk)


Lesenswert?

Thomas W. schrieb:
> Details... The rub would be: kommen denn 440Hz aus irgendeinem Port
> raus? Oder nicht? Ist das Ding assemblierbar?

Hallo Thomas W.

Ja, wie ich schrieb. - In Spalte A, stehen dezimale Zeilennummern fürs
Programm. In Zeile 3 und 8, ist zu sehen, dass es sich um Port A 
handelt.
Hardwaremäßig ist das PIN 3 oben auf der asymmetrischen Leiste neben dem
Display, welches mir Wolfgang R. freundlicherweise mitgegeben hatte.
Ich kann das Programm in den Editor übertragen.
Da sind sie dann aber als 1. noch im Format vom Junior-Computer-Buch. S. 
u.
Als nächstes, muss ich die Befehle an seinen Anfang setzen.
Dann kommt in der Zeile als
1. die Zeilennummer,
2. Die Marke,
3. Die Adresse
4. den Maschinen-Befehl als OP-Code,
5. der Befehl,
6. die Adressierungsart,
7. den REM-Befehl. (Das Wort habe ich vom BASIC).
(Hier noch ähnlich wie in JUNIOR-BUCH.)
Danach wird es wie üblich.

Es gibt aber Editoren, die schreiben die Zeilennummer selber.

Ich habe hier der EDITOR von WINDOWS. Ich hatte für andere 
Programmiersprachen den Editor von einem KOMPILER benutzt.
Ich möchte aber -nicht kompilieren-, denn das Programm läuft ja. - Mir 
wurde auch mal WORDPAD vorgeschlagen. Damit habe ich noch nie was getan.
In Excel habe ich über den Maschinen-Befehls OP-Code, einen schwarzen 
Balken gemacht.
Liebe Grüße
Günter K.
(ENK)

PS.:
Natürlich möchte ich das Programm zu einem -einfachen-
Spiele-Musik-Programm noch weiter ausarbeiten.
Das "Editor"-Programm: "440 Hz", kommt als nächstes.

: Bearbeitet durch User
von Hans .. (Firma: Private) (erty21)


Lesenswert?


von Günter K. (enk)


Angehängte Dateien:

Lesenswert?

Hallo liebe Leute,

jetzt versuche ich den Windows-Editor hochzuschicken.
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Alexander S. schrieb:
> Ich habe Linux ohne LibreOffice und werde nur wegen der Datei auch nicht
> nach einem xslx-Viewer im Internet suchen.
Hallo Alexander,
Werde oder habe ich gemacht,
Da ich aber jede Adresse untereinader habe,
weiß ich nicht, ob das für den Assembler lesbat ist.
Es wurde sogar freunlicher Weise umbenannt in: 440 Hz.asm
im vorigen Beitrag.
Liebe Grüße
Günter K.
(ENK)

von Soul E. (soul_eye)


Angehängte Dateien:

Lesenswert?

Günter K. schrieb:
> Da ich aber jede Adresse untereinader habe,
> weiß ich nicht, ob das für den Assembler lesbat ist.

So sieht das bei einem richtigen Assembler aus. Die asm-Datei erstellst 
Du, die bin-Datei erzeugt der Assembler. Im Listing lst kann man die 
Arbeit kontrollieren.

Rechnen brauchst Du nicht, man gibt einfach die Sprungmarken (labels) 
als Ziel an: "BEQ M2". Den Abstand rechnet der Assembler aus, und der 
warnt auch wenn es zu weit ist.

von Günter K. (enk)


Lesenswert?

Thomas Z. schrieb:
> "(Und täglich grüßt das Murmeltier)" steht so in der xls Datei :-(
>
> allerdings sehe ich kein Programm. Da kann man wohl nichts mehr machen.
Hallo Liebe Leute; hallo Thomas Z und Thoma W!

Doch: - Ja, das Programm 440Hz.asm kommt gleich im Editor von WINDOWS.
Muss ich noch umschreiben. In 2 Formaten. Das 2. wird das Üebliche sein.
Schreibfehler: Umlaute etc. werden rausgeholt.
Frage: Welchen Editor empfehlt Ihr mir?
Liebe Grüße
Günter K.
(ENK)

von Christoph M. (mchris)


Lesenswert?

>Frage: Welchen Editor empfehlt Ihr mir?
Probier mal Notepad++

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:

> Frage: Welchen Editor empfehlt Ihr mir?

Immernoch https://www.asm80.com/

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Soul E. (soul_eye)
12.05.2025 23:01

>So sieht das bei einem richtigen Assembler aus.

Ich verwende momentan ca65:
https://cc65.github.io/doc/ca65.html

Bei der Verwendung von Assemblern gibt es das kleine Problem, dass sich 
jeder Assembler im Syntax ein wenig unterscheidet. Aus diesem Grunde 
kann ich Günter schon verstehen: wenn man sich erst mal den Ärger mit 
den Syntax-Problemen vom Halse halten will, kann man das Ganze auf dem 
Papier von Hand machen. Dann versteht man auch die Details.
Das Beispiel von oben sieht für den ca65 so aus:
1
        ; https://www.mikrocontroller.net/topic/571835?page=4#7875457
2
        ;
3
        ;CPU 6502
4
        ;PAGE 0
5
6
PAD     =$1A80
7
PADD    =$1A81
8
9
        .ORG $0300
10
START:
11
        LDA  #$FF        ; FF als Ausgang, für das Datenrichtungsregister
12
        STA   PADD       ; Direktionsregister PADD:  "OUT"
13
M1:
14
        LDA  #$FF        ; FF als DATEN, für das Datenregister
15
        STA  PAD         ; PAD:   "FF"  (später "00")
16
        JSR  SUB          ; JumpToSubRoutine Zeitverzögerung DELAY.
17
18
        LDA  #$00        ; als DATEN, für das Datenregister
19
        STA  PAD         ; PAD:   "00"  (später "FF")
20
        JSR  SUB         ; JumpToSubRoutine Zeitverzögerung DELAY.
21
22
        JMP  M1
23
24
SUB:
25
        LDY  #$01      ; SR Beginn SUBROUTINE
26
M2:
27
        LDX  #$DE      ; mit   ZP-ADRESSIERUNGSART sind durch IM ersetzt.
28
M3:
29
        DEX
30
        BNE  M3
31
        DEY
32
        BNE M2
33
        RTS             ; RETURN FROM SUBROUTINE

Im Gegensatz zum von dir verwendeten Assembler braucht das ORG einen 
Punkt, alle Labels brauchen einen ':', das EQU wird zum '=' und ein 
'END' wird nicht erkannt.

Ich habe das Programm mal auf dem 6502PiPicoEmulator getestet. Als 
erstes ging es nicht. Warum? Ich dachte die Konvention sei den 
Lautsprecher an PB0 anzuschließen, aber in dem Programm wird der ganze 
PORTA 'getoggled' nicht aber PORTB0. Also in dem Fall: Lautsprecher an 
irgend einen Pin von PORTA anschließen.
Es hat mich erstaunt, dass die Frequenz von 440Hz relativ gut getroffen 
wird.

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> wenn man sich erst mal den Ärger mit
> den Syntax-Problemen vom Halse halten will, kann man das Ganze auf dem
> Papier von Hand machen. Dann versteht man auch die Details.

Was für ein Käse. Das was hier läuft, ist an Unfug kaum zu überbieten. 
Oder ein "wie mach ich es möglichst umständlich und undurchsichtig" 
Wettbewerb!

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

Nützt rein gar nichts, weil der Günther gar nicht aufnahmefähig ist.

von Günter K. (enk)


Angehängte Dateien:

Lesenswert?

Soul E. schrieb:
> von  Soul E. (soul_eye)  12.05.2025 23:01
> weiß ich nicht, ob das für den Assembler lesbat ist.

So sieht das bei einem richtigen Assembler aus. Die asm-Datei erstellst
Du, die bin-Datei erzeugt der Assembler.

Hallo von  Soul E.,
Danke für den Beitrag.

Kann den der Assembler etwas mit meiner Version anfangen?
Ich habe gerne die Daten untereinander, geht das?
Liebe Grüße
Günter K.
(ENK)

PS. Die anderen Beiträge muss ich noch lesen.
Hier zeige ich mal folgenden Versuch und ich vermute,
dass ich Fehler reingeschrieben habe.

von Günter K. (enk)


Lesenswert?

von Falk B. (falk) 13.05.2025 09:15

Hollo Falk B. und an alle, Du schriebst zum Beitrag:
> "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
> Nützt rein gar nichts, weil der Günther gar nicht aufnahmefähig ist.

Nun, ich gebe das Programm in "HEX'" ein, und es läuft!

Übersichtliche Konventionen halte ich für zweckmäßig und
Die Schriftsteller vom ELEKTOR-JUNIOR-COMPUTER machen es ja so.

Das heißt nicht, dass ich die Emulatoren nicht benutzen werde.
Danke auch, für Deinen Emulator-Vorschlag, es ist ja auch nicht der 
erste.
Liebe Grüße
Günter K.
(ENK)

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


Lesenswert?

Christoph M. schrieb:
> Es hat mich erstaunt, dass die Frequenz von 440Hz relativ gut getroffen
> wird.

Hallo Christph M.
Ich werde mir Deinen Beitrag ausdrucken,
damit ich das nötige Verhalten anwenden kann.
Bestimmt werde ich danach immer noch kleine Fehlerchen machen.
Gibt es keinen Assembler, der reines "HEX'" voraussetzt, und
Dezimale gesondert anzeigt?
Die passende Frequenz die ausgegeben werden kann,
hängt ja von der Taktfrequenz und der passenden Byte-Gruppe ab.
Danach folgen 5 weitere Töne, bevor ein Lied entsteht.
Die Töne versuche ich Hexadezimal per Programm zu berechnen.
Die tieferen Töne treffen leichter, weil dort
mehr Schwingungen in die Wellenlänge hineinpassen.
Beim Z80 würde das besser gehen, weil er eine höhere Tacktfreqenz hat.
Liebe Grüße
Günter K.
(ENK)

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Ich werde mir Deinen Beitrag ausdrucken,

Ach komm das ist doch Satire langsam.

von Soul E. (soul_eye)


Lesenswert?

Günter K. schrieb:
> Gibt es keinen Assembler, der reines "HEX'" voraussetzt, und
> Dezimale gesondert anzeigt?

Assembler versteht kein "HEX", sondern Maschinenbefehle. LDA, STA, JMP 
usw. Die Hexwerte bzw den Binärcode erzeugt der Assembler. Damit Du 
nicht jedesmal im Buch nachsehen musst. Das wird bei längeren Programmen 
(8 kB Objektcode sind als Assemblerlisting über 100 DIN A4-Seiten) sonst 
schnell umständlich.

(Wobei ich zu meinen aktiven Apple-Zeiten die 6502-Befehle tatsächlich 
auswendig wusste, und hexadezimal kopfrechnen ging damals auch noch)

> Beim Z80 würde das besser gehen, weil er eine höhere Tacktfreqenz hat.

Nein, denn die höhere Taktfrequenz wird durch vier geteilt. Ein Z80 mit 
4 MHz ist so schnell wie ein 6502 mit 1 MHz. Der Z80 ist innendrin 
synchron aufgebaut, er braucht für jeden Vorgang eine Taktflanke 
("T-State" nennt man das). Beim 6502 rutschen die Befehle asynchron 
durch, daher braucht er nur für jeden Speicherzugriff einen Takt.

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
> Ich habe den 6502-Eumlator mittlerweile Zyklengenau auf dem PiPico
> laufen. Die 6532Ports habe ich auf PORTA: GPIO2-GPIO9 und PORTB
> GPIO10-GPIO17 gemapped.
>
> Will es jemand aufprobieren?

Hallo Christoph M.
Da will ich wenigstens mal ein Lob rüberschicken und ich finde es enorm,
dass Du das geschafft hast!

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

Christoph M. schrieb:
> Bei der Verwendung von Assemblern gibt es das kleine Problem, dass sich
> jeder Assembler im Syntax ein wenig unterscheidet. Aus diesem Grunde
> kann ich Günter schon verstehen: wenn man sich erst mal den Ärger mit
> den Syntax-Problemen vom Halse halten will, kann man das Ganze auf dem
> Papier von Hand machen. Dann versteht man auch die Details.

Lieber Christoph M.,
vor allen Dingen gefällt mir die Art Deines Assemblers,
denn es ist in Serie!
Da, fällt es mir leichter, den Maschinen-OP-Code unterzubringen.
 Die dazugehörigen Konventionen möchte ich noch lernen.
Aber nur, bei Deiner Art von Assembler.
Denn ich kann kein Assembler; - ich versuche zu wissen oder erraten was 
die
Maschine macht. - Aber Hochsprachen sind mir zu hoch, da komme ich gar 
nicht mit.
Der Ton wird bei mir etwas über 440 Hz gemessen, also 440,0x.
Ich staune auch, wie sauber Dein Signal auf das Scop aussieht.
Bei mir ist das nicht ganz so gut, aber man weiß, es ist das Kammerton 
A.
Super! Was Du alles machst!

Als nächstes kommen 5 weitere Töne dran. Das G4, H4, C5, D5 und E5. Das 
Ganze soll ein Lied werden. - .
Die nächsten Töne können leider nicht so gut getroffen werden.
Ich kann versuchen, noch NOPs also "EA"s reinzuhängen; (-EA) geht nicht.
Will aber auch das Programm nicht zu groß machen.
Zur Ton-Änderung wird das X- und Y-Register aus der Zero-Page geladen.
Nur muss ich noch die Ton-Länge und die Pausenlänge bestimmen.
Da habe ich noch keine Idee, wie ich den 3032 anspreche, um die Zeit
zu bestimmen. Dann kommen noch Schleifen für den (selben)gleichen Ton 
hinein, wenn sich Töne mit gleichen Tonlängen, in der Melodie 
wiederholen.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Denn ich kann kein Assembler

Wie kommst Du denn auf die Hex-Zahlen, die Du in deinen Junior-Computer 
eintackerst?
Lass mich raten: Du überlegst dir, was Du machen willst, also z.B. den 
Akkumulator mit #255 laden. Und dann schaust Du in deiner Tabelle oder 
irgendeinem Buch, welche Hex-Codes das sind.
D.h. Du kannst nicht nur Assembler, du bist der Assembler.
Denn das übersetzen von lda #255 in passende Hex-Codes IST das 
assenmblieren.
Und das lässt man logischerweise eine Maschine machen (z.B. wie 
vorgeschlagen einen Online-Assembler), anstatt es selbst manuell zu 
machen.

Oder rechnest Du die Periodendauer eines 440Hz Tons in Microsekunden um, 
in dem Du mit Bleistift und Papier 100000/440 rechnest?`Ich vermute, da 
nimmst Du ja auch das passende Werkzeug, einen Taschenrechner.

Warum also um alles in der Welt willst Du keinen Assembler benutzen???

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Warum also um alles in der Welt willst Du keinen Assembler benutzen???

Doch das will ich, aber nur zu dem Zweck, damit andere etwas damit 
anfangen können. Ich selber, möchte selber assemblieren; es sei denn, 
ich hätte
die Vorteile schon gelernt; - das habe ich aber noch nicht.

Was aber vor allen Dingen dazu gehört, ist der Maschinen-Code,
also alles das, was die Maschine bekommt und macht.

Einen sehr schönen Assembler-Code habe ich bei
Christoph M. (mchris) 13.05.2025 09:09 gesehen.

Wo ich selber den Maschinen-Code links beifügen kann,
ähnlich dem Buche des Junior-Computers; somit verbleibt
viel Platz auf der rechten Seite für Kommentare.
         Der Sinn, versteht sich von selbst.
Ja,
ich möchte sogar gerne wissen: Wann und wo was passiert,
also den Prozess; darum heißt der Prozessor, ja: Prozessor.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Der Sinn, versteht sich von selbst.

Nein, das was du machst ergibt eben keinen Sinn.

Günter K. schrieb:
> Ich selber, möchte selber assemblieren; es sei denn,
> ich hätte
> die Vorteile schon gelernt

Es GIBT KEINE VORTEILE wenn du selbst assemblierst.
Du lernst dabei nichts sinnvolles. Die Tatsache, dass du irgendwann 
auswendig weißt, dass ein NOP in Hex EA übersetzt wird, ist vollkommen 
nutzloses Wissen.

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Klaus schrieb:
> Es GIBT KEINE VORTEILE wenn du selbst assemblierst.

Bei manchen Assemblern schon. Nämlich dann, wenn verschiedene Mnemonics 
in den selben Maschinencode übersetzt werden. Das fällt dann auf. Selber 
kenne ich zwar keinen solchen Assembler, aber hier im Forum habe ich 
davon gelesen.

von Soul E. (soul_eye)


Angehängte Dateien:

Lesenswert?

Günter K. schrieb:
> Doch das will ich, aber nur zu dem Zweck, damit andere etwas damit
> anfangen können. Ich selber, möchte selber assemblieren; es sei denn,
> ich hätte
> die Vorteile schon gelernt; - das habe ich aber noch nicht.

So haben wir vor 40 Jahren gearbeitet. Weil es nicht anders ging. Du 
kannst es heute komfortabler haben. Musst Du aber nicht. Es gibt Leute, 
die klettern zu Fuß auf Berge. Obwohl Hubschrauber und Seilbahn schon 
lange erfunden sind.


> Wo ich selber den Maschinen-Code links beifügen kann,
> ähnlich dem Buche des Junior-Computers; somit verbleibt
> viel Platz auf der rechten Seite für Kommentare.
>          Der Sinn, versteht sich von selbst.

Da ist Karopapier immer noch am besten. Die Befehle aufschreiben, dann 
die Hexwerte raussuchen und zuletzt die Branches berechnen. Hexadezimal 
kopfrechnen kann man dann irgendwann.

Oder halt Excel, das Karopapier der Neuzeit.

von Klaus (feelfree)


Lesenswert?

Soul E. schrieb:
> So haben wir vor 40 Jahren gearbeitet

Nein, 1985 hatte zB der C64 schon wunderbar nutzbare Assembler.
Ich erinnere mich noch an die Anfänge 1984, als ich noch kein 
Floppylaufwerk hatte.
Editor von Datasette laden, Programm schreiben, abspeichern. Dann 
Assembler laden, vorher gespeichertes Programm laden, assemblieren und 
dann ausführen.
Turn-around-Zeit sicher 10 bis 15 Minuten.
Ein Jahr später, mit Floppylaufwerk, vielleicht noch 2 oder 3 Minuten.
Und dann kam der Assembler (von Data Becker?) der den Quelltext direkt 
vom eigentlich für Basic vorgesehenen eingebauten "Editor" eingelesen 
hatte.
Das war Luxus pur, fast so komfortabel wie man es heute auch haben 
könnte, wenn man nicht so stur (oder schwer von Begriff) wäre.

Soul E. schrieb:
> Oder halt Excel

Das ist ja das Lustige: solche Moloche werden benutzt, aber ein kleiner 
feiner Assembler der alles besser kann wird abgelehnt.

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


Lesenswert?

Soul E. schrieb:
> Die asm-Datei erstellst
> Du, die bin-Datei erzeugt der Assembler.

Hallo Soul E.
wofür ist die bin-Datei gut?
was heißt: bin-Datei?
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> wofür ist die bin-Datei gut?
> was heißt: bin-Datei?

Du brauchst keine bin Datei für deinen Junior-Computer.
Du musst die Hex-Daten einzeln eintippen. Mit einem "richtigen" Computer 
würde die bin-Datei (oder Hex-Datei) von einem Datenträger eingelesen 
werden können und dann ausgeführt werden. Oder eben der Assembler lädt 
die bin/hex direkt ohne Umweg über eine Datei in den Speicher und führt 
die dann aus.
Das geht alles mit deinem prähistgorischen Junior-Computer nicht.

von Günter K. (enk)


Lesenswert?

Soul E. schrieb:
> Nein, denn die höhere Taktfrequenz wird durch vier geteilt. Ein Z80 mit
> 4 MHz ist so schnell wie ein 6502 mit 1 MHz. Der Z80 ist innendrin
> synchron aufgebaut, er braucht für jeden Vorgang eine Taktflanke
> ("T-State" nennt man das). Beim 6502 rutschen die Befehle asynchron
> durch, daher braucht er nur für jeden Speicherzugriff einen Takt.
Eine positive Taktflanke?
Dankeschön lieber Soul E.
Liebe Grüße
Günter K.
(ENK)

PS.: Im JUNIOR-COMPUER-BUCH 2, hab' ich auch was über Taktflanken 
gelesen.
Das muss ich aber nochmal lesen, - denn verstanden, habe ich das noch 
nicht.
Ich weiß zwar was Flanken sind, muss aber nochmal den Zusamenhang 
finden.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Und dann kam der Assembler (von Data Becker?) der den Quelltext direkt
> vom eigentlich für Basic vorgesehenen eingebauten "Editor" eingelesen
> hatte.
> Das war Luxus pur, fast so komfortabel wie man es heute auch haben
> könnte, wenn man nicht so stur (oder schwer von Begriff) wäre.

Ja, das klingt doch interessant! Wenn ich nur, die Beziehung zur 
Maschinensprache behalte, was ist da noch möglich?
Liebe Grüße
Günter K.
(ENK)

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> ! Wenn ich nur, die Beziehung zur
> Maschinensprache behalte,

Die Beziehung zwischen Assemblersprache (z.b. "NOP") und 
Maschinensprache (z.B. Hex EA) stellt ein Assembler her.
Für einen Menschen gibt es keinen Grund, das manuell machen zu wollen.

von Christoph M. (mchris)


Lesenswert?

Günter K. schrieb:
> ! Wenn ich nur, die Beziehung zur
> Maschinensprache behalte,

> von Klaus (feelfree)
>Die Beziehung zwischen Assemblersprache (z.b. "NOP") und
>Maschinensprache (z.B. Hex EA) stellt ein Assembler her.

Und hier als praktische Übung:

1. rufe diese Seite auf:
https://www.masswerk.at/6502/assembler.html
2. tippe im linken Fenster mit der Bezeichnung 'src' den Text 'nop' ein
3. drücke rechts unten auf 'Assemble'
4. drücke auf 'OK'
5. schaue das Ergebnis auf der rechten Seite im Fenster 'object code' 
an.

von Harald K. (kirnbichler)


Lesenswert?

Klaus schrieb:
> Für einen Menschen gibt es keinen Grund, das manuell machen zu wollen.

Zum Grundlagenwissen gehört es auch, zu verstehen, was ein Assembler 
anstellt. Ein Programm von Hand assembliert zu haben, Sprungoffsets von 
Hand ausgerechnet zu haben, hilft zu verstehen, warum man sich besser 
von einem Programm dabei helfen lässt.

Denn letztlich kann Dein "gibt es keinen Grund" auf alles angewandt 
werden.

Warum Programme in Assembler schreiben? Für Menschen gibt es keinen 
Grund, das machen zu wollen, das machen Compiler aus einer für Menschen 
viel besser lesbaren Hochsprache ...

Ohne Grundlagenwissen aber versteht auch der Hochsprachenprogrammierer 
nicht, was die Maschine da eigentlich anstellt.


Günters Ansatz ist mühsam, keine Frage, aber ein Weg, Grundlagen zu 
verstehen.

Ich habe vor 40 Jahren ein fehlerhaftes Programm (das sich im EPROM 
meines Computers befand) mit einer Art selbstgebauten Logikanalysator 
(jeden Buszyklus latchen und auf LEDs ausgeben, aufschreiben, und den 
nächsten Zyklus laufen lassen ...) analysiert.

Aus dem, was auf dem Bus loswar, konnte ich den Ablauf der 
Maschineninstruktionen rekonstruieren (Opcode-Fetch, Operanden-Fetch 
etc.) und mit viel Fleißarbeit die ersten paar tausend Schritte des 
Programmes nachvollziehen. Und: Den Fehler beseitigen.

Und damit, mit diesem mühsamen Erlernen von Grundlagen, habe ich viel 
mehr über Computerhardware gelernt, als Leute, die zur gleichen Zeit 
Space-Invaders spielten oder im C64-Basic irgendwelche Peeks und Pokes 
veranstalteten.

Günter wird zwar recht wahrscheinlich nicht in 40 Jahren mit Stolz auf 
das zurückblicken können, was er sich jetzt beibringt, und natürlich hat 
das auch keinen "praktischen" Nutzen (wer will heute noch was mit 6502 & 
Co. anfangen? Heute nutzt man Multicore-ARMe mit zig Gigabyte RAM ...) 
-- aber es hält die Birne fit.

Andere spielen Schach. Werner bringt sich 6502-Maschinencode bei.

Find' ich gut.

von Falk B. (falk)


Lesenswert?

Harald K. schrieb:
> Andere spielen Schach. Werner bringt sich 6502-Maschinencode bei.

Werner macht Unsinn. Aber solange ER es für sinnvoll hält und Spaß dabei 
hat, sei's drum. ZEN-Programmierung ;-)

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

von Klaus (feelfree)


Lesenswert?

Wer ist Werner?

von Falk B. (falk)


Lesenswert?

Klaus schrieb:
> Wer ist Werner?

Stimmt, es ist Günter. ;-)

von Klaus (feelfree)


Lesenswert?

Harald K. schrieb:
> Zum Grundlagenwissen gehört es auch, zu verstehen, was ein Assembler
> anstellt. Ein Programm von Hand assembliert zu haben, Sprungoffsets von
> Hand ausgerechnet zu haben, hilft zu verstehen, warum man sich besser
> von einem Programm dabei helfen lässt.

Richtig. Nur Günter versteht das halt nicht, trotz zahlreicher 
Kommentare in die Richtung.

von Falk B. (falk)


Lesenswert?

Günter K. schrieb:
> Ja, das klingt doch interessant! Wenn ich nur, die Beziehung zur
> Maschinensprache behalte, was ist da noch möglich?

Hab ich dir schon dreimal erzählt, du hast es aber scheinbar 4 mal 
ignoriert. Im List-File, welches der Assembler ausspuckt.

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

Maschinencode schreiben nur

Assembler (das Programm)
Autisten
Superfreaks

Assembler ist die niedrigste Stufe, die man sich heute und schon seit 
Mitte der 1970er Jahre noch sinnvoll antut! Schrieb ich auch schon, wenn 
gleich mit leicht ironischem Wortlaut!

"Echte Männer jagen Mammuts. Wenn's keine mehr gibt, programmieren sie 
in
Maschinensprache. Weicheier wie ich tun sich nur Assembler an."

von Harald K. (kirnbichler)


Lesenswert?

Klaus schrieb:
> Nur Günter versteht das halt nicht

Günter (den ich vorhin aus irgendeinem Grund auch mal Werner nannte) ist 
dem Anschein nach ein gutes Stück älter als die meisten hier, und hat 
deswegen ein anderes Lerntempo.

von Falk B. (falk)


Lesenswert?

Harald K. schrieb:
> Günter (den ich vorhin aus irgendeinem Grund auch mal Werner nannte) ist
> dem Anschein nach ein gutes Stück älter als die meisten hier,

80

> und hat
> deswegen ein anderes Lerntempo.

Nicht nur deswegen. Er hat auch viel Chaos und komische Ideen im Kopf. 
Kann man erkennen, wenn man alle seine Beträge hier liest.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Falk B. schrieb:
> Er hat auch viel Chaos und komische Ideen im Kopf.

Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren 
US-Präsidentendarsteller an. Da ist mir Günters Chaos deutlich lieber.

Und andere sind bereit mit Eintritt in das Rentenalter nur noch schwer 
von weichgekochtem Broccoli zu unterscheiden.

Immer dran denken: Menschen in diesem Alter muss man nicht nur ertragen, 
sondern man muss sich im Klaren darüber sein, daß man auch mal in das 
betreffende Alter kommen wird, und da sollte man sich schon überlegen, 
ob man als leicht wabernde Masse in einem Stuhl in einer 
"Betreuungseinrichtung" den Tag verbringt, oder spinnerte Ideen auslebt 
und sich mühsam noch was neues beibringt.

von Cyblord -. (cyblord)


Lesenswert?

Harald K. schrieb:
> Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren
> US-Präsidentendarsteller an. Da ist mir Günters Chaos deutlich lieber.

Biden ist ja nun weg. Klar, man wollte ihn nochmal 4 Jahre, halb 
mumifiziert im Oval Office sitzen lassen. Aber wurde ja dann nichts.

von Harald K. (kirnbichler)


Lesenswert?

Cyblord -. schrieb:
> Biden ist ja nun weg

Ich meinte Trump. Im übrigen bist gerade DU überhaupt nicht geeignet, 
mentale Leistungen von Menschen über fünf Jahren zu beurteilen. Gerade 
DU hast in einem anderen Thread hier mal wieder ad nauseam unter 
Beweis gestellt, daß Du den geistigen Vorruhestand schon lange vor dem 
14. Lebensjahr erreicht hattest.

von Cyblord -. (cyblord)


Lesenswert?

Harald K. schrieb:
> Ich meinte Trump. Im übrigen bist gerade DU überhaupt nicht geeignet,
> mentale Leistungen von Menschen über fünf Jahren zu beurteilen.

Gerade machen die Berichte die Runde wie die Dems systematisch den 
extrem schlechten Zustand von Biden verheimlicht haben. Leute wie du, 
sind darauf wohl jahrelang reingefallen. Während alle normalen Leute 
schon seit Jahren darauf hinweisen wie desolat Biden daherkommt.
Aber klar, erst mal Trump als geistig unfit darstellen. Das ist 
wichtiger.

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


Lesenswert?

Wer von den beiden berechenbarer ist, darüber könnte man diskutieren - 
wenngleich nicht hier. Aber ich bin ziemlich sicher, dass Günter keinen 
dieser Rechner meinte. :)

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Gerade machen die Berichte die Runde wie die Dems systematisch den
> extrem schlechten Zustand von Biden verheimlicht haben

Und in ein paar Jahren werden die selben Berichte zu Trump die Runde 
machen. Wenn du glaubst, Trump wäre noch ganz dicht, dann bist du nicht 
ganz dicht.

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Cyblord -. schrieb:
>> Gerade machen die Berichte die Runde wie die Dems systematisch den
>> extrem schlechten Zustand von Biden verheimlicht haben
>
> Und in ein paar Jahren werden die selben Berichte zu Trump die Runde
> machen. Wenn du glaubst, Trump wäre noch ganz dicht, dann bist du nicht
> ganz dicht.

Das ist doch nicht vergleichbar. Du bist nur anderer Meinung als Trump. 
Bei Biden geht es um objektive altersbedingte Probleme die ganz gezielt 
verheimlicht wurden. Aber peinlicherweise eben für jeden seit Jahren 
sichtbar.

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Du bist nur anderer Meinung als Trump.

Nein, also ja ich bin anderer Meinung als Trump, aber dennoch zeigen 
sich auch bei Trump ganz klare Zeichen des mentalen Verfalls.

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Nein, also ja ich bin anderer Meinung als Trump, aber dennoch zeigen
> sich auch bei Trump ganz klare Zeichen des mentalen Verfalls.

Wirklich Verfall? Evt. konsistente mentale Ausfälligkeiten wie z.B. 
extremer Narzissmus o.ä. Aber ich bin kein Psychologe und jeder seriöse 
Psychologe sagt sinngemäß dass Ferndiagnosen, selbst für Fachleute, 
unseriös sind.

Ganz im Gegensatz allerdings zu eindeutigen geistigen und körperlichen 
Ausfällen von Biden wie Orientierungslosigkeit, Übergriffe vor laufender 
Kamera (schnüffeln an den Haaren von anderen Leuten), Stolpern am 
laufenden Band, Ansprechen von Leuten die schon tot sind, live bei einer 
PK, Reden mit unsichtbaren Leuten die nicht da sind inkl. Handschlag.
Dazu braucht es keine tiefsinnigen Analysen, der Mann ist einfach zu 
alt. Und man wollte ihn wirklich noch sehr lange Zeit mit aller Gewalt 4 
Jahre weitermachen lassen. DAS ist verrückt.

Übrigens ähnlich wie Mitch McConnell der einige male einfach vor 
laufenden Kameras eingefroren ist. Sorry da ist es halt einfach Zeit zu 
gehen. Allerdings ist er dann auch zügig gegangen.

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Ganz im Gegensatz allerdings zu eindeutigen geistigen und körperlichen
> Ausfällen von Biden wie Orientierungslosigkeit,

Und Trump tatscht arabische Kronprinzen an, die auf keinen Fall 
anzutatschen sind. Also ich zumindest würde keinen offensichtlichen 
Hardcorenarzist als Anführer meiner Nation haben wollen.

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Cyblord -. schrieb:
>> Ganz im Gegensatz allerdings zu eindeutigen geistigen und körperlichen
>> Ausfällen von Biden wie Orientierungslosigkeit,
>
> Und Trump tatscht arabische Kronprinzen an, die auf keinen Fall
> anzutatschen sind. Also ich zumindest würde keinen offensichtlichen
> Hardcorenarzist als Anführer meiner Nation haben wollen.

Die Meinung darfst du haben, es ist trotzdem kein Zeichen von geistigem 
Verfall. Nur Verhaltensweisen die du nicht magst.
Trump wird gerade gewählt weil er auf viele Konventionen nichts gibts. 
Das ist sein Markenkern und keineswegs Zufall, Unwissenheit, 
Unsicherheit oder das Alter.

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Tariffs, ach ne doch keine Tariffs. Ständig völlig sinnentleertes 
Gestammel.

Wenn das für dich Zeichen sind, das jemand auf seiner vollen geistigen 
Höhe ist, erklärt das natüelich so einiges.

Cyblord -. schrieb:
> Das ist sein Markenkern und keineswegs Zufall, Unwissenheit,
> Unsicherheit oder das Alter.

Das ist DEINE Meinung, muss deshalb aber noch lange nicht stimmen.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Leute, laßt die sinnlose Diskussion über Trump & Co. Gehört hier nicht 
hin! Weder in diese Diskussion noch ins Forum!

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Das ist DEINE Meinung, muss deshalb aber noch lange nicht stimmen.

Merkwürdiger Kommentar. Wir tauschen hier doch ausschließlich Meinungen 
aus.

Ein Hinweis darauf dass es sich nicht um Verfall handelt ist die 
Tatsache dass er schon immer derart erratisch handelt. Er war ja auch 
früher wirtschaftlich nicht besonders erfolgreich mit seinen Geschäften.

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


Lesenswert?

Cyblord -. schrieb:
> Nur Verhaltensweisen die du nicht magst.

DE Land hat schon mal einen Soziopathen gewählt.
Das ist, in der Nachschau, sehr unangenehm verlaufen.


Die USA ist gerade dabei diese Erfahrung zu machen.
Das kann einen vergleichbar üblen Weg nehmen.
Vielleicht noch übler.

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Merkwürdiger Kommentar. Wir tauschen hier doch ausschließlich Meinungen
> aus.

All deine Kommentare sind äusserst merkwürdig. Sie verharmlosen absolut 
fragwürdiges Verhalten.

Arduino F. schrieb:
> DE Land hat schon mal einen Soziopathen gewählt.
> Das ist, in der Nachschau, sehr unangenehm verlaufen.

Ich bin mir sicher, es gab den ein oder anderen, der es schon als es 
passierte als sehr unangenehm empfand, nicht erst im Nachgang.

> Die USA ist gerade dabei diese Erfahrung zu machen.
> Das kann einen vergleichbar üblen Weg nehmen.
> Vielleicht noch übler.

Das sieht halt nicht jeder.

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> All deine Kommentare sind äusserst merkwürdig. Sie verharmlosen absolut
> fragwürdiges Verhalten.

Nein sie ordnen es ein. Das Verhalten von Trump und der Verfall von 
Biden haben schlicht nichts miteinander zu tun. Egal welche noch so 
guten Argumente du gegen Trump auffährst.

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Das Verhalten von Trump und der Verfall von
> Biden haben schlicht nichts miteinander zu tun.

Das behauptet auch niemand, dennoch kann auch Trump verfallen. Halt ganz 
unabhängig von Bidens Verfall.

Allein dass du den Zusammmenhang daherphantasiert hast, lässt mich 
weiter an deinem geistigen Zustand zweifeln

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Allein dass du den Zusammmenhang daherphantasiert hast, lässt mich
> weiter an deinem geistigen Zustand zweifeln

Der Zusammenhang kam allein von dir. ICH sprach von Biden, DU hast Trump 
ins Spiel gebracht und die beiden verglichen.

Und sogar behauptet:
> Und in ein paar Jahren werden die selben Berichte zu Trump die Runde machen.

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


Lesenswert?

Kann die Moderation bitte mal den Mist hier löschen? Das hat absolut 
nichts mit dem Threadthema zu tun!

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> , DU hast Trump
> ins Spiel gebracht

äh, nein.

Noch ein Punkt, der Zweifel an deiner geistigen Klarheit aufkommen 
lässt.

Harald K. schrieb:
> Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren
> US-Präsidentendarsteller an. Da ist mir Günters Chaos deutlich lieber.

Harald K. schrieb:
> Ich meinte Trump

von Cyblord -. (cyblord)


Lesenswert?

Wolfgang R. schrieb:
> Kann die Moderation bitte mal den Mist hier löschen? Das hat absolut
> nichts mit dem Threadthema zu tun!

Das ist richtig. Aber dieses Assembler Gestammel mit dem 
Internetausdrucker kann ja auch nicht euer ernst sein.

von Harald K. (kirnbichler)


Lesenswert?

Die naheliegende Bitte an einen der Moderatoren muss ich eigentlich gar 
nicht ausformulieren, oder?

Um Günter nicht zu überfordern oder zu verschrecken, sollten alle 
Beiträge ab meinem Beitrag von heute, 8:38 entsorgt werden.

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Das ist richtig. Aber dieses Assembler Gestammel mit dem
> Internetausdrucker kann ja auch nicht euer ernst sein.

Du bist echt unglaublich, mit einem nicht drauf eingehen wischt du zur 
Seite, dass ich angeblich Trump ins Spiel gebracht hätte, aber hackst 
weiter auf jemanden ein, der lernen möchte. Das kann ja auch nicht dein 
Ernst sein.

Kannst die Leute nicht einmal auseinanderhalten aber weißt, das Biden 
kaputt ist. Sicher, dass du ihn nicht mit jemand ganz anderem 
verwechselt hast?

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Du bist echt unglaublich, mit einem nicht drauf eingehen wischt du zur
> Seite, dass ich angeblich Trump ins Spiel gebracht hätte

Ich hatte sogar ein Zitat von dir mit Trump gepostet. Was willst du 
noch? Du hast ihn nicht als erstes erwähnt. Aber DU hast Trump mit Biden 
verglichen. Das Zitat war von dir. Da gabs keine Verwechslung.

Sollte ich irgendwo etwas falsch zitiert haben oder jemanden verwechselt 
haben wäre ich der erste der das einräumt. Ist halt noch nie vorgekommen 
deshalb gibts keinen Präzedenzfall.

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


Lesenswert?

J. T. schrieb:
> mit einem nicht drauf eingehen wischt du zur
> Seite, dass ich angeblich Trump ins Spiel gebracht hätte,
Eine der am leichtesten zu identifizierbaren Eigenschaften eines 
extremen Egomanen, oder Narzissten, ist die Unwilligkeit Irrtümer 
zuzugeben. Auch sich selber gegenüber nicht. Stattdessen werden andere 
für alles "böse" verantwortlich gemacht.
Daran erkenne sie sich auch gegenseitig.

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Ich hatte sogar ein Zitat von dir mit Trump gepostet. Was willst du
> noch? Du hast ihn nicht als erstes erwähnt.

Aber deine Behauptung war, ich hätte ihn aufs Tablett gebracht.

Cyblord -. schrieb:
> DU hast Trump ins Spiel gebracht

Er wurde aber vom Kirnbichler aufs Tablett gebracht:

Harald K. schrieb:
> Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren
> US-Präsidentendarsteller an.

Du jedoch dachtest, er meinte Biden, woher auch immer du den gezogen 
hast:

Cyblord -. schrieb:
> Biden ist ja nun weg. Klar, man wollte ihn nochmal 4 Jahre, halb
> mumifiziert im Oval Office sitzen lassen. Aber wurde ja dann nichts.

> und die beiden verglichen.

hast du also irgendwie.


Das war dann mein Einstieg dazu:

J. T. schrieb:
> Und in ein paar Jahren werden die selben Berichte zu Trump die Runde
> machen. Wenn du glaubst, Trump wäre noch ganz dicht, dann bist du nicht
> ganz dicht.

Erwähnt habe ich Biden mit keinem Wort. Ist es überhaupt ein Vergleich, 
wenn nicht alle Verglichenen erwähnt werden? Dann hätten wir beide gar 
keinen Vergleich gemacht.

Wie mans auch dreht, deine Behauptung ist falsch.

Cyblord -. schrieb:
> Ist halt noch nie vorgekommen deshalb gibts keinen Präzedenzfall.

Klar, unser Lördchen ist perfekt, makellos und absolut fehlerfrei.

Arduino F. schrieb:
> Daran erkenne sie sich auch gegenseitig.

Der ist schön, den kannte ich noch nicht.

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Du jedoch dachtest, er meinte Biden, woher auch immer du den gezogen
> hast:

Also ob ich nicht gewusst hätte wen er meinte...

von Falk B. (falk)


Lesenswert?

ES REICHT MIT DEM SCHEIß!

von Cyblord -. (cyblord)


Lesenswert?

Falk B. schrieb:
> ES REICHT MIT DEM SCHEIß!

Ist ja gut.
Schon mal überlegt dass die Schreierei empfindlichere Seelen, wie z.B. 
mich, extrem verunsichern kann?

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Cyblord -. schrieb:
> empfindlichere Seelen, wie z.B. mich,

YMMD!

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> empfindlichere Seelen, wie z.B. mich,

:D

von J. T. (chaoskind)


Lesenswert?

Klaus schrieb:
> Cyblord -. schrieb:
>> empfindlichere Seelen, wie z.B. mich,
>
> YMMD

Timing ist alles im Leben :D

von Günter K. (enk)


Lesenswert?

von Cyblord -. (cyblord) 15.05.2025 13:28 Lesenswert? -3 -.

Lesenswert ist was Wolfgang R. schrieb, denn er bittet:
> Kann die Moderation bitte mal den Mist hier löschen? Das hat absolut
> nichts mit dem Threadthema zu tun!
Das ist richtig. Aber dieses Assembler Gestammel mit dem
Internetausdrucker kann ja auch nicht euer ernst sein.

Günter K. schreibt, um beim Thema zu bleiben:
DANKE Wolfgang R.

Hallo Liebe Leute und Cyblord,
Frage: - Welches: "... Assembler Gestammel mit dem Internetausdrucker 
...?"
Antwort:
1. Ich habe keinen Internetausdrucker, sondern einen Canon-Drucker.
2. "Assembler Gestammel"? Auch hierzu habe ich eine Antwort:

Ich bin nicht so klug, wie viele von Euch, -!
Bin aber positiv erstaunt, dass ... Fortsetzung folgt ...

Falk B. schrieb:
> Leute, laßt die sinnlose Diskussion über Trump & Co. Gehört hier
> nicht
> hin! Weder in diese Diskussion noch ins Forum!
Ja Falk B. auch das ist richtig!

Fortsetzung:
... ja dass jemand einen Emulator des 6502-Computers in einen ...
Christoph M. schrieb:
> Ich habe den 6502-Eumlator mittlerweile Zyklengenau auf dem PiPico
> laufen. Die 6532Ports habe ich auf PORTA: GPIO2-GPIO9 und PORTB
> GPIO10-GPIO17 gemapped.
>
> Will es jemand aufprobieren?

Hallo Christoph M.
Da will ich wenigstens mal ein Lob rüberschicken und ich finde es enorm,
dass Du das geschafft hast! Ja, das ein sehr guter Beitrag!

Assembler heißt: Zusammenbauen!
Und mehr noch, das ist kein Gestammel! - Es ist sogar WICHIG! - dass
wir Menschen wissen, was der Computer tut, sonst tut der Computer
vielleicht das, - was wir Menschen gar nicht wollen! - !

Seltsame Ideen habe ich zwar, die habe ich hier noch gar nicht 
vorgebracht.
 - Eine Idee erfüllt dann seinen Zweck, wenn sie nützlich ist. -

Übrigens Falk, Deine Idee mit Hilfe des Timers die Tonsignale zu 
erzeugen,
ist eine sehr gute Idee! - Ich dachte auch schon mal daran.
Nur habe ich das dazugehörige Wissen aus dem JUNIOR BUCH 2, noch nicht 
verstanden; das muss ich nochmal lesen. - Ich wollte ein Programm mit 6 
Tönen in C-Dur als Lied schreiben. Aber inzwischen eine Oktave tiefer.

Christoph M. schickte mit den Kammerton A.  Das ist sehr, sehr gut!
Durch seine Rechteckform hat das "A4" sehr viele Oberwellen; - und so,
erscheint mir der Ton zu hoch.
Die tieferen Töne, sind mir leider nicht gelungen, wobei man meinen 
sollte,
dass das einfacher ist, weil mehr Zeiträume zu Verfügung stehen.
Also: Je mehr Zeit-Raum (Wellenlänge), je mehr Variabilität. - Mal 
sehen,
ob es mir gelingt, den Timer im 6502 aufzurufen.

Liebe Leute, bitte versteht mich.
Mit lieben Grüßen
Günter K.
(ENK)

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


Lesenswert?

Günter K. schrieb:
> Aber dieses Assembler Gestammel mit dem
> Internetausdrucker kann ja auch nicht euer ernst sein.


Die Quelle dieses Spruches hat ein Sozialverhalten wie eine 
Bordsteinkante.

Andererseits finde ich dieses ASM Gehampel auch ermüdend.
Habe mich eher auf C++ eingeschossen.
Ist u.A. viel interessanter

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> den Timer im 6502 aufzurufen.

Lass' das bitte.
Verändere/erweitere das Programm mit den 440Hz schrittweise:

- dass es eine andere Tonhöhe abspielt
- dass es den Ton z.B. nur eine bestimmte Zeit abspielt
- dass es 2 verschiedene Töne hintereinander abspielt

Damit wirst Du ein paar Tage beschäftigt sein.
Dann kommt:

- dass alle Tonhöhen einer Tonleiter abgespielt werden
- dass alle Noten unabhängig von der Höhe ca. gleich lang abgespielt 
werden

Wieder ein paar Tage bis Wochen.
Dann kommt:

- dass eine Melodie abgespielt werden kann mit unterschiedlichen 
Tonhöhen und Tonlängen

Ich drück' dir die Daumen, dass Du bis Weihanchten ein "Oh Du Fröhliche" 
schaffst, auch wenn ich es nicht glaube.

Und vergiss ganz schnell den Timer, solange Du nicht mal diese 
einfachsten Programme zusammenstricken kannst.

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


Lesenswert?

Hallo liebe Leute,
denn
Arduino F. (Firma: Gast) (arduinof) schrieb um 15.05.2025 18:31,
dass irgendjemand kopierte,:
"Günter K. schrieb:
 > Aber dieses Assembler Gestammel mit dem
 > Internetausdrucker kann ja auch nicht euer ernst sein."

Das schrieb ich nicht, und diesen Spruch werde ich auch nicht 
heraussuchen.
Allerdings, habe ich auf diesen Spruch bereits geantwortet.

Arduino F. (Firma: Gast) (arduinof) kopierte: s. o.:
"Die Quelle dieses Spruches hat ein Sozialverhalten wie eine
 Bordsteinkante.": Also, es ist nicht meine Quelle.
Und das, - sehe ich genau so, - nur fehlt mir
das Vokabular dazu.
Mit lieben Grüßen
Günter K.
(ENK)

von Harald K. (kirnbichler)


Lesenswert?

Günter K. schrieb:
> Das schrieb ich nicht

Nein, das hast Du auch nicht geschrieben. Das war der Forentroll vom 
Dienst. Lass' Dich von diesem Idioten nicht irritieren -- ignoriere 
einfach alles, was der geschrieben hat.

Hätte einer der Moderatoren sich schon um diesen Thread gekümmert, hätte 
auch alles seit heute gegen halb neun vormittags hier einfach gelöscht 
werden können.

von Günter K. (enk)


Lesenswert?

Liebe Leute, an Allen! -
Diesen gut gemeinten Vorschlag nehme ich dankbar an, denn:

Klaus schrieb:
> Günter K. schrieb:
>> den Timer im 6502 aufzurufen.
Zwichengedanke dem 6532.
>
> Lass' das bitte.
> Verändere/erweitere das Programm mit den 440Hz schrittweise:
>
> - dass es eine andere Tonhöhe abspielt
> - dass es den Ton z.B. nur eine bestimmte Zeit abspielt
> - dass es 2 verschiedene Töne hintereinander abspielt
>
> Damit wirst Du ein paar Tage beschäftigt sein. ... ...

Denn ich vermute, dass das stimmt, - weil ... (Anzwort kommt noch), denn
eine 2. Tonhöhe und noch andere hatte ich, - das wäre quasi außer
dem A4, das G4, also: 440 Hz und 392 Hz.
Einzeln, kann ich diese beiden Töne laufen lassen, - aber nicht 
hintereinander. - Denn ich komme nicht aus dieser Schleife heraus! Es 
ist wie
in dem Film: (Und täglich grüßt das Murmeltier.) - weil
ich etwas tun muss, eben um aus dieser Schleife, herauszukommen.
Vielleicht fällt mir noch was ein. In diesem Fall müsste ich erst
eine große um den Ton legen, Fortsetzung folgt.
Mit lieben Grüßen
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Falk B. schrieb:
> ES REICHT MIT DEM SCHEIß!
Der Meinung bin ich auch!
Mit lieben Grüßen
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Falk B. schrieb:
> Er hat auch viel Chaos und komische Ideen im Kopf.
Das klingt interessant, hab' auch interssante Ideen,
die ich noch gar nicht vorgebracht habe.
Du scheinst mich zu kennen. :-)))
Liebe Grüße
Günter K.
(ENK)

P.S.:
Seis drum, alles Gute!

Einige der nächsten E-Mails habe ich noch nicht gelesen.

von Sherlock 🕵🏽‍♂️ (Gast)


Angehängte Dateien:

Lesenswert?

Alexander S. schrieb:
> Ich habe Linux ohne LibreOffice und werde nur wegen der Datei auch nicht
> nach einem xslx-Viewer im Internet suchen.

Dann meckere nicht über die Datei, sondern halte dich einfach vornehm 
heraus. Dass andere Leute (ganz gewöhnliche) Programme benutzen, die du 
nicht benutzen möchtest, ist nicht deren "Fehler".

Cyblord -. schrieb:
> Ach komm das ist doch Satire langsam.

Glaube ich nicht. Günter ist nur etwas älter als die meisten hier und 
mit anderen Tools groß geworden. Nach einer offenbar langen Pause (30-40 
Jahre?) beschäftigt er sich wieder mit dem Thema. Vielleicht, weil er 
jetzt nicht mehr Arbeiten muss und endlich Zeit hat, sein Hobby 
fortzusetzen.

Ist das denn so schlimm?

von Günter K. (enk)


Lesenswert?

Cyblord -. schrieb:
> Falk B. schrieb:
>> ES REICHT MIT DEM SCHEIß!
>
> Ist ja gut.
> Schon mal überlegt dass die Schreierei empfindlichere Seelen, wie z.B.
> mich, extrem verunsichern kann?


Nun, Danke Cyblord.
Ja, ich werde versuchen, ansetelle der "1" im Y-Register
aus der Schleife hinauszukommen, ob mir das gelingt,
weiß ich jetzt noch nicht. (Vermutlich nicht.)
In dieser Zeit, wird noch einmal bis dezimal bis 250 gezählt.
Ich darf aber durch den Ausstieg aus der Schleife,
die Zeit nicht verändern, denn dann stimmt der Ton nicht mehr.

von Christoph M. (mchris)
06.05.2025 11:56

Lesenswert? - Ja! Auf jeden Fall!!


Hier mal der Versuch, den Timer ohne Interrupt zu verwenden.
Wenn ich es richtig verstehe, kann man den Timer wohl einfach durch das
Beschreiben der entsprechenden Adresse starten.

Das Programm sollte also folgendes machen:
1. Timer starten
2. Warten bis abgelaufen
3. Portpin rumdrehen
4. Jump zu 1.
... Ja nach diesem Beitrag, hab ich gesucht,
und dachte er wäre von "Falk" gewesen, weil ich oben drüber mal "Falk" 
las,
aber das war, - durch ein Zitat von mir falsch verstanden hatte.

Lieber von Christoph M. (mchris)
Scheinbar, die einzige Möglichkeit, - doch auch hier muss ich Aus der 
Schleife hinaus, für weitere Zeiten.
Ich muss Anschließend, die Notenlängen zusammenkleben.
Weil auch(evtl.) eine Schlusspause(der Note selbst)
die in der Notenschrift nicht vorhanden ist,
würde schätzungsweise 1/128 ausmachen,
die dann auch in den Takt passen.

Austeigen kann ich nur in der NULL-Phase,
weil danach eine EINS-Phase kommen kann.
Die NULL-Phase muss ich vor dem Ausstieg ergänzen,
ohne die gesammte Wellenlänge zu verfälschen.

Wer weiß, vielleicht schaffe ich es ja in den
bisherigen Schleifen. Ich brauche das 6502 Handbuch.
Das suche ich jetzt im Internet.

Hallo Falk,
Dein Vokabular, könnte besser sein.
Liebe Grüße
Günter K.
(ENK)

Ach ja: Christoph M. (mchris) vomm 12.05.2025 18:49
Ich bin immer noch erstaunt über den Emulator, - ! Sehr gut!
Und ich sehe, dass ich die Forum-Seiten hier im Threat
gar nicht gut genug durchgelesen habe! ...
Ich bekomme gerade Besuch, und melde mich später.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Das suche ich jetzt im Internet.

Das kannst Du dir sparen.
Christoph hat bereits ein Programm gepostet, das mehrere verschiedene 
Töne hintereinander abspielt.
Versuche das zu verstehen.

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

von Günter K. (enk)


Lesenswert?

von Klaus (feelfree) schrieb heute am 18.05.2025 14:57,
denn Günter K. schrieb:
> Das suche ich jetzt im Internet.

Klaus schrieb:
> Das kannst Du dir sparen.
> Christoph hat bereits ein Programm gepostet, das mehrere verschiedene
> Töne hintereinander abspielt.
> Versuche das zu verstehen.
>
> Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen,
> Erfahrung?"
von Christoph M. (mchris) 06.05.2025 11:56 Lesenswert? - Ja! Auf jeden 
Fall!!
Hallo Leute,
hallo Christoph M. (mchris) DANKESCHÖN!
Ich versuche, später mal das Programm, so hexadezimal in der Art zu 
übertragen, wie Hans Otten in JUNIOR-COMPUTER das macht. Einige Befehle 
habe ich noch nicht gelernt. Ich melde mich dazu wenn ich da dran bin, 
und bitte, das dann zu beantworten. Danach -versuche- ich, ein 
Ablauf-Diagramm zu erstellen; ob es mir gelingt, weiß ich noch nicht. 
Ohne Timer,
stelle ich es mir schwerer vor.
Mit lieben Grüßen
Günter K.
(ENK)

P.S.: Doch vorher versuche ich das Folgende, weil
Klaus schrieb:
> Lass' das bitte.
> Verändere/erweitere das Programm mit den 440Hz schrittweise:
>
> - dass es eine andere Tonhöhe abspielt
> - dass es den Ton z.B. nur eine bestimmte Zeit abspielt
> - dass es 2 verschiedene Töne hintereinander abspielt.
Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. - 
Doch
 danach vielleicht: G4 + B4, als kleine Terz.
 Danach vielleicht: G4 + C5, als große Terz.
(Aber irgendwie, kommt mir in den Sinn, die Tonsequenz-Kürzel
  in Form von Hexadezimale Zahl für 'f' also Frequenz von Christoph M.
  zu verwenden.)
Ob mir das -hier- gelingt, weiß ich jetzt noch nicht.
Erst mal nur die 3 Zweier-Gruppen. So wiederhole ich:
Mit lieben Grüßen
Günter K.
(ENK)

: Bearbeitet durch User
von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Günter K. schrieb:
> Ich versuche, später mal das Programm, so hexadezimal in der Art zu
> übertragen, wie Hans Otten in JUNIOR-COMPUTER das macht.

Der Hinweis gilt immer noch.

https://www.asm80.com/

Und während in villariba noch mühsam der Machinencode per Hand, Fuß und 
Gedächtnislücke geklöppelt wird, wird in villabacho schon RocknRoll 
gespielt! ;-)

Siehe Anhang.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. -
> Doch
>  danach vielleicht: G4 + B4, als kleine Terz.
> ....

Ich verstehe dein Gedankengänge Nullkommanull.

Ich hab es dir bereits einmal vorgerechnet.

Die Frequenz holst Du dir aus dem Internet.
Dann rechnest Du 1000000µs geteilt durch die gewünschte Frequenz und 
erhältst dadurch die Periodenlänge.
Das Ergebnis geteilt durch 2 ist die halbe Periodenlänge in µs, so lange 
muss Du zwischen 0 und 1 bzw 1 und 0 warten.
Ein Takt ist bei deinem 1MHz Prozessor genau 1µs lang.
Wenn also deine Delay-Schleife 6 Takte braucht, muss Du nur noch die 
berechnete halbe Periodenlänge durch 6 teilen und Du hast deinen Wert, 
wie oft Du in de Schleife warten musst.

Ich habe jetzt länger gebraucht das hier hinzuschreiben als es einfach 
(und einmalig!) auszurechnen.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Günter K. schrieb:
> Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. -
> Doch
>  danach vielleicht: G4 + B4, als kleine Terz.
> ....

Klaus (feelfree):
>Ich verstehe dein Gedankengänge Nullkommanull.

Ich glaube, da gibt es zwei Aspekte: Das eine gedankliche Problem ist, 
wie man einen Tonwechsel ohne Unterbrechung machen kann. Beim Wechsel 
des Tones werden wird ja eine andere Befehlssequenz durchlaufen und die 
verändert genau eine Periode der Schwingung. In der Realität merkt man 
aber beim Abspielen der Beispielprogramme (z.B. der Tonleiter) nichts, 
weil der Wechsel so schnell erfolgt, dass die veränderte Periodenlänge 
keinen hörbaren Effekt hat.
Der zweite, eher ziemlich komplizierte und sportliche Aspekt ist: Wie 
zwei Töne (mit einem Lautprecherpin ) gleichzeitig spielen (G4 + B4), so 
dass ein Akkord entsteht.
Das ist machbar, wie einige Videos mit dem Apple 2 (der eher in den 
80.er Jahren aktuell war), zeigen.

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
> Günter K. schrieb:
>> Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. -
>> Doch
>>  danach vielleicht: G4 + B4, als kleine Terz.
>> ....
>
> Klaus (feelfree):
>>Ich verstehe dein Gedankengänge Nullkommanull.
>
> Ich glaube, da gibt es zwei Aspekte: Das eine gedankliche Problem ist,
> wie man einen Tonwechsel ohne Unterbrechung machen kann. Beim Wechsel
> des Tones werden wird ja eine andere Befehlssequenz durchlaufen und die
> verändert genau eine Periode der Schwingung. In der Realität merkt man
> aber beim Abspielen der Beispielprogramme (z.B. der Tonleiter) nichts,
> weil der Wechsel so schnell erfolgt, dass die veränderte Periodenlänge
> keinen hörbaren Effekt hat.
> Der zweite, eher ziemlich komplizierte und sportliche Aspekt ist: Wie
> zwei Töne (mit einem Lautprecherpin ) gleichzeitig spielen (G4 + B4), so
> dass ein Akkord entsteht.
> Das ist machbar, wie einige Videos mit dem Apple 2 (der eher in den
> 80.er Jahren aktuell war), zeigen.

Christoph M. schrieb:
> Klaus (feelfree):
>>Ich verstehe dein Gedankengänge Nullkommanull.

Hallo liebe Leute,
ich hatte auch garnicht von einem ganzen Akkord gesprochen,
sondern ich meinte nur einzelne Töne.

Inzwischen hatte ich schon wieder eine ganze Aufsatzseite geschrieben,
wie ich an der richtigen Stelle in der NULL-Phase, eine Zählung 
unterbringe, - doch ich schicke es nicht ab.

Stattdessen, lese ich noch was in den Büchern.
Der Prozess, braucht eine Uhr.

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

von Cyblord -. (cyblord)


Lesenswert?

Falk B. schrieb:
> Günter K. schrieb:
>> Ich versuche, später mal das Programm, so hexadezimal in der Art zu
>> übertragen, wie Hans Otten in JUNIOR-COMPUTER das macht.
>
> Der Hinweis gilt immer noch.
>
> https://www.asm80.com/
>

Das wurde jetzt schon ca 10 mal vorgeschlagen. Ich frage mich ob der TE 
es überhaupt EINMAL angeklickt und ausprobiert hat.

Und nein, ich halte die völlig falsche und beratungsresistente 
Vorgehensweise die wir hier sehen überhaupt nicht für altersbedingt. Wer 
bisher strukturiert und klar denken und arbeiten konnte verfällt nicht 
plötzlich in so einen Modus. No Way. Das war bei dem noch nie anders.

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Inzwischen hatte ich schon wieder eine ganze Aufsatzseite geschrieben,
> wie ich an der richtigen Stelle in der NULL-Phase, eine Zählung
> unterbringe

Völlig überflüssig, es braucht keine NULL-Phase.
Und zum drölfzigsten Mal: Weiter oben hat Christoph ein Programm 
gepostet, das eine Tonleiter ausgibt. Inklusive Hörbeispiel.
Versuche das Programm zu verstehen. Wenn die das nicht gelingt, Frage 
konkret nach was du nicht verstehst
Solange du das Programm nicht verstanden hast, brauchst du keine eigenen 
Versuche starten, die werden nämlich grandios scheitern.

von Thilo L. (bc107)


Lesenswert?

Hmmm... also, ich muss sagen, beim Lesen dieses Threads (ja, mit 'd'!) 
bin ich hin- und hergerissen. Einesteils finde ich es immer 
bewundernswert, wenn jemand (egal in welchem Alter) noch den Elan hat, 
sich durch Selbststudium etwas selbst beizubringen. Andererseits tut es 
mir fast körperlich weh, mit anzusehen, wie Günter hier weitaus 
schneller in immer abstrusere Gedanken, Ideen, Versuche, 
Missverständnisse etc. fällt, als ihm hier auch nur ein einziges Konzept 
hinreichend nahegebracht werden kann.
Eigentlich braucht er Jemanden, der sich mal einen ganzen 
Nachmittag/Abend bei 'nem guten Bier oder Kamillentee mit ihm 
zusammensetzt und zusammenhängend wenigstens die Grundideen ohne 
Abschweifen nahebringt.
Aber so wie hier wird das nix: er versucht, Tonfolgen und Lieder 
abzuspielen, hat aber noch elementare Probleme damit, überhaupt die 
Funktionsweise einer CPU, den Maschinenbefehlen und Programmstrukturen 
zu verinnerlichen. Und nun will er gleich mehrere Töne gleichzeitg 
erzeugen. Das ist ungefähr so, als ob man gleichzeitig die Saiten einer 
Gitarre zählt, die Mechanik der Wirbel analysiert und eine Etude 
komponieren will.

Schade, aber ich persönlich sehe nicht, wie man ihm effizent die Materie 
nahebringen kann.

von Cyblord -. (cyblord)


Lesenswert?

Thilo L. schrieb:
> Eigentlich braucht er Jemanden, der sich mal einen ganzen
> Nachmittag/Abend bei 'nem guten Bier oder Kamillentee mit ihm
> zusammensetzt und zusammenhängend wenigstens die Grundideen ohne
> Abschweifen nahebringt.

Das Ergebnis wäre exakt das gleiche. Er ist schlicht nicht aufnahmefähig 
für Tipps und Ratschläge.

Und die Grundidee einer CPU, der Befehle usw. kann man sich am besten 
selbst und in max. 1 Stunde beibügeln. Wenn man denn will. Inkl. Youtube 
Videos wenn man zu faul zum lesen ist.

Das passiert aber alles nicht.

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


Lesenswert?

Thilo L. schrieb:
> Und nun will er gleich mehrere Töne gleichzeitg
> erzeugen. Das ist ungefähr so, als ob man gleichzeitig die Saiten einer
> Gitarre zählt, die Mechanik der Wirbel analysiert und eine Etude
> komponieren will.

Hallo lieber Thilo
Irgendwo habe ich geschrieben, dass ich keine Akkorde meinte, d.h.:
Nicht mehrere Töne gleichzeitig. Also:

Günter K. schrieb:
> Hallo liebe Leute,
> ich hatte auch garnicht von einem ganzen Akkord gesprochen,
> sondern ich meinte nur einzelne Töne.

Ich danke aber für Deinen verständnisvollen Beitrag.
Denn es geht um das Verstehen. Nicht um das Fertige zu übernehmen;
obschon ich die Leistung von Christoph M. sehr bewundere!!

Die Umrechnung aus den µSekunden von Klaus(feelfree) von 18.05.2025 
19:45
finde ich schon sehr gut. - Ob die Zeit reicht, - da noch was 
zwischenzuschieben? Da, bin jetzt noch nicht ganz sicher. Das weiß ich 
erst dann, wenn ich es ausprobiert habe. Denn immerhin muss ich ja 
hochzählen
(Nun ja, - es wird jedesmal nur 1 x hochgezählt) aber das verändert 
schon die Frequenz und zwar so, dass ich den (x vielleicht nicht) Y-Wert 
ändern muss, damit der Ton wieder stimmt. - Und ich muss so viel 
hochzählen, dass
ich 1/128 des Takts zusammenbekomme.

Kein Problem ist das mit dem Timer, weil er alleine selber zählt.
An einer Stelle hatte ich mich aber verschrieben, denn da hatte ich,
6502 statt 6532 für den Timer geschrieben.
Das geht, denn der Timer und der 6502 sollen ja zusammenarbeiten.
Ein Proramm einfach abschreiben, das ist -zu- einfach.
Man möchte es ja auch verstehen.
Liebe Grüße
Günter K.
(ENK)

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ein Proramm einfach abschreiben, das ist -zu- einfach.
> Man möchte es ja auch verstehen.

Bevor du nicht ein abgeschriebenes, fertiges Programm verstanden hast, 
brauchst du erst gar nicht versuchen, eines selbst zu schreiben. Das 
wird scheitern, wie man ja an jedem  Beitrag von dir erkennen kann.

Lernen kann man an Beispielen. Wie machen es andere?
Und wenn man ein Beispiel verstanden hat, kann man es verändern und 
erweitern. So lernt man.

Analogie:
Wenn du lernen willst, wie man schriftlich multipliziert, kannst du 
versuchen, den Rechenweg selbst herzuleiten. Oder eben eine Anleitung 
befolgen, 2-3 Beispiele nachzuvollziehen und dann erst selbst zu 
rechnen.

Günter K. schrieb:
> Kein Problem ist das mit dem Timer, weil er alleine selber zählt

Das zeigt mir, dass du nix verstanden hast. Einen Timer zu benutzen ist 
viel komplexer, das bekommst du niemals hin.
Vergiss den Timer. Hab ich aber auch schon mehr als einmal geschrieben.

von Christoph M. (mchris)


Lesenswert?

Hier mal der PiPico-6502-Emulator, falls jemand die Töne in Echtzeit 
hören will und keine Junior-Hardware hat:
Beitrag "6502 Emulator PiPico"

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Hier mal der PiPico-6502-Emulator, falls jemand die Töne in Echtzeit
> hören will und keine Junior-Hardware hat:
> Beitrag "6502 Emulator PiPico"

Sehr schoen! Werde ich am Wochenende einmal ausprobieren.

Da ich mit dem Junior waehrend der Schulzeit programmieren gelernt habe 
und jetzt mit einer 5EUR-Platine das gleiche machen kann: Irgendwie 
schliesst sich der Kreis.

Gruesse

von Günter K. (enk)


Lesenswert?

Hallo Leute,

Ich hatte einen langen Beitrag geschrieben, der alles
bezgl. dessen erklärt.

Tut mir Leid. Ich muss jetzt in die Stadt.
Das nächste mal, schreibe ich zu erst in WORD.
Liebe Grüße
Günter K.
(ENK)

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Das nächste mal, schreibe ich zu erst in WORD.

Und ausdrucken nicht vergessen!

von Roland F. (rhf)


Lesenswert?

Hallo Günter,
wo wohnst du?

rhf

von Günter K. (enk)


Lesenswert?

Hallo Leute,
es folgt: von Christoph M. (mchris) 14.05.2025 06:47

Christoph M. schrieb: > Und hier als praktische 
Übung:
>
> 1. rufe diese Seite auf:
> https://www.masswerk.at/6502/assembler.html
> 2. tippe im linken Fenster mit der Bezeichnung 'src' den Text 'nop' ein
> 3. drücke rechts unten auf 'Assemble'
> 4. drücke auf 'OK'
> 5. schaue das Ergebnis auf der rechten Seite im Fenster 'object code'
> an.

Hallo Christoph M.,
Bitte, wo hast Du das Programm mit mehreren Tönen gepostet?
Ich suchte, habe es leider nicht gefunden.
(Meine sogar es gesehen zu haben.)
Es sind zu viele Trump-Biden-Postings dazwischen.
Hab' mir auch mal den Rasberry PICO Pi zurechtgelegt.
Was mich aber auch interessiert ist der Maschinen-Code,
welches hoffentlich noch in gleicher Reihenfolge ist,
wie es erstellt wurde - und so funktioniert.

Einmal sah ich, dass da beim Apple II
eine ganz andere Reihenfolge erschien. (Das verwirrt!).
Bitte schicke mir das Programm oder den LINK.
Liebe Grüße
Günter K.
(ENK)

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Bitte, wo hast Du das Programm mit mehreren Tönen gepostet?

Ich habe es bereits 3 mal verlinkt. Macht ja nix, schadet ja auch kein 
viertes mal:

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

Aber ich paste es hier nochmal rein, damit es auch sauber mit
 https://www.masswerk.at/6502/assembler.html
assembliert werden kann:
1
    ;*****************************************************************************
2
    ; 
3
    ; erzeuge eine Tonleiter mit Rechecktönen
4
    ;
5
    ; Zielfrequenzen
6
    ; f =   261.63   293.66   329.63   349.23   392.00   440.00   493.88   523.25
7
    ;
8
    ; Hardware: 6502, fcpu=1MHz
9
    ; 
10
    ;*****************************************************************************
11
.org $300
12
    lda #$1
13
    sta PBDD     ; set PB0 to output
14
mainloop:
15
    ; C
16
    lda #200
17
    sta 0 ; teiler register
18
    jsr playnote
19
    ; D
20
    lda #158
21
    sta 0 ; teiler register
22
    jsr playnote
23
    ; E
24
    lda #121
25
    sta 0 ; teiler register
26
    jsr playnote
27
    ; F
28
    lda #104
29
    sta 0 ; teiler register
30
    jsr playnote
31
    ; G
32
    lda #73
33
    sta 0 ; teiler register
34
    jsr playnote
35
    ; H
36
    lda #45
37
    sta 0 ; teiler register
38
    jsr playnote
39
    ; A
40
    lda #20
41
    sta 0 ; teiler register
42
    jsr playnote
43
    ; C
44
    lda #9
45
    sta 0 ; teiler register
46
    jsr playnote
47
    jmp mainloop
48
playnote:
49
    ldy #50 ; duration
50
loop:
51
    ; default delay
52
    ldx #180        ; 5us×179+5us=900us
53
    jsr shortdelay  ; 6 cyles
54
    ; additional dela
55
    ldx 0 ; teiler register
56
    jsr shortdelay
57
    lda PBD      ; Read port B
58
    eor #$01     ; Toggle bit 0
59
    sta PBD      ; Write back
60
    dey
61
    bne loop
62
    rts
63
    ; Total time (in microseconds)=5N+5
64
shortdelay:
65
    dex             ; 2 cyc
66
    bne shortdelay  ; 3 cyc jmp , 2 no mp
67
    rts             ; 6 cyc
68
69
; MOS6532 PIA addreses
70
PAD:     .org $1A80
71
PADD:    .org $1A81
72
PBD:     .org $1A82
73
PBDD:    .org $1A83

: Bearbeitet durch User
von Dddns (dddns)


Lesenswert?

Hallo Günter,

ich denke, Du suchst genau das hier: https://geoffg.net/picomite.html

von Klaus (feelfree)


Lesenswert?

Dddns schrieb:
> Hallo Günter,
>
> ich denke, Du suchst genau das hier: https://geoffg.net/picomite.html

Nein, das sucht er ganz gewiss nicht.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
Dddns schrieb:
> Hallo Günter,
>
> ich denke, Du suchst genau das hier: https://geoffg.net/picomite.html

 von Klaus (feelfree) 20.05.2025 23:16
Nein, das sucht er ganz gewiss nicht.

Günter K. schreibt: Hallo liebe Leute!
Warum nicht? - Aber bitte auf Deutsch.
Liebe Grüße
Günter K.
(ENK)

Also lieber Klaus, es ist ja gut gemeint mit den einzelnen kleinen 
Schritten.
Denn genau das Modulare, suche ich. Fertige Programme sind oft zu sehr 
mit Verschachtelungen umschlungen. - Ja, die Fragen müssen in einzelnen 
Schritten, - also wieder Fragen zerlegt werden.

Ich werde auch -nicht-, den ganzen - Assembler - überfliegen können, -
- da liegst Du richtig -,
sondern nur kleine Schritte, die man einzeln versteht.
Wenn man dann, einige zusammengefasste Schritte verstanden hat, dann hat 
man schon größere Schrittchen verstanden, bis man so viel mehr 
verstanden hat, dass man es dann so, anwenden kann.

Die Schriftsteller meinen es gut, jedoch man wird vielleicht mit vielen
verstrickten Problemen konfrontiert.

Der Studierte, hat ein ganz anderes Gehirntraining hinter sich.
Diese Möglichkeit, wurde mir aber schon in der Kindheit geraubt!
Ich war zu schwach und zu Hilflos!
Liebe Grüße
Günter K.
(ENK)

von Thilo L. (bc107)


Lesenswert?

Also ich bin raus. Wenn ich mal wieder Lust auf Unterhaltung habe, nehme 
ich mir vielleicht eine Tüte Chips und verfolge dieses Drama 
ausschließlich lesenderweise.

Nun will Günter "ganze Assembler überfliegen"??? Schon mit den 
Begrifflichkeiten hat er Probleme: er meint wohl den gesamten 
Assembler-Code eines Programmes.
Oder "Fertige Programme sind oft zu sehr mit Verschachtelungen 
umschlungen." Was soll das denn nur bedeuten? Ein fertiges Programm wird 
höchstens kurz - aus seliger Wonne ob des Erreichten - von seinem 
Programmierer kurz und virtuell umschlungen...

Nun hat Günter sich einen Raspberry zurecht gelegt - hat er nicht genug 
Probleme mit einer der allereinfachsten Architekturen, seinem 6502?

Genau das, was ich in meinem Post weiter oben angemerkt hatte, passiert 
bei Günter in fortgesetzter Weise: kein einziger Gedanke (sinnvoll auf 
beherrschbare Komplexität zurecht gestutzt) wird einfach nur mal so 
richtig durchdacht, bis die Sache sitzt. Ständig schießen 
unzusammenhängende Bemerkungen und Überlegungen dazwischen.

Und zur Erleicherung beim Schreiben eines Posts das Ganze zunächst in 
Word zu verfassen, schießt den Vogel ab: Günter, wie wär's mit Hammer 
und Meißel und einem großen Stein?? Das übersteht garantiert ALLE 
Rechner-Crashes oder sonstige Probleme mit dem Internet!

Nee, wie gesagt, ich bin raus. Aber ich überbewerte schon wieder die 
Wichtigkeit meines Verhaltens im öffentlichen Raum, sorry.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Thilo L. schrieb:
> Ständig schießen
> unzusammenhängende Bemerkungen und Überlegungen dazwischen.

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

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich war zu schwach und zu Hilflos!

Dann such' dir ein anderes Hobby. Wenn Du es nicht mal schaffst, 20 
Zeilen Assemblercode verstehen zu wollen, sind weitere Anstrengungen in 
dieser Richtung absolut sinnlos.

von Christoph M. (mchris)


Lesenswert?

Ich finde die Tonerzeugung auf dem 6502 ziemlich interessant, weil man 
mit sehr wenigen Resourcen auskommen muss.
Mein Ziel ist es, deutlich komplexere Sounds zu erzeugen.
Damit die "professionelle Diskussion" nicht abreist, habe ich hier mal 
einen Thread für Leute erstellt, die in der Tiefe diskutieren wollen.

Beitrag "6502 sound generation"

von Christoph M. (mchris)


Lesenswert?

Apropos: hier noch eine praktische Frage zum Juniorcomputer.
Die Beispielprogramme starten immer ab Adresse 0x300 und damit sind nur 
noch 256 Bytes für das Programm frei.
Ich brauche mehr. Deshalb die Frage: Der Stackpointer geht ja von 
0x100-0x1FF, d.h. könnten die Programme auch ab 0x200 beginnen.

von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:
> Apropos: hier noch eine praktische Frage zum Juniorcomputer.

Wie wärs mit einem eigenen Thread für DEINE Probleme anstatt den hier 
sowieso extrem verwirrten Thread auch noch zu missbrauchen?

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Also lieber Klaus, es ist ja gut gemeint mit den einzelnen kleinen
> Schritten.
> Denn genau das Modulare, suche ich. Fertige Programme sind oft zu sehr
> mit Verschachtelungen umschlungen. - Ja, die Fragen müssen in einzelnen
> Schritten, - also wieder Fragen zerlegt werden.

Wie wärs mal wenn du KLARTEXT redest? Warum schwurbelst du so extrem um 
alles herum?
Was willst du mit dem obigen Satz sagen?

Klaus hat dir ein Programm gepostet welches Töne mit Variabler Tonhöhe 
erzeugen kann.
Das war doch deine Frage. Was ist nun los?
Verstehst du das Programm nicht? Dann frage konkret.

> Ich werde auch -nicht-, den ganzen - Assembler - überfliegen können, -
D.h. du kannst kein Beispielprogramm mit 20 Zeilen ASM anschauen und 
verstehen?
Warum nicht?
Und wenn das nicht geht, was glaubst du geht dann überhaupt in Richtung 
Assembler?

Sorry dein Problem ist nicht nur die Programmierung, sondern du kannst 
dich anscheinend auch überhaupt nicht ausdrücken.
Sortiere mal deine Gedanken und formuliere sie wie ein normaler Mensch.

Also WAS WILLST DU?
WAS SUCHST DU?
WELCHE FRAGEN HAST DU KONKRET?

Bitte mal KLARTEXT.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

von Cyblord -. (cyblord)
21.05.2025 10:36

>Christoph M. schrieb:
>> Apropos: hier noch eine praktische Frage zum Juniorcomputer.

>Wie wärs mit einem eigenen Thread für DEINE Probleme anstatt den hier
>sowieso extrem verwirrten Thread auch noch zu missbrauchen?

Die Frage, wo die Programme auf dem Juniorcomputer von Günther allokiert 
sind, ist durchaus relevant. Kannst du dein dummes Geschwätz irgendwo 
anders platzieren?

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:
> Die Frage, wo die Programme auf dem Juniorcomputer von Günther allokiert
> sind, ist durchaus relevant.

Das ist für Günther absolut nicht relevant.

Du funkst hier ständig mit deinen Themen dazwischen die für den TE null 
Relevanz haben. Mach einen eigenen Thread dafür auf. Das ist hier nun 
mal üblich. Threads kapern geht nicht.

von Christoph M. (mchris)


Lesenswert?

Cyblord -. (cyblord)
21.05.2025 11:44
>Du funkst hier ständig mit deinen Themen dazwischen die für den TE null
>Relevanz haben.

Bei dem was du Günter gegenüber hier bisher abgesondert hast: Hör auf 
Kreide zu fressen und den Trump zu spielen.

von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:

> Bei dem was du Günter gegenüber hier bisher abgesondert hast

Ich "sondere" hier gar nichts ab. Arbeite mal ein wenig an deinen 
Umgangsformen. Hattest du keine Kinderstube?

Ich sage ihm klar und On-Topic was das Problem ist. Im Gegensatz zu dir 
werde ich nicht ausfallend.

> Hör auf
> Kreide zu fressen und den Trump zu spielen.

Du scheinst tiefergehende Probleme zu haben und auch Probleme sachlich 
bei einem Thema zu bleiben. Das hat hier alles nichts zu suchen. Du 
zerstörst den Thread mit deinen Off-topic Anwürfen und Anschuldigungen.
Arbeite an dir und deinem eigenen Verhalten. Da hast du genug zu tun.

: Bearbeitet durch User
von Gunnar F. (gufi36)


Lesenswert?

Cyblord -. schrieb:
> Also WAS WILLST DU?
> WAS SUCHST DU?
> WELCHE FRAGEN HAST DU KONKRET?
>
> Bitte mal KLARTEXT.

Und Günter, du bist gefragt worden, wo du wohnst.
Ich selber habe auch in meiner Jugend viel mit dem seligen Commodore 
Pet2001 (auch MOS6502) in Assembler programmiert. Und wenn du wirklich 
interessiert bist, würde ich dir auch mal weiter helfen wollen. Aber ich 
kann bestätigen, was einige Vorredner schon sagten: Deine Fragen hier 
sind dafür nicht zielführend.

P.S: Das erste größere Programm das ich damals schrieb, war ein 
Assembler! Zu Beginn hackte ich wirklich Maschinencode ein, berechnete 
Sprungbefehle von Hand. Und wenn einer nicht stimmte: Adios! Da ich noch 
keinen Drucker besaß, hieß das, die ganze Litanei mit Bleistift auf 
Papier zu schreiben, ganz ähnlich zu jemanden, der seine damaligen Werke 
hier auch gezeigt hat. Auf den (1-pass-) Assembler war ich dann auch 
sehr stolz und die 1 in der Computer AG der Schule war dauerhaft meins. 
Schnüff, lange her.

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


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Apropos: hier noch eine praktische Frage zum Juniorcomputer.
> Die Beispielprogramme starten immer ab Adresse 0x300 und damit sind nur
> noch 256 Bytes für das Programm frei.
> Ich brauche mehr. Deshalb die Frage: Der Stackpointer geht ja von
> 0x100-0x1FF, d.h. könnten die Programme auch ab 0x200 beginnen.

Der Monitor beim Junior verwendet einen Teil der Zeropage 0x0000..0x00FF 
für seine Variablen.
Die 6502 verwendet 0x0100..0x01FF als Stackpointer.

Seite 2 sollte eigentlich auch frei sein, also mit Anfangsadresse 0x0200 
- bei Günter hat das erste Beispiel aber nicht funktioniert, daher hatte 
ich ihm empfohlen, das mal auf Adresse 0300 zu legen, da ging es dann.

Keine Ahnung, ob er sich da vertippt hatte oder das RAM einen Schuss 
hat.

Ich bin noch mal den Monitor durchgegangen, Seite zwei benutzt der 
nicht.
Von 0x0000 bis 0x00E0 kann man die Zeropage auch für eigene Programme 
verwenden. Und wenn man den Stack unter Kontrolle hat, dann steht auch 
die Page 1 weitgehend zur Verfügung!

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)
21.05.2025 14:11
>Seite 2 sollte eigentlich auch frei sein, also mit Anfangsadresse 0x0200
>- bei Günter hat das erste Beispiel aber nicht funktioniert, daher hatte
>ich ihm empfohlen, das mal auf Adresse 0300 zu legen, da ging es dann.
>Keine Ahnung, ob er sich da vertippt hatte oder das RAM einen Schuss
>hat.

Ah, ok .. ich meine einige Programme für den Apple 2 gesehen zu haben, 
die auch bei 0x300 gestartet sind und dachte das sein eine Art 
"Konvention". Meine Erklärung wäre gewesen: Page 1 für die schnellen 
Variablenzugriffe, Page 2 für den Stackpointer und Page 3 für langsame 
Variablen.
Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255 
Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich 
vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind. Das 
ist ein wenig der Vorteil der modernen Zeit: Beim PiPico-Emulator kann 
man einfach den HEX-Code per Drag&Drop in die Kommandozeile werfen und 
muss nicht jedesmal das Ganze wieder mühselig eintippen.

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


Lesenswert?

Christoph M. schrieb:
> Ah, ok .. ich meine einige Programme für den Apple 2 gesehen zu haben,
> die auch bei 0x300 gestartet sind und dachte das sein eine Art
> "Konvention".

Nö, der A2 hat ja ein viel mächtigeres Betriebssystem im ROM, da reichen 
wahrscheinlich 256 Byte nicht für die Variablen aus...

Christoph M. schrieb:
> Page 1 für die schnellen
> Variablenzugriffe, Page 2 für den Stackpointer und Page 3 für langsame
> Variablen.

Page 0, 1, 2... Kann so sein, ja!

Christoph M. schrieb:
> Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255
> Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich
> vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind.

Das ist es in der Tat. Einmal aus, alles weg... Der Junior hat aber auch 
eine Interface-Karte, mit der man alles auf Cassette speichern konnte! 
Die hat aber kaum jemand.

https://www.wolfgangrobel.de/sbc/junior2.htm#upd1

von Soul E. (soul_eye)


Lesenswert?

Christoph M. schrieb:
> Ah, ok .. ich meine einige Programme für den Apple 2 gesehen zu haben,
> die auch bei 0x300 gestartet sind und dachte das sein eine Art
> "Konvention". Meine Erklärung wäre gewesen: Page 1 für die schnellen
> Variablenzugriffe, Page 2 für den Stackpointer und Page 3 für langsame
> Variablen.

Page 0 für schnelle Variablen (zero page register file), Page 1 für den 
Stack, und Page 2 nutzte der Apple für den Eingabepuffer der Tastatur 
bzw des COM-Ports. Der Bildwiederholspeicher ging von $0400 - $07FF, und 
BASIC-Programme begannen meist bei $0800. Damit war Page 3 frei für 
kurze Assemblerprogramme, die nicht mit dem BASIC kollidieren sollten, 
und das DOS legte dort ein paar Variablen ab.

Daher liegen viele Assembler-Codebeispiele auf Adresse $0300.


> Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255
> Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich
> vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind.

Richtig. Daher hat man relativ schnell angefangen, auf einen 
Cassettenrecorder als Datenspeicher und ein Terminal bzw Fernschreiber 
als Ein/Ausgabegerät zu sparen.

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> Ich bin noch mal den Monitor durchgegangen, Seite zwei benutzt der
> nicht.
> Von 0x0000 bis 0x00E0 kann man die Zeropage auch für eigene Programme
> verwenden. Und wenn man den Stack unter Kontrolle hat, dann steht auch
> die Page 1 weitgehend zur Verfügung!

Danke Wolfgang R., dann probiere ich es noch mal ab 0x0200.
Wenn nicht, mache ich wieder weiter ab 0x300.
Liebe Grüße
Günter K.
(ENK)

von Sherlock 🕵🏽‍♂️ (Gast)


Lesenswert?

Cyblord -. schrieb:
> Bitte mal KLARTEXT.

Der Punkt ist, das manche Leute genau das einfach nicht hinbekommen, und 
deswegen (meiner Meinung nach) nie gute Entwickler werden können.

Das ist nicht schlimm, niemand kann alles und jeder kann irgend etwas 
gut.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> dann probiere ich es noch mal ab 0x0200.

Auch da wieder: Kannst Du machen, bringt dir aber absolut nix, nada, 
niente.
Außer halt Zeit totschlagen ohne Erkenntnisgewinn.

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


Lesenswert?

In diesem Forum hat die Mehrzahl den Spaß am Spielen total verloren. 
Traurig.

von Klaus (feelfree)


Lesenswert?

Wolfgang R. schrieb:
> In diesem Forum hat die Mehrzahl den Spaß am Spielen total verloren.
> Traurig.

Nö, überhaupt nicht. Beide jedem anderen hätte ich meinen Kommentar auch 
nicht abgegeben. Aber Günter braucht für die Aktion geschätzte 3-4 Tage, 
in denen er nichts sinnvolles bzgl. Assembler lernt. Es wäre nur der 
nächste Nebenkriegsschauplatz.

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


Lesenswert?

Wolfgang R. schrieb:
> In diesem Forum hat die Mehrzahl den Spaß am Spielen total
> verloren.
> Traurig.

Traurig, ja...
Aber "Mehrzahl"?

Ich schätze eher, dass diejenigen, mit wachem Spieltrieb, nicht auf 
andere Spieler herabsehen müssen.
Und sich etwas weniger mit urteilen beschäftigen.

OK, 6502 ASM ist auch für mich von wenig bis keinem Interesse. Was aber 
nicht dazu führt, dass ich anderen Leuten das Spielzeug kaputttrampen 
muss. Auch wenn mir die Farbe oder das Vorgehen nicht schmeckt.

von Cyblord -. (cyblord)


Lesenswert?

Arduino F. schrieb:
> Was aber
> nicht dazu führt, dass ich anderen Leuten das Spielzeug kaputttrampen
> muss. Auch wenn mir die Farbe oder das Vorgehen nicht schmeckt.

Das passiert hier auch gar nicht. Kannst du nicht lesen? Oder haperts 
bei dir am Verstehen?

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,

Soul E. schrieb:
....
Christoph M. schrieb:
>> Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255
>> Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich
>> vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind.

Günter K. schreibt:
Ja, nach Ausschalten des Stromes sind (fast) alle Daten weg, -
(bis auf den Daten des MONITORs bzw. des Betriebssystems vom ROM).
Ich weiß wirklich, zu wenig darüber.
Der OP-Code ist mir wichtig.
Mit lieben Grüßen
Günter K.
(ENK)

: Bearbeitet durch User
von Soul E. (soul_eye)


Lesenswert?

Günter K. schrieb:
> Ja, nach Ausschalten des Stromes sind (fast) alle Daten weg, -
> (bis auf den Daten des MONITORs bzw. des Betriebssystems vom ROM).
> Ich weiß wirklich, zu wenig darüber.

Ein Computer hat üblicherweise einen Festwertspeicher (read only memory, 
ROM) und einen Arbeitsspeicher (read/write memory).

Der Arbeitsspeicher ist bei Deinem Apparat als random access memory 
(RAM) ausgeführt, d.h. Du kannst auf die Speicherzellen in beliebiger 
Reihenfolge zugreifen. Das war nicht immer so, frühere Rechner hatten 
sequential access memory (SAM, z.B. Trommelspeicher, 
Verzögerungsleitung, Schieberegister) oder context associative memory 
(CAM).

Der Inhalt des Arbeitsspeichers ist nach dem Ausschalten weg, der Inhalt 
des Festwertspeichers bleibt erhalten. Daher kannst Du den Inhalt des 
Arbeitsspeichers üblicherweise auf einen Massenspeicher (Magnetband, 
Diskette, Festplatte) sichern oder an ein anderes Gerät übergeben, das 
drauf aufpasst ("in der Cloud speichern").


> Der OP-Code ist mir wichtig.

Die OP-Codes, also die numerische Repräsentation der Maschinenbefehle, 
z.B. $EA oder 1110 1010 für "NOP", sind in RAM, ROM und auf Cassette 
identisch.

von Günter K. (enk)


Lesenswert?

Cyblord -. schrieb:
> Das passiert hier auch gar nicht. Kannst du nicht lesen? Oder haperts
> bei dir am Verstehen?

Hallo Leute,
So viel ich weiß, hat die ganze Welt, noch keine definitive Sprache,
(auch nicht im Englischen) außer den Programmiersprachen, und die
kann ich leider auch noch nicht.

Folglich ist "Verstehen" eben eine "Anschauungssache".
Also gemeint ist hier, dass -scheinbar angeblich-
jemand "könne nicht" lesen, was für Andere nicht
oder zu schwer zu verstehen ist. - Vetragt Euch bitte.
Gut gemeint,
liebe Grüße
Günter K.
(Enk)

von Christoph M. (mchris)


Lesenswert?

Enk schrieb:
> Vetragt Euch bitte.

/*********************************************************************/

     NICHT MIT TROLLEN DISKUTIEREN !

Cyblord ist ein über 10 Jahre im MC-Netz aktiver Forentroll.
Die intellektulle Aufgabe dieses Trolls ist Forenteilnehmer auf eine 
geschickte Art so zu beleidigen,  dass seine eigener Post nicht gelöscht 
wird, der Forenteilnehmer seinem Ärger in weitern Posts in weiteren 
Posts kundtut.
Die Grenze der Beleidigungen wird von Troll immer weiter angehoben, bis 
ein Moderator seinen Account löscht.

Im Falle von Cyblord ist das Anhängsel ".-" an seinen Nickname 
"Cyblord.-", wie oft er seinen Nickname neu anlegen musste.

Das Vorgehen der "trollartigen" ist in der Wikipedia beschrieben:

https://de.wikipedia.org/wiki/Troll_(Netzkultur)

/*********************************************************************** 
/

von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:
> Im Falle von Cyblord ist das Anhängsel ".-" an seinen Nickname
> "Cyblord.-", wie oft er seinen Nickname neu anlegen musste.

Musste ich noch nie, das siehst du an der Anzahl meiner Beiträge.

Der Rest ist ebenfalls Verleumdung und zerstört diesen Thread. Gerade DU 
versuchst aktuell alles um ihn Off Topic zu ziehen. Inkl. 
Unflätigkeiten.

Bleib doch mal On-Topic und helfe dem TE. Wie wärs damit?
Persönliche Animositäten kannst du per PN klären.

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Der Rest ist ebenfalls Verleumdung

Haha, selten so gelacht.

Cyblord -. schrieb:
> Bleib doch mal On-Topic und helfe dem TE.

Bleib doch mal On-Topic und helfe dem TO, du lässt dich nur darüber aus, 
wie (angeblich) viel zu dumm der TE ist, wie andere ins OT abgleiten und 
dass du ja auf gar keinen Fall dazu gehörst.

von Christoph M. (mchris)


Lesenswert?

J. T. (chaoskind)
>Haha, selten so gelacht.

Es dürfte relativ wenig Sinn haben, mit ihm zu diskutieren.

Wenn man sich den Wikipedia-Artikel durchliest, ist 'cyblord' wirklich 
der prototypisch Troll, der ausschließlich auf emotionaler, nie auf 
fachlicher Ebenen diskutiert:

https://de.wikipedia.org/wiki/Troll_(Netzkultur)

Wenn ich den Artikel richtig verstehe, sind die Trolle mit einem 
Nutzeranteil von 5.6% gar nicht so selten.

Apropos .. hier gibt es ein wenig Historie:
Beitrag "Re: warum wird Cyblord -. (cyblord) nicht endgültig gesperrt?"


Aber belassen wir es dabei, vielleicht gibt es trotz der 'cyblords" auf 
dieser Welt noch eine kleine Chance, eine fachliche Diskussion in diesem 
Forum zu führen.

Ansonsten gilt der weise Spruch in Wikipedia-Artikel:

„Trolle bitte nicht füttern!“ oder „Trolle füttern verboten!“

Also eine weitere Trollkommunikation ist zu unterlassen.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Irgendwo habe ich eine Routine für das Abspielen der Notenleiter 
gefunden. Die musste ich aber stark modifizieren, dass sie lief.
Der Gag hier: die Noten sollen gleich lang sein. Dazu braucht man ein 
zweites Byte Array, das die Anzahl der "Wellenzyklen" enthält. Ich meine 
dieses Wort bei Günter gelesen zu haben.
1
; Apple II 6502 Assembly: Play C D E F G A B C scale
2
; Each note is played by toggling the speaker at $C030
3
; with a delay controlling pitch and a fixed duration.
4
;
5
; modified for
6
; Junior Computer
7
; 2025-05-22 mchris
8
9
        .org $300          ; Start address (example)
10
11
        lda #$1
12
        sta PBDD     ; set PB0 to output
13
mainloop:
14
        jsr start
15
        jmp mainloop
16
; --- Constants ---
17
;SPEAKER = $C030 ; apple2
18
SPEAKER = PBD ; Junior Computer
19
;PBD=$1A82
20
21
22
; --- Note pitch delay values ---
23
; These delay values approximate frequencies for the Apple II speaker.
24
; Smaller delay = higher pitch.
25
;
26
; Approximate values (tuned experimentally):
27
; C4 = 191, D4 = 170, E4 = 151, F4 = 143, G4 = 127, A4 = 113, B4 = 101, C5 = 95
28
29
C4  = 191
30
D4  = 170
31
E4  = 151
32
F4  = 143
33
G4  = 127
34
A4  = 113
35
B4  = 101
36
C5  = 95
37
38
pitch_delay =0
39
duration_count= 1
40
temp_duration=2
41
42
start:
43
        LDY #0                  ; Y = note index 0
44
45
play_next_note:
46
        tya
47
        pha
48
        LDA notes,Y             ; Load pitch delay for note Y
49
        STA pitch_delay
50
51
        LDA durations,Y
52
        STA duration_count
53
54
        ; einnal PlaySound ist zu kurz, mache mehrmals
55
        JSR PlaySound           ; Play the note
56
        JSR PlaySound           ; Play the note
57
        JSR PlaySound           ; Play the note
58
        JSR PlaySound           ; Play the note
59
60
        pla
61
        tay
62
        INY                     ; Next note
63
        CPY #notes_length
64
        BNE play_next_note
65
66
        RTS                     ; Return from program (or loop)
67
68
; --- PlaySound routine ---
69
; Inputs:
70
;   pitch_delay (zeropage) - controls pitch (delay length)
71
;   duration_count (zeropage) - controls duration (number of toggles)
72
;
73
; apple: Toggles speaker at $C030 to generate tone.
74
; Junior: PBD
75
76
PlaySound:
77
        LDY duration_count      ; Load duration count into Y
78
79
PlaySound_Loop:
80
        STY temp_duration       ; Save duration count temporarily
81
82
ToggleLoop:
83
        LDA SPEAKER             ; Read speaker port (optional)
84
        EOR #$1                 ; Flip bits to toggle speaker
85
        STA SPEAKER             ; Write to speaker port
86
87
        LDX pitch_delay         ; Load pitch delay into X
88
89
DelayLoop:
90
        DEX
91
        BNE DelayLoop
92
93
        LDY temp_duration
94
        DEY
95
        BNE PlaySound_Loop
96
97
        RTS
98
99
        ; --- Note sequence ---
100
        ;.segment "RODATA"
101
notes:
102
        .byte C4, D4, E4, F4, G4, A4, B4, C5
103
durations:
104
        .byte 100,112,126,132,150,168,188,200
105
106
107
notes_length = 8
108
109
PBD=$1A82
110
PBDD=$1A83

Wenn man mehr Noten ( z.B. für 2 Oktaven ) haben will, wird man wohl 
nicht umhin kommen, 2 bytes für die Noten und die Notendauern zu 
verwenden.

von Klaus (feelfree)


Lesenswert?

Christoph M. schrieb:
> STY temp_duration       ; Save duration count temporarily

Irgendwie überflüssig, oder?
Ist wahrscheinlich noch ein Überbleibsel aus einer 16bit Delay-Routine?

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Klaus (feelfree)
>Ist wahrscheinlich noch ein Überbleibsel aus einer 16bit Delay-Routine?
Hast Recht, da kann man sich etwas sparen.

Leider wird die echte 16Bit Version dann doch aufwändiger (siehe 
Anhang).
Bei dieser Version sind es 31 Frequenzen. Da man die Wellenzahl und die 
Periodenlänge braucht, sind das dann 4*31 Byte allein für die Tabellen. 
Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit.
Die Frequenz habe ich mit dem manuell abgeglichen. Man könnte mit 
Zyklenzählen und genau rechnen noch etwas Genauigkeit heraus holen.

von Cyblord -. (cyblord)


Lesenswert?

Weilt der TE eigentlich noch unter uns?

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,

ich werde demnächst vielleicht ein Programm für Musik (ab)schreiben.
Ich bitte darum es zu gestatten, das ich das Programm in Form von
Maschinen-Sprache schreibe. Weil ich noch nicht so gebildet bin,
habe ich dann mehr Platz bei den REM-Befehlen.
Bei den Befehlen, schreibe ich die Adressierungs-Art dazu.
Hallo Klaus, für Dich und -mich-, werde ich auch noch folgendes machen:
Ich schreibe eine Warteschleife, dann ein Ton, dann wieder eine 
Warteschleife, und dann wieder eine Ton. - Dann wird folgendes Stück 
geplant.
Ein Lied für ein Posthorn, mit dem Text: "Ta tü ta ta, die Post ist da."

Gedanken zur Zeit, bzw. -Timer-. - Ich teile die Zeit auf in 3/4.
Diese Zeit nenne ich: a'- Zeit, akademische Zeit, astronomische Zeit.
Sie geht glatt auf, für den Computer; - dann hat ein 1/2 Tag 16 ak'h.
Nach einem Tag, folgt die Nacht. Aber der Tag beginnt um 12 Uhr und wir 
sagen: Guten Tag. Warum? Dann brauchen die Astromen den Kalender nicht 
Umblättern, wenn sie nach den Sternen schauen, es geht hexadezimal glatt 
auf;
oder auch gezimal(?) denn nächste Ziffernzeichen ist das "G", es lässt 
sich sogar 7-Segment-Code anzeigen. Ein kurzes Wort: "Gezi." ähnlich dem 
"Dezi."
Das g geht doch, oder?
Liebe Grüße
Günter K.
(ENK)

von Peter D. (peda)


Lesenswert?

Christoph M. schrieb:
> Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit.

Da bist Du wohl der Einzige, der sich derartige Umstände noch antut.
Alle anderen schreiben alles in eine Datei, die man dann nur noch 
einspielt (RS232, USB) oder in einen Flash brennt.
Man muß seine Lebenszeit schließlich nicht mit Gewalt vernichten.

Auch kommt man für ein Projekt kaum mit nur einer Sitzung aus, sondern 
will später noch daran weiter arbeiten. Da ist es sinnvoll den alten 
Stand auf dem PC verfügbar zu haben, bzw. sogar mehrere Stände 
(Versionsverwaltung).
Schnell hat man Sackgassen eingebaut und will dann zu einem alten Stand 
wieder zurück.

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Gedanken zur Zeit, bzw. -Timer-. - Ich teile die Zeit auf in 3/4.
> Diese Zeit nenne ich: a'- Zeit, akademische Zeit, astronomische Zeit.
> Sie geht glatt auf, für den Computer; - dann hat ein 1/2 Tag 16 ak'h.
> Nach einem Tag, folgt die Nacht. Aber der Tag beginnt um 12 Uhr und wir
> sagen: Guten Tag. Warum? Dann brauchen die Astromen den Kalender nicht
> Umblättern, wenn sie nach den Sternen schauen, es geht hexadezimal glatt
> auf;
> oder auch gezimal(?) denn nächste Ziffernzeichen ist das "G", es lässt
> sich sogar 7-Segment-Code anzeigen. Ein kurzes Wort: "Gezi." ähnlich dem
> "Dezi."
> Das g geht doch, oder?

Kann man diesen Text nun vollends als Verabschiedung aus unserer 
Realität betrachten?

von Gunnar F. (gufi36)


Lesenswert?

Cyblord -. schrieb:
> Kann man diesen Text nun vollends als Verabschiedung aus unserer
> Realität betrachten?

ich zumindest aus meiner.

von Klaus (feelfree)


Lesenswert?

Cyblord -. schrieb:
> Günter K. schrieb:
>> Gedanken zur Zeit, bzw. -Timer-. - Ich teile die Zeit auf in 3/4.
>> Diese Zeit nenne ich: a'- Zeit, akademische Zeit, astronomische Zeit.
>> Sie geht glatt auf, für den Computer; - dann hat ein 1/2 Tag 16 ak'h.
>> Nach einem Tag, folgt die Nacht. Aber der Tag beginnt um 12 Uhr und wir
>> sagen: Guten Tag. Warum? Dann brauchen die Astromen den Kalender nicht
>> Umblättern, wenn sie nach den Sternen schauen, es geht hexadezimal glatt
>> auf;
>> oder auch gezimal(?) denn nächste Ziffernzeichen ist das "G", es lässt
>> sich sogar 7-Segment-Code anzeigen. Ein kurzes Wort: "Gezi." ähnlich dem
>> "Dezi."
>> Das g geht doch, oder?
>
> Kann man diesen Text nun vollends als Verabschiedung aus unserer
> Realität betrachten?

Ich wette, nicht mal Günter versteht das, was er da geschrieben hat.
Und ich wette, er wird es auch nie schaffen, ein Lied auf seinem Junior 
abzuspielen.

von Falk B. (falk)


Lesenswert?

Klaus schrieb:
> Ich wette, nicht mal Günter versteht das, was er da geschrieben hat.
> Und ich wette, er wird es auch nie schaffen, ein Lied auf seinem Junior
> abzuspielen.

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

von Christoph M. (mchris)


Lesenswert?

Christoph M. schrieb:
> Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit.
Peter D. (peda)
23.05.2025 12:53
>>Da bist Du wohl der Einzige, der sich derartige Umstände noch antut.

Eigentlich nicht, ich mache das per Pyhon-Script (compilieren, download 
in einem Rutsch) damit:
Beitrag "6502 Emulator PiPico"

von Günter K. (enk)


Lesenswert?

Hallo, liebe Leute,

wie soll ichs sagen? - Ich stehe dazu, dass ich nicht so klug bin.
Ich hatte mal gehört, dass Python keinen Compiler hätte; und weil -

ich nicht weiß, wie ein Compiler funktioniert, - wollte ich was über

Assembler lernen. - Und ich besorgte ein Büchlein über den 8086 und
siehe da, - da hat dieser Assembler hat auch einen Assembler.

CBM-BASIC hat keinen Assembler, sondern nur einen Interpreter. Und das
bringt ich jetzt erst (jetzt im Moment) auf die Idee, - evtl. den
-Fernschreiber- als Empfänger auf einem einfachen PC zu schreiben, denn
das GW-BASIC für den PC, erschien mir noch besser, als das von 
Commodore.
Ich möchte, -verstehen- können, was der Computer bzw. CPU macht.

Und darum, tue ich mir die Tipp-Arbeit an, um so zu versuchen,
die Beziehung zur Maschine zu behalten.
Prima, toll, was Ihr so mit den Computern macht, find ich wirklich gut!

Christoph M. schrieb:
> Christoph M. schrieb:
>> Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit.
> Peter D. (peda)
> 23.05.2025 12:53
>>>Da bist Du wohl der Einzige, der sich derartige Umstände noch antut.
>
> Eigentlich nicht, ich mache das per Pyhon-Script (compilieren, download
> in einem Rutsch) damit:
> Beitrag "6502 Emulator PiPico"
Immerhin, habe ich ja jetzt auch einen PiPico.
Gleich erwarte ich wieder Besuch, hab' aber schon gesagt, dass ich die
Sachen u.a. für den Junior-Computer hier auf dem Tisch stehen habe.
Was für mich auch noch interessant wäre, das wäre ein DISASSEMBLER.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich stehe dazu, dass ich nicht so klug bin.

Das ist nun wirklich kein Problem und das macht dir auch niemand zum 
Vorwurf. Im Gegenteil, der Großteil will dir ja helfen.

Günter K. schrieb:
> und siehe da, - da hat dieser Assembler hat auch einen Assembler.

Aber so verwirrt wie deine Beiträge sind, würde ich mir an deiner Stelle 
nun wirklich langsam über eine beginnende Demenz Gedanken machen.

Du bekommst wirklich keinen einzigen klaren Gedanken formuliert, und das 
schon seit vielen Monaten in diesem Thread.

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


Lesenswert?

Günter K. schrieb:
> Was für mich auch noch interessant wäre, das wäre ein DISASSEMBLER.
Relativ nutzlos.
Selbst der beste Disassembler kann nicht die Intentionen des Codes 
Erstellers ermitteln.

Übrigens:
Um mal Werbung für Arduino zu machen...

Ein AVR hat ca. 130 ASM Instruktionen. Relativ leicht zu lernen.

Im Arduino Lieferumfang finden sich C und C++ Compiler.
Dazu Assembler und auch ein Disassembler

von Klaus (feelfree)


Lesenswert?

Arduino F. schrieb:
> ca. 130 ASM Instruktionen

Danke für die Warnung. Ein anfängertauglicher Rechner würde mit 100 
weniger auskommen.

von Harald K. (kirnbichler)


Lesenswert?

Arduino F. schrieb:
> Ein AVR hat ca. 130 ASM Instruktionen. Relativ leicht zu lernen.

Da ist ein 6502 mit 56 Instruktionen irgendwie überschaubarer.

von (prx) A. K. (prx)


Lesenswert?

Nicht die Anzahl Befehle ist entscheidend, sondern ob dem eine 
übersichtliche Systematik zugrunde liegt.

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


Lesenswert?

Harald K. schrieb:
> mit 56 Instruktionen
Wobei es alleine von MOV ca 1/2 Dutzend Varianten gibt, von denen keine 
einzige irgendwas moved/bewegt
Für mich heißt "move" hier wegnehmen und woanders hin legen.
Anders: Wenn man ein Auto von hier nach da moved ist hier nix mehr Auto.
Nix 2 Autos, nach dem Move.

von Harald K. (kirnbichler)


Lesenswert?

Arduino F. schrieb:
> Wobei es alleine von MOV ca 1/2 Dutzend Varianten gibt,

6502 hat exakt null MOV-Instruktionen.

Falsch abgebogen?

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


Lesenswert?

Möglich

von (prx) A. K. (prx)


Lesenswert?

Manchmal gibt es wohl Zwänge. Bei Zilogs berüchtigten Load-Befehlen, die 
eigentlich Store-Befehle sind, habe ich das Namensrecht im Verdacht.

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


Lesenswert?

Harald K. schrieb:
> 6502 hat exakt null MOV-Instruktionen.

Dafür aber "transfer". Ist das besser? :)

von Harald K. (kirnbichler)


Lesenswert?

(prx) A. K. schrieb:
> Ist das besser?

Kommt auf das Mindset der das verdauenden Person an.

Die sechs "transfer"-Befehle schreiben den Inhalt eines Registers in ein 
anderes (Y nach A oder umgekehrt, X nach A oder umgekehrt, X nach S oder 
umgekehrt).

Hat irgendjemand behauptet, der 6502 hätte einen orthogoalen oder auch 
nur irgendwie logisch aufgebauten Befehlssatz?

Wer einen schöneren Befehlssatz sehen will, soll sich den des 6809 
ansehen.

von Falk B. (falk)


Lesenswert?

Harald K. schrieb:
> Hat irgendjemand behauptet, der 6502 hätte einen orthogoalen oder auch
> nur irgendwie logisch aufgebauten Befehlssatz?

Was ist an dem Befehlssatz unlogisch? Orthogonal ist nett, aber eher 
B-Note. Die Anzahl Millionen (Milliarden?) 6502 CPUs (und deren 
Derivate), die in den letzten 50 Jahren gebaut und benutzt worden sind, 
belegen wohl ganz gut, daß das Ding überaus nützlich war, auch wenn es 
keine akademische Schönheit ist. Aber die ist sowieso zweifelhaft!

Done is better than perfect!

von Josef G. (bome) Benutzerseite


Lesenswert?

Harald K. schrieb:
> Wer einen schöneren Befehlssatz sehen will,
> soll sich den des XXX ansehen.

Ich wüsste da auch einen ...

von Thomas W. (datenreisender)


Lesenswert?

Josef G. schrieb:
> Harald K. schrieb:
>> Wer einen schöneren Befehlssatz sehen will,
>> soll sich den des XXX ansehen.
>
> Ich wüsste da auch einen ...

Natuerlich, VAX Assembly language:

https://www.ece.lsu.edu/ee4720/doc/vax.pdf

Was sonst?

Duck and Cover....

von Roland F. (rhf)


Lesenswert?

Hallo,
Josef G. schrieb:
> Ich wüsste da auch einen...

Stimmt, die PDP-11 wurde noch nicht genannt.

rhf

P.S. Oder dachtest du an was anderes?...

von Klaus (feelfree)


Lesenswert?

Josef G. schrieb:
> Harald K. schrieb:
>> Wer einen schöneren Befehlssatz sehen will,
>> soll sich den des XXX ansehen.
>
> Ich wüsste da auch einen ...

Ich sehe durchaus Parallelen in Günters und Josefs Gedankenwelt - wer 
weiß, vielleicht findet sich ja mit Günter tatsächlich ein erster 
Anwender für bomes 8-Bit-Rechner?

von Harald K. (kirnbichler)


Lesenswert?

Falk B. schrieb:
> Done is better than perfect!

Ich habe das überhaupt nicht (ab)wertend gemeint.

Der Befehlssatz ist halt ... eine deutlich abgespeckte Variante des 
Originals, wie auch der Prozessor eine abgespeckte Variante des 
Originals* ist. Und ja, offensichtlich war das ausreichend, wie der 
deutlich größere Erfolg gegenüber dem Original zeigte - die abgespeckte 
Variante war halt auch deutlich kostengünstiger. Die Mehrarbeit durch 
aufwendigere Programmierung wurde lange Zeit durch die Kostenersparnis 
bei der Hardware aufgewogen.

Aus Sicht des Programmierers aber bietet das Original mehr 
Möglichkeiten, zum Ziel zu kommen ... allein die Tatsache, daß sowohl 
der Stackpointer als auch das Indexregister 16 bit breit waren.

Die Kür in dieser Richtung war eben der 6809, dem allerdings wenig 
Erfolg beschieden war, weil er technisch das Ende der Fahnenstange 
erreicht hatte (mal abgesehen von den viel zu spät erst öffentlich 
dokumentierten Erweiterungen, die Hitachi der CMOS-Version 6309 verpasst 
hatte), und weil nur wenige Monate später mit dem 68000 etwas völlig 
anderes aus dem gleichen Hause zur Verfügung stand.


*) http://www.8bit-era.cz/6800.html

von Christoph M. (mchris)


Lesenswert?

Interessanterweise gab es den 6800 vor dem 6502.
Der 6800 hatte 250$ gekostet und das Preisziel vom 6502 war 25$.
Dazu wurde der 6800 im Detail analysiert und geschaut, welches die 
wirklich wichtigen "Features" waren.
Hier gibt es ein ziemlich aufschlussreiches Video, wie es zum Kampf um 
den 6502 kam:

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

Der Registersatz des 6800 war
* Accumulatoren: A,B
* Indexregister IX
* Stackpointer
* Flags
https://en.wikipedia.org/wiki/Motorola_6800

Beim 6502 hat man sich den zweiten Accumulator 'B' gespart und dafür das 
Indexregister 'Y' eingeführt.

Die Index-Register halte ich für enorm wichtig, da man damit schnell 
durch Tabellen gehen kann.

Was mich immer wieder wundert ist, dass der 6502 trotz der sehr viel 
geringeren Registeranzahl mit der Geschwindigkeit des Z80 mithalten 
konnte.
Der Vorteil dürfte aber der relativ schnelle Zugriff auf die 
RAM-Speicherzellen in Page 0 gewesen sein, die man dann als einen 
erweiterten Registersatz betrachten könnte.

von Rbx (rcx)


Lesenswert?

Falk B. schrieb:
> Done is better than perfect!

Perfektion ist sowieso das tote.

Allerdings hatten einige Bethesda-Fans ganz schön ausgeholt, als 
Starfield rauskam.

von Harald K. (kirnbichler)


Lesenswert?

Christoph M. schrieb:
> Dazu wurde der 6800 im Detail analysiert und geschaut, welches die
> wirklich wichtigen "Features" waren.

Eben.

Christoph M. schrieb:
> Die Index-Register halte ich für enorm wichtig, da man damit schnell
> durch Tabellen gehen kann.

Richtig, aber die des 6502 waren nur 8 Bit breit, das des 6800 aber 16 
Bit, so daß Tabellen auch größer als eine "Page" werden konnten, ohne 
daß zusätzliche Klimmzüge nötig waren.

Der 6809 hatte zwei 16-Bit-Indexregister und einen weiteren, ebenfalls 
16 Bit großen Stackpointer, und konnte für manche Operationen die beiden 
8-Bit-Akkumulatoren zu einem 16-Bit-Akkumulator kombinieren.

Ein Problem wurde dann allerdings das relativ langsame Businterface, das 
halt jedes einzelne Byte nacheinander schaufeln musste; hätte man das 
mit einem 16-Bit-Businterface kombiniert, hätte das Ding deutlich 
flotter werden können. Allerdings war damals die restliche Hardware noch 
so teuer, daß man diesen Schritt gerne ausließ - zumal die dann doch 
massiv überarbeitete 68k-Architektur eh' konzeptionell überlegen war 
(mit jeder Menge 32-Bit-Registern ...).

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Interessanterweise gab es den 6800 vor dem 6502.
> Der 6800 hatte 250$ gekostet und das Preisziel vom 6502 war 25$.

Das war damals die Vorgabe: Moeglichst billig fuer den Massenmarkt.

> Beim 6502 hat man sich den zweiten Accumulator 'B' gespart und dafür das
> Indexregister 'Y' eingeführt.

Vor allen Dingen sind die Indizes fuer hoehe Programmiersprachen sehr 
hilfreich, so ein Art Frameindex (so dass Du lokal Variablen nicht auf 
dem Stack packen musst sondern auf Deinen Frame. Bei Return kannst Du 
dann alle Lokales einfach entsorgen)

> Die Index-Register halte ich für enorm wichtig, da man damit schnell
> durch Tabellen gehen kann.
>
> Was mich immer wieder wundert ist, dass der 6502 trotz der sehr viel
> geringeren Registeranzahl mit der Geschwindigkeit des Z80 mithalten
> konnte.

Noe. Die 6502 hatte kein richtiges Microprogramming sondern wirklich ein 
direktes Steuerwerk. Das war schnell, auch der Speicherzugriff ueber 
Phi1/phi2 war sehr schnell und direkt. Die Z80 war viel komplexer 
aufgebaut und brauchte mehrere T-Zyklen um den OpCode zu dekodieren 
(auch wg. des Mikroprogramming).

> Der Vorteil dürfte aber der relativ schnelle Zugriff auf die
> RAM-Speicherzellen in Page 0 gewesen sein, die man dann als einen
> erweiterten Registersatz betrachten könnte.

Wenn Du den Nachfolger WDC65S02 anguckst: Dort wurde das Konzept der 
Zeropage auf die Direct-Page weiterentwickelt: Durch 
Direkt-Page-register (beim Reset 0x00) konntest Du Deine Zero-Page 
beliebig schieben.

Wenn Du ein bisschen Geschichte lesen willst: in 
Beitrag "a Microprocessor for the Revolution -- 6809" habe ich einen Artikel 
von der Byte 1979 gezeigt wie der 6809 entwickelt wurde (so per Hand).

Gruesse

von Soul E. (soul_eye)


Lesenswert?

Christoph M. schrieb:
> Was mich immer wieder wundert ist, dass der 6502 trotz der sehr viel
> geringeren Registeranzahl mit der Geschwindigkeit des Z80 mithalten
> konnte.

Lass Dich nicht von dem geringeren Quarztakt irritieren. Der 6502 
braucht einen Quarztakt pro CPU-Takt. Beim Z80 sind es vier. D.h. Du 
musst einen Z80 mit 4 MHz takten, damit er innen drin genauso schnell 
läuft wie ein 6502 mit 1 MHz. Der Z80 hat leistunsfähigere und komplexe 
Befehle, aber die brauchen relativ lange. Beim 6502 muss man diese durch 
Unterprogramme nachbilden, was im Ergebis ähnlich schnell ist.

Für den Assemblerprogrammierer ist der Z80 schöner, weil man eleganteren 
und kürzeren Code schreiben kann. Für den Anfänger ist der 6502 
angenehmer, weil der einfacher zu überblicken ist.


> Der Vorteil dürfte aber der relativ schnelle Zugriff auf die
> RAM-Speicherzellen in Page 0 gewesen sein, die man dann als einen
> erweiterten Registersatz betrachten könnte.

Richtig. Die Zero-Page ist quasi eine Registerbank.

von Christoph M. (mchris)


Lesenswert?

Soul E. (soul_eye)
25.05.2025 11:01
>Lass Dich nicht von dem geringeren Quarztakt irritieren. Der 6502
>braucht einen Quarztakt pro CPU-Takt.

Das mit dem Takt ist mir bekannt und auch die Ausführung des Z80 als 
Bitslice-Prozessor mit 4 Bit Alu. Ich kenne den Z80 vom ZX81 mit knapp 
4MHz Takt im Gegensatz zu den üblichen 1MHz beim 6502.
Ich hätte vermutet, dass der Faktor 4 im CPU-CLK die Nachteile des 
Bitslice-Aufbaus ausgleicht und dass dann der doppelte Registersatz beim 
Z80 und die 16Bit Index-Register einiges an Performance Gewinn bringen.

von Günter K. (enk)


Lesenswert?

Arduino F. schrieb:
> Relativ nutzlos.
> Selbst der beste Disassembler kann nicht die Intentionen des Codes
> Erstellers ermitteln.
>
> Übrigens:
> Um mal Werbung für Arduino zu machen...
>
Hallo liebe Leute, hallo Arduino F.,

Das klingt ja interessant,
da würde ich mit kleinen Schaltungen anfangen,
ohne den JC zu verlassen.

Übrigens habe ich die Adressen-Reihe für das einfache Ton-Programm, neu 
eingegeben und auch die Sprungadressen wieder geändert. (Die R.-Adressen 
brauche ich ja nicht zu ändern), es klappte wieder nicht.
Also tausche ich die RAMs, ich brauche sowieso noch weitere für die 
Peripherie.

Es gelingt mir -scheinbar- nicht, aus der Schleife zu springen, ohne den 
Ton zu verändern. Vielleicht fällt dann sogar die "01" im Y-Register 
weg.

- Weil ich das noch nicht verstehe, möchte ich doch,
was Klaus sagt machen. Erst ohne, dann mit Timer. Ich meine: Auf jeden 
Fall braucht ein Computer eine Uhr bzw. auch einen Kalender.

Weil ich da nicht Bescheid weiß, schreibe ich ein Lied-Programm ab. - 
Allerdings erst ab 0x0300. Für den Anfang, trage ich nur zwei gleiche 
Töne ein. - Also: "Tuut, Pause, Tuut.", Später anderes. Schlau daraus 
geworden, bin ich auch noch nicht.
Ich gespannt was werden wird.

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

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich gespannt was werden wird.

Tut mir leid das sagen zu müssen, aber ich bin nicht gespannt, sondern 
weiß ganz genau was das werden wird: Nix.

Hast du das Tonleiter Programm auch nur einmal angeschaut und versucht 
zu verstehen wie es funktioniert? Wenn ja, hast du irgendwas davon 
verstanden?
Wenn nein, warum nicht?

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Hast du das Tonleiter Programm auch nur einmal angeschaut und versucht
> zu verstehen wie es funktioniert? Wenn ja, hast du irgendwas davon
> verstanden?
> Wenn nein, warum nicht?

Hallo Klaus,

Ich war inzwichen tätig, (an der Abschrift)
habe mich damit aber total verhäddert.
Jetzt lege ich mich noch einemal hin.
Bitte schicke mir nochmal die Tonleiter.
LG Günter K.
(ENK)

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:

> Ich war inzwichen tätig, (an der Abschrift)

Und wieso muss man da was abschreiben? Wir wärs mit lesen und verstehen 
und ggf. nachfragen?

> Bitte schicke mir nochmal die Tonleiter.

??

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich war inzwichen tätig, (an der Abschrift)

Was versprichst Du dir vom abschreiben? Da lernt man nichts dabei.

Du sollst verstehen, was jede einzelne Assembler-Anweisung macht.
Teilweise steht es ja schon dahinter, teilweise ist es selbsterklärend, 
und den Rest musst Du dir erarbeiten (nachschlagen oder nachfragen).
Nur so kannn man eine Sprache lernen.

Ich mach mal den Anfang für dich, geküzrt so dass nur 2 Noten gepsielt 
werden, mit zusätzlichen deutschen Kommentaren
1
    ;*****************************************************************************
2
    ; Spiele 2 Noten abwechselnd
3
;*****************************************************************************
4
.org $300
5
    lda #$1      ; lade den Wert 1 in den Akkumulator
6
    sta PBDD     ; setze Register PBDD (Datenrichtungsregister für Port B) auf 1 -> Pin PB0 ist Ausgang
7
8
mainloop:
9
    ; Spiele die Note C
10
    lda #200     ; lade den Akkumulator mit dem Wert 200
11
    sta 0        ; speichere den Inhalt des Akkumulators an Adresse 0
12
    jsr playnote ; rufe die Subroutine zum Spielen einer Note auf
13
14
    ; Spiele die Note D
15
    lda #158     ; lade den Akkumulator mit dem Wert 158
16
    sta 0        ; speichere den Inhalt des Akkumulators an Adresse 0
17
    jsr playnote ; rufe die Subroutine zum Spielen einer Note auf
18
19
    jmp mainloop ; fange wieder von vorne an mit der ersten Note
20
21
playnote: ; Das ist die EinsprungAdresse zum Spielen einer Note. 
22
          ; An Adresse 0 muss die benötigte Verzögerung stehen
23
24
    ldy #50 ; Das ist die Länge der Note. Höhere Noten werden kürzer gespielt; aber das soll hier nicht stören
25
26
loop:
27
    ; default delay
28
    ldx #180        ; Feste Wartezeit von 5us×179+5us=900us, damit wir mit einem Register (max. Wert 255) für die zusätzliche Verzögerung auskommen
29
    jsr shortdelay  ; Hier wird gewartet, und zwar ca. 5 Microsekunden multipliziert mit dem Inhalt von Register X, also hier 180*5 = 900µs.
30
31
    ldx 0            ; Lade den Inhalt von Adresse 0 in Register X
32
    jsr shortdelay   ; Hier wird gewartet, je nach Inhalt 
33
34
    lda PBD      ; Lese den Inhalt des Ausgangsregisters
35
    eor #$01     ; invertiere das Bit0
36
    sta PBD      ; und schreibe den Wert zurück -> Taktflanke für Rechtecksignal für unseren Lautsprecher
37
38
    dey
39
    bne loop
40
    rts
41
42
    ; Total time (in microseconds)=5N+5
43
shortdelay:
44
    dex             ; 2 cyc
45
    bne shortdelay  ; 3 cyc jmp , 2 no mp
46
    rts             ; 6 cyc
47
48
; MOS6532 PIA addreses
49
50
PAD:     .org $1A80
51
PADD:    .org $1A81
52
PBD:     .org $1A82
53
PBDD:    .org $1A83


Jetzt sind nur noch die letzten 6 Assembleranweisungen nicht oder nur 
kurz auf englisch kommentiert. Versuch einfach zu verstehen (und 
aufzuschreiben) , was die machen.

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


Lesenswert?

Hallo Klaus und Alle,

zunächst, muss ich mich für eine Satzaussage entschuldigen und 
richtigstellen, denn wo ich schrieb:

Klaus schrieb:
> Günter K. schrieb:
>> und siehe da, - da hat dieser Assembler hat auch einen Assembler.
Richtig sollte es heißen:
" ... und siehe da, - da hat dieser Assembler hat auch einen Compiler".

Da hatte ich mir tatsächlich schon so, in den 'Assembler' verbissen,
dass ich "Assembler" statt "Compiler" schrieb.

Ja, was hätte ich dann gerne:
"Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung".
Und ich freue mich, gute Leute zu sehen, die Erfahrung damit haben.

1. Selbst von dem Programm, was ich abgetippt habe,
aber noch nicht eingetippt in den JC (Junior-Computer), -,
noch von den,
2. von den -wirklich gut gemeinten- Routinen, - verstehe ich zu wenig!

Ich hätte gerne, ein ganzes Programm, als einen Modularen-Aufbau, bzw.
ganze/s Programm/e in einem Modularem-Aufbau.

Was ich unter:
1. u.a. sehen konnte, war ein Gewirr von Schleifen. - Und unter
2. bitte ein ganzes Programm, - bei dem ich verstehen möchte, wo der 
noch richtig laufende Ton, nicht unterbrochen wird, - weil der Ton ja 
nicht unterbrochen werden darf, es sei denn, innerhalb eines 
Halbwellen-Zyklus des höchsten Tones, sich jeweils ein ganzer 
Befehls-Satz unterbringen lässt. - ?

Bitte ärgere Dich nicht, bitte ärgert Euch nicht. -.
Sonst muss ich ganz neu lernen, wie ein Befehl
den anderen Befehl beeinflusst. Das ging mir auch noch bei dem Z80 durch 
den Kopf, weil dort in dem Buch verschieden OP-Codes, für einen Befehl 
standen; denn dann hätte ich -vielleicht- herausfinden können,
wie, welcher Befehl werden würde; aber, das würde viel zu viel werden.

Nein: Ein Befehl, der unbeschwert zu greifen ist, macht eine ganz
bestimmte Sache, ohne was Anderes, wenn es nicht sein muss, zu 
beeinflussen.

Fertig funktionierende Timer, würden dabei helfen.
Es könnten auch verschiedene Timer sein. Ein Timer für die Uhrzeit,
und andere Timer für Startsequenzen.
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Nachtrag, ganz kurz: Hallo liebe Leute,
ich brauche den OP-Code, - nur mit dem, -
kann ich das verstehen.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Nein: Ein Befehl, der unbeschwert zu greifen ist, macht eine ganz
> bestimmte Sache, ohne was Anderes, wenn es nicht sein muss, zu
> beeinflussen

Abgesehen davon, dass du wirklich NICHTS verstanden hast, habe ich nach 
solchen völlig unverständlichen Aussagen nun auch das letzte Quäntchen 
Hoffnung verloren, dass Du je mehr lernst, als das, was der 
Assembler-Befehl "NOP" macht: Genau nichts.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> ich brauche den OP-Code, -

Da stehen ca. 20 Stück davon im Programm. Danach ein Semikolon und eine 
genaue Erklärung, was der Opcode macht.
Auf Deutsch.

Ich komme mir vor wie wenn ich einem Grundschüler erklären will was 2+2 
ist, aber er leider nicht bis 4 zählen kann.

Da kannste nix machen.

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


Lesenswert?

Günter K. schrieb:
> ich brauche den OP-Code
Glaube ich nicht.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Fertig funktionierende Timer, würden dabei helfen.
> Es könnten auch verschiedene Timer sein. Ein Timer für die Uhrzeit,
> und andere Timer für Startsequenzen

Wir sollen also dem Grundschüler, der nicht bis 4 zählen kann, nicht nur 
beibringen, was 2+2 ist, sondern ihm auch erklären, wie man die Wurzel 
aus 46534 berechnet?
Welche der beiden Aufgaben führt denn eher zum Erfolg?

von Harald K. (kirnbichler)


Lesenswert?

Klaus schrieb:
> Günter K. schrieb:
>> ich brauche den OP-Code, -
>
> Da stehen ca. 20 Stück davon im Programm. Danach ein Semikolon und eine
> genaue Erklärung, was der Opcode macht.

Nee.

Was Du "opcode" nennst, heißt Mnemonic, und ist eine 
Klartextrepräsentation von Assemblerinstruktionen. So etwas wie LDA, STA 
etc.

Ein Opcode ist der zum Mnemonic und der konkreten Adressierungsart 
gehörende Binärcode der Instruktion.

Aus
    lda #$1

wird
    0xA9 0x01

Aus
    lda #200

wird
    0xA9 0xC8

Günter ist es wohl zu mühsam, Dein Programm von Hand zu assemblieren, 
und durch einen Assembler will oder kann er es aus irgendwelchen Gründen 
nicht schicken ...

von Klaus (feelfree)


Lesenswert?

Harald K. schrieb:
> Was Du "opcode" nennst, heißt Mnemonic, und ist eine
> Klartextrepräsentation von Assemblerinstruktionen

Da hast du natürlich Recht.
Allerdings braucht NIEMAND die Opcodes, um ein Programm zu verstehen.

von Harald K. (kirnbichler)


Lesenswert?

Klaus schrieb:
> Allerdings braucht NIEMAND die Opcodes, um ein Programm zu verstehen.

Der Prozessor selbst schon :-)

Günter will vermutlich das Programm in seinen Computer eingeben, und da 
das nur über Opcodes geht ...

Denk dran:

Das hier 
https://www.mikrocontroller.net/attachment/662153/junior3_04.jpg ist der 
Computer, mit dem Günter unterwegs ist.

von Falk B. (falk)


Lesenswert?

Harald K. schrieb:
> Das hier
> https://www.mikrocontroller.net/attachment/662153/junior3_04.jpg ist der
> Computer, mit dem Günter unterwegs ist.

Den kann man bestimmt in Rust programmieren, so wie der aussieht! ;-)

von Klaus (feelfree)


Lesenswert?

Harald K. schrieb:
> Günter will vermutlich das Programm in seinen Computer eingeben, und da
> das nur über Opcodes geht ...

Vermutlich. Er macht ja sowieso nie das, was man ihm vorschlägt. 
Insofern konsequent...

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


Lesenswert?

Harald K. schrieb:
> Denk dran:
>
> Das hier
> https://www.mikrocontroller.net/attachment/662153/junior3_04.jpg ist der
> Computer, mit dem Günter unterwegs ist.
- JA! SEHR GUT!

Ja, ich würde gerne selbst, wie der Prozessor sein. :-)  ;-) -!

Die Mnemonic brauche ich nur um zu wissen, was der Maschinenbefehl tut.
Allerdings sind die angegebenen Zeiten, sehr interessant.
Denn dann weiß ich, ob ich während der Halbwelle Zeit habe,
ein Byte zu Inkrementieren und aus der Halbwelle auszuscheren, um dann 
als ...
s. 2..
Allerdings sollte das ganze Programm mit einer Pausengruppe beginnen, in 
dem
1. auch, die Pausen sind, die in der Notenschrift nicht vorkommen, aber 
vorhanden sind. Damit das Ganze in den Takt passt, muss diese Note vor 
der sog. Pause, die ja wirklich eine Pause ist, um dessen Länge kürzer 
gemacht werden. - Ich weiß, solche Musik klingt deshalb nicht gut, weil 
man dann sofort die Automatik heraushört. Es handelt sich hier um 
Zeitintervalle.
2. bei dem Ausscheren werden Memorys hochgezählt, danach
3. Die Tonhöhe aus der Zerro-Page in das x- und y- geladen werden.
   (Zur aus der ZP, damit es schnell gehen kann.)
4. Was anfänglich nur 2 Töne sind, wird nachher ein ganzes Lied.
5. Das alles muss sich abspielen, während u.a. der höchste und kürzeste 
Ton
   gespielt wird oder eine Pause läuft.
6. Das Abspielen aber, soll ein eigenes Programm sein.
   Aus diesem Grunde, wird es mitunter sehr lang.
   Und das, in einem maschinenartigen Programm.

Zum Trost, weil ich selber nichts durch Eingabe erreicht habe,
schreibe ich ein kleines Programm für die 7-Segment-CODE-Anzeige.
Jetzt wünsche ich Euch erst mal eine gute Nacht
mit lieben Grüßen
Günter K.
(ENK)

von Roland F. (rhf)


Lesenswert?

Hallo,
Falk B. schrieb:
> Den kann man bestimmt in Rust programmieren, so wie der aussieht! ;-)

:-)

rhf

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Zum Trost, weil ich selber nichts durch Eingabe erreicht habe,
> schreibe ich ein kleines Programm für die 7-Segment-CODE-Anzeige.

Ja ist klar. Bevor auch nur die Gefahr besteht, dass Du bei einer noch 
so einfachen Aufgabe irgendeinen Strohhalm entdeckst, der dich 
weiterbringen könnte, wechselt du lieber das Thema.

Wolfgang R. schrieb:
> 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.

Also für Günter ungefähr so einfach wie die Besteigung des Mount Everest 
für einen Querschnittsgelähmten, ohne Sauerstoff versteht sich.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
>> Klaus schrieb:
>>> Gibt's da keine LED

Hallo liebe Leute,
da gibt's keine -solche- LED.
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,

Harald K. schrieb:
> Was Du "opcode" nennst, heißt Mnemonic, und ist eine
> Klartextrepräsentation von Assemblerinstruktionen. So etwas wie LDA, STA
> etc.

Was ich OP-CODE nenne, ist der OPERATIONS-CODE. - Und RICHTIG Harald K.:
Du schriebst:

Harald K. schrieb:
> Denk dran:
>
> Das hier
> https://www.mikrocontroller.net/attachment/662153/junior3_04.jpg ist der
> Computer, mit dem Günter unterwegs ist.
Gut gesagt! Ich bin wirklich nicht so schlau.
RICHTIG, - DANKESCHÖN! Das ist ehrlich gemeint.
Liebe Grüße
Günter K.
(ENK)

von Christoph M. (mchris)


Lesenswert?

>Klaus (feelfree)
>26.05.2025 17:25

Das dürfte falsch sein: das ORG muss vor dem Label stehen, sonst ist 
z.B. PADD=0x$1A80 statt 0x$1A81.
1
PAD:     .org $1A80
2
PADD:    .org $1A81
3
PBD:     .org $1A82
4
PBDD:    .org $1A83

von Peter D. (peda)


Lesenswert?

Um mit dem Programmieren zu beginnen, braucht man erst mal eine 
vernünftige Arbeitsumgebung. Und da jeder einen PC hat, nimmt man eben 
diesen. Darauf installiert man eine Umgebung mit Editor, um Quelltexte 
einzugeben und abzuspeichern. Dann einen Assembler für das gewünschte 
Target. Auch ein Simulator ist zu empfehlen, wo man erst mal alles im 
Schrittbetrieb ablaufen und nachverfolgen kann.
Hier mal wahllos was rausgesucht:
https://edsim51.com/

Irgendein uraltes CPU-Spielzeug, was nicht mal Programme permanent 
abspeichern kann, ist dagegen absolut untauglich zum Lernen. Damit wirst 
Du nie im Leben Fortschritte erzielen können. Vergiß den Junior-Computer 
ganz schnell, das ist ne Sackgasse (zumindest für Dich).

Es gibt heutzutage Eval-Boards, wo man über USB debuggen kann. D.h. man 
hat auf dem PC Fenster, in denn man Code, Daten, Stack, Timer, Register 
usw. schön übersichtlich angezeigt bekommt.

von Klaus (feelfree)


Lesenswert?

Christoph M. schrieb:
> Das dürfte falsch sein: das ORG muss vor dem Label stehen, sonst ist
> z.B. PADD=0x$1A80 statt 0x$1A81.
>
>
1
> PAD:     .org $1A80
2
> PADD:    .org $1A81
3
> PBD:     .org $1A82
4
> PBDD:    .org $1A83
5
>

Keine Ahnung wie es genau sein muss, der asm80.com schluckt es 
jedenfalls so und sortiert es automagisch um....

von Cyblord -. (cyblord)


Lesenswert?

Peter D. schrieb:
> Hier mal wahllos was rausgesucht:
> https://edsim51.com/

Solche Dinge wurden ihm schon tausendmal empfohlen. Er geht da nicht mal 
drauf ein. Kannst du dir sparen.

von Soul E. (soul_eye)


Lesenswert?

Peter D. schrieb:
> Irgendein uraltes CPU-Spielzeug, was nicht mal Programme permanent
> abspeichern kann, ist dagegen absolut untauglich zum Lernen. Damit wirst
> Du nie im Leben Fortschritte erzielen können.

Was glaubt Ihr Youtube-Kiddies eigentlich, wie wir damals was gelernt 
haben? Zu der Zeit, als der Junior, der Apple II oder der C64 noch Stand 
der Technik waren. Aus diesem Wissen ist genau die Klickibunt-Welt 
entstanden, die Du als selbstverständlich voraussetzt.

Klar geht das heute auch einfacher, und statt eines steinalten 
RISC-Prozessors von 1976 kann man einen Arduino nehmen. Aber der TO 
möchte das Ganze genau so nacherleben, wie er es eigentlich 1978 hätte 
tun wollen.

von Cyblord -. (cyblord)


Lesenswert?

Soul E. schrieb:
> Peter D. schrieb:
>> Irgendein uraltes CPU-Spielzeug, was nicht mal Programme permanent
>> abspeichern kann, ist dagegen absolut untauglich zum Lernen. Damit wirst
>> Du nie im Leben Fortschritte erzielen können.
>
> Was glaubt Ihr Youtube-Kiddies

So nennst du Peda?

> Klar geht das heute auch einfacher, und statt eines steinalten
> RISC-Prozessors von 1976 kann man einen Arduino nehmen. Aber der TO
> möchte das Ganze genau so nacherleben, wie er es eigentlich 1978 hätte
> tun wollen.

Es wurden EMULATOREN empfohlen. Keine Arduino.

Und er KANN es eben nicht so erleben wie 1978 weil ihm dafür jede 
geistige Kapazität fehlt. Sad but true.

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


Lesenswert?

Harald K. schrieb:
> und da
> das nur über Opcodes geht ...
>
> Denk dran:
>
> Das hier
> https://www.mikrocontroller.net/attachment/662153/junior3_04.jpg ist der
> Computer, mit dem Günter unterwegs ist.
DANKESCHÖN!!
Liebe Grüße
Günter K.
(ENK)

PS.:
Ich gebe mich jetzt an die
MNEMONICS mit den
ADRESSIERUNGSARTEN
für den OPERATIONS-CODE
(Das dauert noch was.)

von Peter D. (peda)


Lesenswert?

Soul E. schrieb:
> Was glaubt Ihr Youtube-Kiddies eigentlich, wie wir damals was gelernt
> haben?

Falls es Dir noch nicht aufgefallen ist, der Günter ist kein Kiddie mehr 
und zeigte bisher keine merkbaren Fortschritte. Daher sollte er jegliche 
Erleichterungen benutzen, die er kriegen kann.

: Bearbeitet durch User
von Rbx (rcx)


Lesenswert?

Peter D. schrieb:
> zeigte bisher keine merkbaren Fortschritte.

Würde ich so nicht sagen. Problematisch ist halt, dass einige Sachen 
parallel gelernt werden müssen, Codierungsarten, Logikfeinheiten oder 
Speichermanagement z.B. - das heißt man muss halt ein wenig Geduld 
haben, Befehle verstehen, Programme ausprobieren, Programme verändern, 
Algos ansehen und ausprobieren usw. und darauf hoffen, dass es bald 
"klick" macht.
Den Logikteil kann man auch ganz gut mit Papier und Bleistift machen. 
Ist auf jeden Fall für mich angenehmer, und würde ich auch empfehlen.

Das war übrigens bei C früher auch so. Man geht erstmal ein paar 
Programme durch (also abtippen und testen) ohne viel zu verstehen. Das 
Verständnis kommt nach und nach, aber es gibt auch immer wieder neue 
Herausforderungen.

von Cyblord -. (cyblord)


Lesenswert?

Soul E. schrieb:
> Aus diesem Wissen ist genau die Klickibunt-Welt
> entstanden, die Du als selbstverständlich voraussetzt.

Jaja mach mal halblang.

Also ein 8080 System ist schweineeinfach. Das Problem damals waren wohl 
eher die Preise für die ganze Peripherie, Speicher usw.
Komplex oder gar schwierig ist da gar nichts.

Habe erst letztens ein 8080 System komplett von Null auf gebaut. Mit der 
damaligen Peripherie aber modernem (1994) Speicher. 64 KB RAM und 64KB 
ROM, SIO, einfache digitale IO.
Simpel. HW ist Simpel, 8080 Assembler ist simpel.

Wo ein wenig Gehirnschmalz stecke, war das Frontpanel des Altair, mit 
dem man direkt den Speicher laden und anzeigen konnte.

Natürlich natürlich, manche SW, vor allem Spiele, waren komplex. Das ist 
sie aber heute auch. Weil man immer an die Grenzen der HW ran muss. Aus 
wirtschaftlichen Gründen.

Also immer auf dem Teppich bleiben und vielleicht mal in eine moderne 
Vorlesung "Rechnerarchitektur" reinschnuppern. Da gibts dann wirklich 
komplexe Dinge.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Was den bemuehten Helfern anscheinend ueberhaupt nicht auffaellt:
Es scheint ENK nicht darum zu gehen, irgendetwas "schnell" oder 
"richtig" lernen zu wollen oder gar muessen. Sondern er macht halt 
seinen Stiefel, wie er's fuer richtig haelt.
Solange dann nicht mit dieser Software irgendwelche Atomkraftwerke, 
Herzschrittmacher oder autonome Autos laufen sollen, ist das doch 
voellig ok.
Offensichtlich hat er an seinem Herumgewurstele, so wie er es macht, ja 
Spass. Sonst wuerde er es ja nicht so machen.
Da muesst ihr einfach mal damit klarkommen.

scnr,
WK

von Christoph M. (mchris)


Lesenswert?

In der heutigen Zeit lernt man mit Hilfe von Youtube-Videos.
Etwas unpraktisch: Da der Junior-Computer so alt ist, gibt es da 
natürlich eher weniger.

Aber ein wenig gibt es:

https://www.youtube.com/watch?v=wI82V9meKnY
( ab Minute 18 )

von Soul E. (soul_eye)


Lesenswert?

Cyblord -. schrieb:
> Soul E. schrieb:
>> Aus diesem Wissen ist genau die Klickibunt-Welt
>> entstanden, die Du als selbstverständlich voraussetzt.
>
> Jaja mach mal halblang.
> (...)

Wo genau siehst Du den Widerspruch zu meiner Aussage? Aus dem 8080 ist 
der 8086 entstanden, der zu den heutigen Core i7 und Ryzen führte.

Aus den Monitorprogrammen von damals sind CP/M und MS-DOS entstanden, 
aus denen die modernen Betriebssystemen Linux und Windows entstanden 
sind.


> Simpel. HW ist Simpel, 8080 Assembler ist simpel.

Natürlich war das simpel. Heute ist es komplexer. Das Komplexe baut auf 
das Simple auf. Das Simple bildet die Grundlagen des Komplexen.

Von der heutigen IT ist nichts vom Himmel gefallen. Das hat sich alles 
evolutionär aus der Steinzeittechnik der '70er Jahre entwickelt.

Da, wo Günter mal reinschnuppern möchte.

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

Soul E. schrieb:

> Wo genau siehst Du den Widerspruch zu meiner Aussage? Aus dem 8080 ist
> der 8086 entstanden, der zu den heutigen Core i7 und Ryzen führte.

Du suggerierst (mit deinem youtube Kiddies) dass dies alles damals so 
schwer und komplex war. Und das war es nicht.

> Von der heutigen IT ist nichts vom Himmel gefallen. Das hat sich alles
> evolutionär aus der Steinzeittechnik der '70er Jahre entwickelt.

Triviale Aussage, Captain Obvious.

> Da, wo Günter hmal reinschnuppern möchte.

Kann er ja, nur sollte er moderne Tools dafür verwenden. In alte Technik 
mit alter Technik reingucken kann nur wer minimalste Grundlagen der 
digitalen Datenverarbeitung verstanden hat. Somit er nicht.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Hier gibt es noch den zugehörigen Youtube-6502-Assembler-Kurs:
https://www.youtube.com/watch?v=-s6dttMAt9w

von Falk B. (falk)


Lesenswert?


von Soul E. (soul_eye)


Lesenswert?

Cyblord -. schrieb:
> Du suggerierst (mit deinem youtube Kiddies) dass dies alles damals so
> schwer und komplex war. Und das war es nicht.

Nein, ich suggeriere nicht dass alles schwer war, sondern ich 
widerspreche der Aussage

> Peter D. schrieb:
>> Irgendein uraltes CPU-Spielzeug, was nicht mal Programme permanent
>> abspeichern kann, ist dagegen absolut untauglich zum Lernen. Damit wirst
>> Du nie im Leben Fortschritte erzielen können.

Das Zeug war tauglich zum Lernen, wir haben damit gelernt, und die 
Ergebnisse, die Fortschritte der IT-Branche in den letzten 40 Jahren, 
könnt Ihr heute bewundern.

Gerade weil das alte Zeug relativ primitiv und übersichtlich ist, eignet 
es sich zum Lernen.

von Cyblord -. (cyblord)


Lesenswert?

Soul E. schrieb:
> die Fortschritte der IT-Branche in den letzten 40 Jahren,
> könnt Ihr heute bewundern.

Manchmal frage ich mich wie du Alter und Skillevel der Leute die du so 
ansprichst einschätzst.

von Gunnar F. (gufi36)


Lesenswert?

Soul E. schrieb:
> Nein, ich suggeriere nicht dass alles schwer war, sondern ich
> widerspreche der Aussage

Leicht und schwer oder komplex und simpel relativieren sich immer am 
eigenen Horizont. Wer in Hex "denken" und rechnen kann, wer über 
relative Adressierung nicht mehr nachdenken muss und wer die meisten 
6502 Mnemonics einfach wegschreiben kann, ist das alles simpel.
Wir in der Computer AG 1980 herum, wußten von unserm Commodeore Pet sehr 
viele ROM-Einsprungsadressen aus dem Effeff. Für Umstehende erschien das 
- mal vorsichtig - irgendetwas zwischen genial und nerdig.
Aber wer komplett neu einsteigt, für denn ist das alles kompliziert und 
dem sollte man nicht sagen, es ist simpel.

Nur habe ich Probleme mit Günters Post. Allein die Zahl der Beiträge 
erfüllt alle Troll-Kriterien. Er erweist sich als beratungsresistent.
Auf viele Hilfsangebote reagiert er gar nicht. Immerhin bleibt er immer 
nett.

von Cyblord -. (cyblord)


Lesenswert?

Soul E. schrieb:
> Nein, ich suggeriere nicht dass alles schwer war, sondern ich
> widerspreche der Aussage

Natürlich hast du recht. Die Aussage von Peda war etwas allgemein. 
Natürlich KANN man auch damit alles lernen und früher gings nur so.
Aber nicht der TE. Der TE benötigt jede moderne Hilfe die er kriegen 
kann um den alten Kram zu verstehen.

: Bearbeitet durch User
von Rbx (rcx)


Lesenswert?

Cyblord -. schrieb:
> Der TE benötigt jede moderne Hilfe die er kriegen
> kann um den alten Kram zu verstehen.

(z.B.)
https://en.wikipedia.org/wiki/De_Morgan%27s_laws

von Falk B. (falk)


Lesenswert?

Cyblord -. schrieb:
> Der TE benötigt jede moderne Hilfe die er kriegen
> kann um den alten Kram zu verstehen.

Die brauchen eher die Leute wie du, die immer noch nicht kapiert haben, 
mit wem sie es da zu tun haben.

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

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


Lesenswert?

Falk B. schrieb:
> Die brauchen eher die Leute wie du, die immer noch nicht kapiert haben,
> mit wem sie es da zu tun haben.

Da muss ich sogar mal Falk zustimmen - der TO wird in seinen Äußerungen 
zunehmend wirrer und ein Fortschritt ist seit Langem nicht mehr 
erkennbar. Traurig, aber wahr.

von Cyblord -. (cyblord)


Lesenswert?

Falk B. schrieb:
> Die brauchen eher die Leute wie du, die immer noch nicht kapiert haben,
> mit wem sie es da zu tun haben.

Nun ich widerspreche dir nicht dass der TE maximal verwirrt ist. Aber 
wenn es eine Chance für ihn gibt irgendwas zu verstehen dann ist es 
nicht Hex Code auf einem Junior Computer.

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Naja,

viele von uns fingen auch mit Hand assemblierten Object Code an. Mein 
"Erster" war eine MC6802 Motorola Bord. Ganze 256 Bytes für Programm und 
Daten. Später kam ein MC68HC11EVB dazu. Das war schon viel mehr Komfort.

Allerdings, heute würde ich mir das auch nicht mehr antun. Mnemonik 
Assemblieren ist das Unterste was ich heutzutage akzeptieren würde. 
Object Codes eintippen macht nicht wirklich Spaß. Da ist Mnemonik 
absoluter Fortschritt und man wußte das schon in den 50ern zu schätzen. 
Abgesehen davon nimmt einem ein guter Assembler viel Arbeit ab mit 
Offset Berechnungen und Makros.

Ich würde vielleicht zu einem MSP430 auf einer Eval Bord raten. Da ist 
zumindest die Infrastruktur zwischen PC und uC ausgefeilt und die 
Programme sind nicht flüchtig. Mehr Spaß macht es aus und man kann 
spaeter von ASM auf C umsteigen. Auch mit einem Arduino kann man viel 
anfangen. Im Vergleich zu den 70ern leben wir in einem Schlaraffenland 
an Möglichkeiten. Da sind eher wir die Begrenzung der Möglichkeiten.

Als Pragmatiker bevorzuge ich Projekte mit dauerhafter Funktionalität. 
da geht es mir weniger um den Lerneffekt als Solchen, sondern das Lernen 
nebenbei als der Weg zu Ziel. Aber jeder sieht das wahrscheinlich 
anders.

Ich bin froh, daß man heute keine umfangreiche Anordnung von ICs um den 
Mikroprozessor herum hat. Der Formfaktor eines uC ist nicht zu 
ignorieren. Ein MEGA328 würde einige LP vollgestopft mit Arbeiter-Käfern 
bedeuten. Da ist mir ein NANO oder Pro-Mini wesentlich lieber. Man muss 
sich das manchmal vor den Augen behalten.

Ich bin manchmal schockiert wenn ich die Schaltpläne älterer Meßgeräte 
studiere, daß sogar Firmen wie R&S damals Grosses mit uC wie z.B. Intel 
8039 verwirklichten. Mein R&S Mobil Tester hat nur zwei 8039er drin und 
hat sogar HP-IB Schnittstelle. Ein moderner ESP32 bläst alles Vorherige 
fort.

Es hat bestimmt Sinn, sich etwas Moderneres zu wählen, wo die Werkzeuge 
(PC, IDE) und uC aufeinander abgestimmt sind. USB Verbindung zwischen 
Werkzeug und uC-LP ist Stand der Technik.

Duck und weg...

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Gerhard O. (gerhard_)
27.05.2025 15:25

>Ich würde vielleicht zu einem MSP430 auf einer Eval Bord raten.

Da wäre die Infrastruktur auch ausgefeilt
Beitrag "6502 Emulator PiPico"
Nämlich die serielle Schnittstelle.
Ich hatte mir auch schon überlegt, die übertragenen Daten im Flash zu 
speichern. Dann wäre die "persistente Eieruhr" machbar ;-)

von Thomas W. (datenreisender)


Lesenswert?

Gerhard O. schrieb:
> Ich bin froh, daß man heute keine umfangreiche Anordnung von ICs um den
> Mikroprozessor herum hat. Der Formfaktor eines uC ist nicht zu
> ignorieren. Ein MEGA328 würde einige LP vollgestopft mit Arbeiter-Käfern
> bedeuten. Da ist mir ein NANO oder Pro-Mini wesentlich lieber. Man muss
> sich das manchmal vor den Augen behalten.

Ich mache den Quatsch ja auch seit vierzig Jahren und ich fasse keine 
Prozessorfamilie ohne Debugger mehr an: Mit einem STM32F103 + STLink V2 
und Eclipse (STM32Cube IDE) ist man mit einen Fuenf-Euro-Schein dabei, 
bei Arduino beim Arduino Zero + IDE ist man bei 50EUR, RaspberryPico mit 
zweitem Pico als PicoProbe sind ca. 10EUR. Aber die geschenkte 
Lebenszeit (und der gesparte Frust) sind jeden Cent wert.

Und wenn Guenter unbedingt die 6502 benutzen will: Er hat ja einen 
Junior, arbeitet aber die Aufgaben im Junior-Buch nicht durch. Dann ist 
das nicht so wichtig.

von Günter K. (enk)


Lesenswert?

Cyblord -. schrieb:
> dann ist es
> nicht Hex Code auf einem Junior Computer.
Hallo liebe Leute, vor allem Cyblord,
auf dem Junior Computer geht es doch gar nicht anders. Also bitte,
wieso nicht? - Falls Du einen anderen Computer meinst, mag es ja sein.
Aber da, wo der Operations-Code steht, passiert doch auch das, was er 
macht.
Liebe Grüße
Günter K.
(ENK)

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


Lesenswert?

Nachtrag:
Günter K. schrieb: ... ...
Aber da, wo der Operations-Code steht, passiert doch auch das, was er
macht.
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Auch da wieder: Kannst Du machen, bringt dir aber absolut nix, nada,
> niente.
> Außer halt Zeit totschlagen ohne Erkenntnisgewinn.

Günter K. schreibt:
Außer, dass ich weiß, dass dieser Speicherbereich, 0x0200 bis 0x02FF, 
doch nicht funktioniert, - so war es immerhin doch noch einmal ein 
Versuch!
Liebe Grüße
Günter K.
(ENK)
PS.:
Und natürlich probiere ich weiter, ich habe aber nicht vor, Euch unnötig
zu stören.

von Klaus (feelfree)



Lesenswert?

Günter K. schrieb:
> auf dem Junior Computer geht es doch gar nicht anders. Also bitte,
> wieso nicht? - Falls Du einen anderen Computer meinst, mag es ja sein.
> Aber da, wo der Operations-Code steht, passiert doch auch das, was er
> macht.

Du verstehst es einfach nicht.

Ein Mensch schreibt ein Programm in Assembler-Anweisungen.

Also sowas wie
1
ldx #100
2
loop: 
3
dex
4
bne loop

Das kleine Programm lädt z.B. die Zahl 100 in das X-Register, 
dekrementiert X jeweils um 1, und solange die 0 nicht erreicht ist, 
dekrementiert es weiter, weil es zum Schleifenanfang (loop:) 
zurückspringt. Also eine klassische Verzögerungsschleife, wie sie auch 
in jedem Notenspielprogramm vorkommt.

JEDER Mensch der in Assembler programmiert macht das genau so und nicht 
anders.

Weil aber dein Junior Computer die Assembler-Anweisungen nicht versteht, 
brauchst Du die dazugehörigen Opcodes. Die erhältst Du, in dem Du die 4 
Zeilen da oben kopierst, zu https://www.masswerk.at/6502/assembler.html 
gehst, dort in dem "src" Fenster den Assemblercode einfügst, einmal auf 
"assemble" drückst und schon hast Du
a) den reinen Hex-Code und
b) das Listing mit Hex-Code und den Originalen Assembler Anweisungen.

Du kannst natürlich auch in dein Junior-Computer Buch schauen und die 
Hex-Codes dort mühsam zusammenklauben. Das wäre ungefähr so wie wenn Du 
zwar einen Taschenrechner zur Verfügung hast, aber trotzdem darauf 
bestehst, 47110815 * 27364 mittels händischer, schriftlicher 
Multiplikation auszurechnen. Das geht, bringt aber niemand einen 
Erkenntnisgewinn.

Und wenn Du dann, statt die Hex-Codes mühsam in deinen Junior-Computer 
einzutippen, auf der oben genannten Webseite einmal auf "Show in 
Emulator" gehst, hast Du mit EINEM Mausklick etwas vor die, was ungefähr 
deinem Junior-Computer entspricht. Da kannst Du sämtliche Register 
beobachten, Assembler-Anweisung für Assembler-Anweisung. Der Knopf 
hierfür heißt "Single Step".

: Bearbeitet durch User
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Günter K. (enk)
27.05.2025 23:31

>Außer, dass ich weiß, dass dieser Speicherbereich, 0x0200 bis 0x02FF,
>doch nicht funktioniert, - so war es immerhin doch noch einmal ein
>Versuch!

Hmm, komisch .. in diesem Video (Minute 26:02) haben sie ein Programm 
zum Togglen eine Portpins ab Adresse 200 eingetippt:

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

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
> Hmm, komisch .. in diesem Video (Minute 26:02) haben sie ein Programm
> zum Togglen eine Portpins ab Adresse 200 eingetippt:

Günter schreibt:
Hallo Christoph M. .
Richtig, das ist ja auch nicht mein Computer.
Es war schon ein guter Vorschlag von Wolfgang R.
es bei 0x0300 zu probieren und es klappte.
Meine RAMS muss ich tauschen, denn die meinen sind kaputt.
Liebe Grüße
Günter K.
(ENK)

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


Lesenswert?

Günter K. schrieb:
> Meine RAMS muss ich tauschen, denn die meinen sind kaputt.

Da wäre ich mir erst sicher, wenn ich es überprüft habe.
gib doch mal ab Adresse 0x200 lauter 0x55 als daten ein und lese dann 
heraus, was wirklich drinsteht.
Dann das Spiel mit 0xAA als Datum, dann wieder lesen, was in den 
RAM-Zellen steht.
Wenn du die Daten schreiben und lesen kannst und sich nichts verändert 
hat, dann sind deine RAMs nicht defekt!

also:
AD 0100
DA 55
+ 55
+ 55
+ 55
...
AD 0100
ab hier sollte immer noch 55 im Datendisplay stehen
+
+
+
+
...

: Bearbeitet durch User
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Günter K. (enk)
28.05.2025 08:12
> Richtig, das ist ja auch nicht mein Computer.

Oh, das ist jetzt eine neue Erkenntnis. Ich dachte die ganze Zeit, wir 
diskutieren hier über einen Junior-Computer mit 6502.

Welchen Computer verwendest du jetzt genau? Kannst du mal ein Foto 
posten?

: Bearbeitet durch User
von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Günter K. (enk)
> 28.05.2025 08:12
>> Richtig, das ist ja auch nicht mein Computer.
>
> Oh, das ist jetzt eine neue Erkenntnis. Ich dachte die ganze Zeit, wir
> diskutieren hier über einen Junior-Computer mit 6502.
>
> Welchen Computer verwendest du jetzt genau? Kannst du mal ein Foto
> posten?

Nicht notwendig, er benutzt den Junior-Computer den Wolfgang gangbar 
gemacht hatte:

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

von Klaus (feelfree)


Lesenswert?

Thomas W. schrieb:
> Nicht notwendig, er benutzt den Junior-Computer den Wolfgang gangbar
> gemacht hatte:

Aber es ist halt nicht derselbe, sondern nur der (bau)gleiche Rechner 
der im o.g. Video zu sehen ist.

von Thomas W. (datenreisender)


Lesenswert?

Klaus schrieb:
> Thomas W. schrieb:
>> Nicht notwendig, er benutzt den Junior-Computer den Wolfgang gangbar
>> gemacht hatte:
>
> Aber es ist halt nicht derselbe, sondern nur der (bau)gleiche Rechner
> der im o.g. Video zu sehen ist.

Das Video (oder Guenter) haben nichts miteinander zu tun. Und das der 
Junior Speicher bei 0x0200-0x02ff hat ist gegeben.

Irgendwie ist das alles ncht zielfuehrend.

von Dergute W. (derguteweka)


Lesenswert?

Thomas W. schrieb:
> Irgendwie ist das alles ncht zielfuehrend.

Aber lustig.

scnr,
WK

von Christoph M. (mchris)


Lesenswert?

Klaus (feelfree)
28.05.2025 09:39
>Aber es ist halt nicht derselbe, sondern nur der (bau)gleiche Rechner
>der im o.g. Video zu sehen ist.

Jetzt stellt sich noch die Frage, ob er auch "funktionsgleich" ist.
Ich würde trotzdem gerne den Computer optisch sehen. Vielleicht gab es 
ja Varianten.

Günter: Kannst du ein Bild posten ?

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Thomas W. (datenreisender)
28.05.2025 09:46

>Das Video (oder Guenter) haben nichts miteinander zu tun. Und das der
>Junior Speicher bei 0x0200-0x02ff hat ist gegeben.

Da ist mir unklar, wie du das meinst. Im Video sieht man zumindest die 
Zeitschrift.

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Klaus (feelfree)
> 28.05.2025 09:39
>>Aber es ist halt nicht derselbe, sondern nur der (bau)gleiche Rechner
>>der im o.g. Video zu sehen ist.
>
> Jetzt stellt sich noch die Frage, ob er auch "funktionsgleich" ist.
> Ich würde trotzdem gerne den Computer optisch sehen. Vielleicht gab es
> ja Varianten.
>
> Günter: Kannst du ein Bild posten ?

Ich bin zwar nicht Guenter, aber: In the Beginning hat Guenter einen 
Junior-Computer vom Dachboden rausgekramt, funktionslos. Der Rechner 
ging nach Wolfgang, funktionsfaehig gemacht, Fotos gemacht und zurueck 
geschickt (an Guenter).

von Peter D. (peda)


Lesenswert?

Klaus schrieb:
> Du kannst natürlich auch in dein Junior-Computer Buch schauen und die
> Hex-Codes dort mühsam zusammenklauben.

So hatte ich auch mal angefangen. Allerdings war das Berechnen der 
Sprünge und Calls extrem nervig und fehleranfällig. Und wenn man auch 
nur eine Instruktion eingefügt hat, waren alle Berechnungen für die 
Katz.
Das hat mich dann so genervt, daß ich mir in Turbo-Pascal einen 
Assembler für den 8051 selber geschrieben habe.

von Christoph M. (mchris)


Lesenswert?

Peter D. (peda)
28.05.2025 10:13

>Und wenn man auch nur eine Instruktion eingefügt hat, waren alle >Berechnungen 
für die Katz.

Da würde ich auch den Grund dafür sehen, dass das Programm, welches 
Günter an Adresse 0x200 programmiert hat für die Adresse 0x300 kodiert 
war.
Oder er hat aus vielleicht aus Versehen das Programm in seinen Z80 
Computer eingetippt, der ja auch noch rumliegt.

von Falk B. (falk)


Lesenswert?

Wolfgang R. schrieb:
> Wenn du die Daten schreiben und lesen kannst und sich nichts verändert
> hat, dann sind deine RAMs nicht defekt!

Das verstehst du falsch. SEINE RAMs SIND defekt. Die des 
Junior-Computers nicht . . .

von Roland F. (rhf)


Lesenswert?

Hallo,
Falk B. schrieb:
> Das verstehst du falsch. SEINE RAMs SIND defekt. Die des
> Junior-Computers nicht . . .

Falk, lass es einfach gut sein.
Ich weiß das dich Günters Verhalten (und auch Josef mit seiner abstrusen 
8-Bit-CPU) wahnsinnig macht und kann das auch gut nachvollziehen, aber 
es hat keinen Zweck immer und immer wieder darauf zurück zu kommen. Nimm 
es einfach hin, du wirst Günter sowieso nicht erreichen.

rhf

von Falk B. (falk)


Lesenswert?

Roland F. schrieb:
> Falk, lass es einfach gut sein.
> Ich weiß das dich Günters Verhalten (und auch Josef mit seiner abstrusen
> 8-Bit-CPU) wahnsinnig macht

Keine Sekunde. Ich weiß was das Problem dieser Leute ist und ich habe es 
schon LANGE verstanden und akzeptiert.

Aber das Gewusel der Leute hier, die das NICHT kapiert haben und allen 
Ernstes glauben, dem Günter mit irgendwelchen Hinweisen oder 
Empfehlungen auch nur eine Sekunde was vermittelen zu können, ist schon 
amüsant. Naja, nicht wirklich, eher ein Anlaß zum Kopfschütteln.

> es einfach hin, du wirst Günter sowieso nicht erreichen.

Hab ich keine Sekunde (mehr) vor.

von Hans (ths23)


Lesenswert?

Klaus schrieb:
> Da stehen ca. 20 Stück davon im Programm. Danach ein Semikolon und eine
> genaue Erklärung, was der Opcode macht.
Nö, in dem Programm stehen Mnemonics, die der Assembler in einen für den 
Prozessor verstehbaren Maschinenbefehl (Opcode) umsetzen soll.

Ich frage mich allerdings was der TO mit dem Opcode will, denn den wird 
er vermutlich noch schlechter verstehen, da das nur Zahlenkolonnen sind.
Beispiel (Z80): "inc b" wird zu 0x04. Um das zu verstehen müßte man die 
komplette Tabelle mit den Mnemonics im Kopf haben.

von Hans (ths23)


Lesenswert?

Günter K. schrieb:
> Zum Trost, weil ich selber nichts durch Eingabe erreicht habe,
> schreibe ich ein kleines Programm für die 7-Segment-CODE-Anzeige.

 mit Opcodes - ich lach mich schlapp.

von Falk B. (falk)


Lesenswert?

Hans schrieb:
> Ich frage mich allerdings was der TO mit dem Opcode will,

Eintippen, denn mehr kann der Junior-Computer nicht. Aber so 
neumodischer Kram wie Assembler will er ja nicht, weil er ja "genau 
verstehen will, was der Prozessor macht". -> AI (damit meine ich nicht 
artificial intelligence)

> denn den wird
> er vermutlich noch schlechter verstehen, da das nur Zahlenkolonnen sind.
> Beispiel (Z80): "inc b" wird zu 0x04. Um das zu verstehen müßte man die
> komplette Tabelle mit den Mnemonics im Kopf haben.

Es hat schon einen Grund, warum in den Anfangsjahren der IT Assembler 
erfunden wurde und nicht mehr mit Maschinencode programmiert wurde. Aber 
bestimmte Leute verstehen das halt nicht . . .

von Günter K. (enk)


Lesenswert?

Ooohh, soo viele Infos

Hallo liebe Leute,

Christoph M. schrieb:
>>Klaus (feelfree)
>>26.05.2025 17:25
>
> Das dürfte falsch sein: das ORG muss vor dem Label stehen, sonst ist
> z.B. PADD=0x$1A80 statt 0x$1A81.
> PAD:     .org $1A80
> PADD:    .org $1A81
> PBD:     .org $1A82
> PBDD:    .org $1A83

Ja, der Begriff "Label" erscheint oder erschien mir neu.
Weil ich das noch nicht kannte, nannte ich das mal TARGET, oder Ziel.
Für mich, der OP-CODES eingeben muss, stelle ich das ganz nach vorne.
Für mich als Anfänger, ist es einfacher die MNEMONICS mitzuschleppen,
als direkt in ASSEMBLER zu programmieren.

Was aber noch wichtig für mich ist, das sind die u/Zeiten/u.
Denn ich muss, in dem vorstehenden Programm für mehrere Töne und sei es 
der Gleiche, in der SR "ausscheren" bzw. dort etwas tun, zB.:
ZP-Incrementieren, das reicht innerhalb einer Halbwelle im höchsten Ton.
Warum dort(?), weil dort die Zeit, die Kürzeste ist.

Ich muss die Arbeit auf mehrere Halbwellen verteilen.
Im Moment stelle ich mir vor, dass die Zeit sehr knapp ist.
Aber auch der kürzeste Ton wird mehrere Halbwellen haben,
Nicht nur die positive- sundern auch die negative Halbwelle, -
so dass, die Symmetrie erhalten bleibt, und die Pausen-Länge,
die Ton-Höhe, die Ton-Länge bestimmt werden kann,
aus dem dann die Gesamt-Länge zusammengesätzt werden kann.

b/Nur so, kann ich mich in die Problematik für eine Lösung 
hineindenken./b

Nur sogesehen sind die Vorschläge nicht so schlecht.
Irgendwelche überflüssigen Bemerkungen, von wem auch immer,
übersehe ich einfach. - Ich übersehe aber nicht, die Zusammenhänge
die dazu führen könnten.

Gleich bekomme ich Besuch, muss vorbereiten.
Liebe Grüße
Günter K.
(ENK)

von Christoph M. (mchris)


Lesenswert?

Günter: Kannst du ein Bild des Computers posten ?

von Christoph M. (mchris)


Lesenswert?

Hier mal kurz was für die Profis: Ich versuche gerade den cc65 dazu zu 
bringen, Code für den Junior-Computer zu erzeugen:

https://cc65.github.io/

Für verschiedene Computermodelle gibt es unterschiedliche 
Konfigurationsfiles. Welches ist das kleinst Modell in der Liste des 
oben aufgeführten Modelle, die dem Junior-Computer am nächsten kommen?

von Peter D. (peda)


Lesenswert?

Christoph M. schrieb:
> Das dürfte falsch sein: das ORG muss vor dem Label stehen, sonst ist
> z.B. PADD=0x$1A80 statt 0x$1A81.

Ja, das sehe ich auch so.
Assembler arbeiten jede Zeile von links nach rechts ab.
Erst wird also PADD auf den gerade gültigen PC gesetzt und danach der PC 
auf den Wert der org-Anweisung.
Oft erlauben Assembler solche Fehler auch nicht. Ein Label darf nicht in 
einer Zeile mit einer Präprozessoranweisung stehen.

Gute Programmierer schreiben ein Label immer in eine extra Zeile ohne 
weitere Statements. Das erhöht die Übersichtlichkeit.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> b/Nur so, kann ich mich in die Problematik für eine Lösung
> hineindenken./b

Kannst du nicht.
Du könntest aber eines der hier vielfache geposteten Programme, die 
teilweise ganze Tonleiter oder Melodien spielen, mit richtigen 
Tonlängen, versuchen zu verstehen. Aber das willst du ja nicht.
Stattdessen schwadronierst du über alles, nur nichts über was dich 
weiterbringt.

von Thomas W. (datenreisender)


Lesenswert?

Peter D. schrieb:
> Christoph M. schrieb:
>> Das dürfte falsch sein: das ORG muss vor dem Label stehen, sonst ist
>> z.B. PADD=0x$1A80 statt 0x$1A81.
>
> Ja, das sehe ich auch so.
> Assembler arbeiten jede Zeile von links nach rechts ab.
> Erst wird also PADD auf den gerade gültigen PC gesetzt und danach der PC
> auf den Wert der org-Anweisung.

Kannst Du Dich noch an Single-Pass oder Double-Pass-Assembler erinnern? 
Beim Double-Pass wurden beim zweiten Durchlauf die noch offenen Labels 
bestimmt.

War natuerlich nur spannend bis schnelle Massenspeicher (vulgo 
8"-Disketten) auf den Markt kamen :-)

> Gute Programmierer schreiben ein Label immer in eine extra Zeile ohne
> weitere Statements. Das erhöht die Übersichtlichkeit.

Unabhaengig von Sprache und CPU: Da hast Du recht, da hast Du so recht. 
Aussergewoehnliche Programmierer wuerden sogar einen Kommentar 
spendieren (frei nach:  Real programmers don’t comment their code. If it 
was hard to write it should be hard to read).

: Bearbeitet durch User
von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Hier mal kurz was für die Profis: Ich versuche gerade den cc65 dazu zu
> bringen, Code für den Junior-Computer zu erzeugen:
>
> https://cc65.github.io/
>
> Für verschiedene Computermodelle gibt es unterschiedliche
> Konfigurationsfiles. Welches ist das kleinst Modell in der Liste des
> oben aufgeführten Modelle, die dem Junior-Computer am nächsten kommen?

So aus der kurzen Liste muesste der Sym-1 die kleinste Maschine (RAM bei 
0x0000-0x0fff, beim Junior waere das 0x0000-0x07ff  [ich habe die 
Expansion-Card]). Es fehlt natuerlich Stdio.h (Du hast kein I/O), es 
fehlt Disk i/o.

von Soul E. (soul_eye)


Lesenswert?

Peter D. schrieb:
> Oft erlauben Assembler solche Fehler auch nicht. Ein Label darf nicht in
> einer Zeile mit einer Präprozessoranweisung stehen.

Eigentlich nimmt man für solche Konstantendefinitionen auch SET, EQU 
oder =, je nach Syntax des Assemblers. Also
1
PAD:     equ $1A80
2
PADD:    equ $1A81
3
PBD:     equ $1A82
4
PBDD:    equ $1A83

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Christoph M. schrieb:
> Hier mal kurz was für die Profis: Ich versuche gerade den cc65 dazu zu
> bringen, Code für den Junior-Computer zu erzeugen:

Thomas W. (datenreisender)
28.05.2025 15:54

>So aus der kurzen Liste muesste der Sym-1 die kleinste Maschine (RAM bei
>0x0000-0x0fff, beim Junior waere das 0x0000-0x07ff  [ich habe die
>Expansion-Card]).

Ich habe es hier mal mit dem "blink" Programm versucht:
Beitrag "6502 C-Compiler cc65"
Compilieren tut es, auch wenn ich als Platform 'none' auswähle.

> Es fehlt natuerlich Stdio.h (Du hast kein I/O), es
> fehlt Disk i/o.

Da liegt ein wenig die Herausforderung: Man muss irgendwie ein 
Maschinenmodell ohne diese Peripheriebibliotheken verwenden, damit nicht 
einige riesige Library mit-gelinkt wird.
Ich könnte die relevanten Code-Teile aus dem Compiler-Output heraus 
kopieren und dann Assemblieren, aber dass ist mühsam und eigentlich muss 
der Prozess ja in der Lage sein, den Hex-Code an der richtigen Stelle zu 
erzeugen.

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> der Prozess ja in der Lage sein, den Hex-Code an der richtigen Stelle zu
> erzeugen.

www.ams80.com

von Christoph M. (mchris)


Lesenswert?

> www.ams80.com
Ja schon. Aber in der cc65 Tool-Chain befindet sich ja auch der ca65 
Assembler, mit dem es auch gehen müsste. Die Betonung liegt auf 
'müsste', weil wie im anderen Thread schon angemerkt, bräuchte ein 
C-Compiler ja auch einen Start-Up code.

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> Ja schon. Aber in

Du macht es auch immer gern möglichst umständlich und kompliziert, was?

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

Einfacher und SINNVOLLER geht es in diesem Rahmen nicht.

von Günter K. (enk)


Lesenswert?

Cyblord -. schrieb:
> dann kommt dazu dass plötzlich jeder C64-Opa hier
> meint, jetzt sei die Stunde irgendwelchen Kruden Details oder Anekdoten
> zu Assembler rauszuhauen.

Liebe Leute,
das hatte ich überlesen, lieber Cyblord, bitte, wie war das gemeint?
Bitte was heißt: "... jeder C64-Opa hier ...", gibts hier noch mehr?
Bitte was heißt: "... die Stunde irgendwelchen Kruden Details ..."? 
Bitte
was ist gemeint mit: "... Anekdoten
> zu Assembler rauszuhauen."
Ich bin kein Fachmann, in dieser Sache, das habe ich auch nie behauptet.
Jetzt kommt noch die Antwort auf die Frage:

Cyblord -. schrieb:
> Vielleicht sollte der TE auch nochmal klarstellen was genau sein
> (Lern)Ziel ist.
Nun ja: Ich möchte, durch das logische Verhalten des Computers 
verstehen, - und Sachen machen, was man mit dem Computer machen kann.
Es braucht nicht nur der JC zu sein, aber ich möchte verstehen.
Natürlich, ich finde, der JC ist ein mit dem 6502 schöner Computer,
bei dem ich auch noch viele Befehle lernen muss.

Zwar stelle ich es mir mit einem Timer leichter vor, aber es ist eine 
Herausforderung, so wie Klaus es vorschlägt. - Vielleicht sollte ich 
auch nicht so vorschnell sein, -und so finde ich, erstmal die 
dazugehörenden Gedanken zusammenfassen, bevor ich sie so wie ich es mir 
vorstelle, zu Papier bringen und dann erst vorstellen.
Jetzt muss ich noch einkaufen gehen.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Zwar stelle ich es mir mit einem Timer leichter vor, aber es ist eine
> Herausforderung, so wie Klaus es vorschlägt.

Es ist vielleicht für einen im IT-/Programmierbereich normal 
vorgebildeten Menschen eine kleine Herausforderung.
Für dich ist es jedoch schlicht unmöglich.

> Ich möchte, durch das logische Verhalten des Computers
>verstehen

Also vergiss dein Vorhaben, Assembler zu lernen.
Such dir was Einfacheres und besser zu Bedienendes. Grundsätzlich hast 
Du ja kein Problem damit, einen Computer zu bedienen, wenn ich mir deine 
mit Excel erstellten Programmierversuche so anschaue.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Vielleicht sind die bisherigen Programme für Günter auch zu kompliziert.
Es stellt sich also die Frage: Was wäre das einfachste Programm, das 
etwas tut.
Man könnte z.B. die Ports so beschreiben, dass das erste 
Siebensegment-Display eine '8' anzeigt.
Weiß jemand, wie man das macht?

von Thomas W. (datenreisender)


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:

> Man könnte z.B. die Ports so beschreiben, dass das erste
> Siebensegment-Display eine '8' anzeigt.
> Weiß jemand, wie man das macht?

Ja. Ich.

Im Anhang findest Du den IO-Teil des Juniors. Das Display ist 
gemultiplexed und PB1-PB4 waehlen die Stelle des Displays aus, PA0-PA6 
waehlen das entsprechende Segment des Displays aus.

Damit Du wirklich ein "Zeichen" auf dem Diplay angezeigt bekommst, musst 
Du das Display dann alle paar Millisekunden updaten.

Die Beschreibung findest Du im Elektor-Junior Buch II, p. 131. Die 
Routinen SHOW und CONVD findest Du auch erklaert. Und die Beschreibung 
ist sogar recht gut, selbst ich habe das damals als 16-Jaehriger 
verstanden.

Fuer Guenter ist das nix, die Ton-Erzeugung ab p.45 im gleichen Buch 
bekommt er ja auch nicht hin.

----

P.S.: Das war ein wenig falsch oder vereinfacht: Man kann mit Auswahl 
von Pb1-4 eine Stelle auswaehlen und dann ein Pattern auf dieser Stelle 
anzeigen. Aber: Es ist eigentlich fuer Multiplexing gerechnet, die 
68Ohm-Widerstaende sind etwas zu klein, und die Stroeme ins das Display 
etwas zu gross.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Thomas W. (datenreisender)
29.05.2025 09:57
>PB1-PB4 waehlen die Stelle des Displays aus, PA0-PA6

Danke dafür.
Dann müsste
1
lda #$ff
2
sta PBDD ; PORT B alles auf Ausgang
3
sta PADD ; PORT A alles auf Ausgang
4
sta PAD ; alle Segmente an
5
lda #2
6
sta PBD ; erstes Digit auswählen
7
brk
auf der ersten Anzeige eine helle '8' erzeugen. Korrekt?

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Thomas W. (datenreisender)
> 29.05.2025 09:57
>>PB1-PB4 waehlen die Stelle des Displays aus, PA0-PA6
>
> Danke dafür.
> Dann müsste
>
1
> lda #$ff
2
> sta PBDD ; PORT B alles auf Ausgang
3
> sta PADD ; PORT A alles auf Ausgang
4
> sta PAD ; alle Segmente an
5
> lda #2
6
> sta PBD ; erstes Digit auswählen
7
> brk
8
>
> auf der ersten Anzeige eine helle '8' erzeugen. Korrekt?

Noe. Du hast den 74145 vergessen (Du hattest die Schaltplaene selbst 
gepostet
Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"). Die Adresse der 
Displaystellen sind 0x08,0x0a,0x0c,0x0e,0x10 und x012.

Mit einem beherzten lda #0x08 solltest Du die erste Stelle mit ca. 50 - 
70mA bestromen :-) Schoen hell, aber die Effizienz der 40 Jahren alten 
Displays sind so oder so nicht mehr so prall.

von Hans (ths23)


Lesenswert?

Falk B. schrieb:
> Es hat schon einen Grund, warum in den Anfangsjahren der IT Assembler
> erfunden wurde und nicht mehr mit Maschinencode programmiert wurde. Aber
> bestimmte Leute verstehen das halt nicht . . .
Natürlich hat das einen Grund warum man die Rechner mit einer für 
Menschen verständlicheren Sprache programmieren wollte. Die Opcodes, die 
noch dazu für jeden Prozessor anders waren/sind, kann sich eigentlich 
keiner merken. Die Mnemonics kann man sich leichter merken, zumal sie 
i.d.R. von der Bezeichnung her mehr oder weniger selbstsprechend waren. 
Mit der Assemblersprache wurde es auch möglich Code leichter 
austauschbar zu machen, weil die Übersetzung in den Opcode der zum 
Prozessor passende Assembler gemacht hat.
Und ja natürlich hat man Anfangs die Hexzahlenkolonnen zu Fuß 
eingehackt, allerdings kenne ich persönlich niemanden, was natürlich 
nichts bedeuten muß, der Programme im Opcode entwickelt hat. Da stand am 
Anfang immer ein Assemblerlisting. Meist hat man dann nach den 
Zeilennummern eine Spalte frei gelassen, wo man nach dem Erstellen des 
Programmes den Opcode eingetragen hat. War eigentlich auch gar nicht 
anders möglich, da man die Sprungadressen ja erst berechnen konnte, wenn 
das Programm fertig war.

Ich habe mal eine zeitlang beruflich mit Assembler am E60/E100 
(sowjetische PDP11 Clone) arbeiten müssen. Allerdings hat man dort die 
Mnemonics in einem recht einfachen Editor eingegeben und dann mit dem 
Assembler übersetzen lassen. Allerdings hat der Assembler das Objektfile 
dann auf Diskette gespeichert und man mußte das natürlich nicht mehr per 
Hand eintippen.

von Christoph M. (mchris)


Lesenswert?

Thomas W. (datenreisender)
29.05.2025 11:04
>Mit einem beherzten lda #0x08 solltest Du die erste Stelle mit ca. 50 -
>70mA bestromen :-) Schoen hell, aber die Effizienz der 40 Jahren alten
>Displays sind so oder so nicht mehr so prall.

(5V-1.6V)/68 Ohm = 50mA .. Da wäre die Frage, wie groß der 
Spannungsabfall am 74154 und dem ULN ist. Da geht bestimmt noch mal was 
weg, so dass es keinen "KillerPoke" für den Juniorcomputer gibt.
Falls ich es bisher unterging: Ich habe keinen Juniorcomputer, sondern 
nur die Virtualisierung auf dem PiPico:

Beitrag "6502 Emulator PiPico"

Deshalb frage ich genau nach, wie die Hardware anzusteuern ist. Beim 
Ablesen aus dem Schaltplan verdreht man gerne mal Bits- und Polaritäten. 
Plötzlich ist die Anzeige dann Low- statt High-aktiv.

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Thomas W. (datenreisender)
> 29.05.2025 11:04
>>Mit einem beherzten lda #0x08 solltest Du die erste Stelle mit ca. 50 -
>>70mA bestromen :-) Schoen hell, aber die Effizienz der 40 Jahren alten
>>Displays sind so oder so nicht mehr so prall.
>
> (5V-1.6V)/68 Ohm = 50mA .. Da wäre die Frage, wie groß der
> Spannungsabfall am 74154 und dem ULN ist. Da geht bestimmt noch mal was
> weg, so dass es keinen "KillerPoke" für den Juniorcomputer gibt.

Nein, den "Killerpoke" gibt es nicht, aber ein "Kill-Switch" war die 
Abschaltung des Displays: Der Spike hat die CPU oft aus dem Takt 
geworfen.

> Deshalb frage ich genau nach, wie die Hardware anzusteuern ist. Beim
> Ablesen aus dem Schaltplan verdreht man gerne mal Bits- und Polaritäten.
> Plötzlich ist die Anzeige dann Low- statt High-aktiv.

Wenn man auf Port A (PAD) eine 0x00 schreibt bekommt man eine "8" ein 
Display, schreibt man eine 0x7f rein bekommt man eine "Leerstelle" 
(alles lt. Junior Buch II, mein Junior liegt z.Z. im Schrank).

von Christoph M. (mchris)


Lesenswert?

>Wenn man auf Port A (PAD) eine 0x00 schreibt bekommt man eine "8" ein
>Display, schreibt man eine 0x7f rein bekommt man eine "Leerstelle"
Das ist die wichtige Information :-)

von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:
> Oh, das ist jetzt eine neue Erkenntnis. Ich dachte die ganze Zeit, wir
> diskutieren hier über einen Junior-Computer mit 6502.

Oh maan du bist echt nicht die hellste Kerze im Leuchter oder?

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Günther, das wäre doch eine schöne Aufgabe für dich: Wie zeigt man eine 
4 statt einer 3 ?
1
; Junior Computer Siebensegmentansteuerung
2
;
3
; 7 segement codes
4
;  $C0,  # 0
5
;  $F9,  # 1
6
;  $A4,  # 2
7
;  $B0,  # 3
8
;  $99,  # 4
9
;  $92,  # 5
10
;  $82,  # 6
11
;  $F8,  # 7
12
;  $80,  # 8
13
;  $90   # 9
14
15
; MOS6532 PIA addrese $1A80
16
PAD=$1A80
17
PADD=$1A81
18
PBD=$1A82
19
PBDD=$1A83
20
21
    .org 300
22
    lda #$ff
23
    sta PBDD    ; PORT B alles auf Ausgang
24
    sta PADD    ; PORT A alles auf Ausgang
25
26
    lda #$B0    ; Zahl 3
27
    sta PAD     ; Segmente schreiben
28
29
    lda #8      ; Adresse 8 für erstes Display
30
    sta PBD     ; erstes Digit auswählen
31
32
    brk

Hex-Code zum Eintippen in den Junior-Computer:
1
0300: A9 FF 8D 83 1A 8D 81 1A
2
0308: A9 80 8D 80 1A A9 08 8D
3
0310: 82 1A 00

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> Günther, das wäre doch eine schöne Aufgabe für dich: Wie zeigt man eine
> 4 statt einer 3 ?

Du bist ein Optimist ;-)

Na wenn schon, dann bitte als Tabelle oder wenigstens als direkt 
nutzbare Konstante. Denn sonst hat man wieder haufenweise magische 
Zahlen, die man eigentlich nicht haben will.
1
; 7 segement codes
2
Z0 = $C0
3
Z1 = $F9
4
Z2 = $A4
5
Z3 = $B0
6
Z4 = $99
7
Z5 = $92
8
Z6 = $82
9
Z7 = $F8
10
Z8 = $80
11
Z9 = $90
12
13
   lda #Z3

von Thomas W. (datenreisender)


Lesenswert?

So klappt das nicht: Um den BRK zu benutzen muss der Reset-Vector $1c00 
in $1A7E (= 0x00) und $1a7f = (0x1c) geschrieben werden. Ich bin mir 
sicher, dass Guenter das nie gemacht hat (das haette er bestimmt mit 
einer PowerPoint-Folie erklaert).

Wenn der Vektor gesetzt waere, wuerde das Display kurz flackern und dann 
wieder den Programmcounter (0x0314) anzeigen.

Es ist auch ganz gross in Kapitel 3 ("Programmieren") auf p.57 des 
Junior-Computer Buch I erklaert.

Das ist doch alles Humbug.

: Bearbeitet durch User
von Thomas Z. (usbman)


Lesenswert?

Thomas W. schrieb:
> Ich bin mir
> sicher, dass Guenter das nie gemacht hat (das haette er bestimmt mit
> einer PowerPoint-Folie erklaert).

wie auch? Der Junior hat nur RAM von 0x000..0x03FF.  Die Adresse 0x1A7E 
liegt im Eprom, dass man bekanntlich nicht beschreiben kann. Ich weiß ja 
nicht woher du deine Infos hast, aus dem Buch ganz sicher nicht.

von Thomas W. (datenreisender)


Lesenswert?

Thomas Z. schrieb:
> Thomas W. schrieb:
>> Ich bin mir
>> sicher, dass Guenter das nie gemacht hat (das haette er bestimmt mit
>> einer PowerPoint-Folie erklaert).
>
> wie auch? Der Junior hat nur RAM von 0x000..0x03FF.  Die Adresse 0x1A7E
> liegt im Eprom, dass man bekanntlich nicht beschreiben kann.

Noe. Die 6532 (RIOT, RAM + IO + Timer) ist bei 0x1A00 - 0x1AFF. Fuer 
Dich dann: 0x1A00 - 0x1A7F sind 128 Bytes RAM im RIOT, 0x1A80 - 0x1A83 
ist IO und dann ganz viele Timer und Flankendetektoren (PA7).

> Ich weiß ja
> nicht woher du deine Infos hast, aus dem Buch ganz sicher nicht.

Fuer Anfaenger: Junior Buch I und II, speziell Buch II, Kapitel 6, Page 
33 bis 99, Elektor-Verlag, 1980.

P.S.: Mit Bild:
Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"

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


Lesenswert?

Hallo liebe Leute,

ich hatte auch das Junior-Buch II, hier schon auf dem Schirm gehabt.
Da las ich auch von den Flanken-Detektoren.
(Jetzt aber nicht mehr gefunden.)
Unter anderem las ich von einer Art-Klaviatur.

Heute auf Chr.-Himmelfahrt, fand ich noch 6 Tasten;(für 6 Töne)
für diese Tasten, fand ich ein schönes Lied
(welches ich noch nicht nenne).
Diese 6 Tasten, werde ich auf eine Europa-Platine löten.
Das Lied hat nur 6 Töne, aber -zum Scherz-, passen diese, - so,
auf einer Europa-Platine, dass ich nur wenig Brücken legen brauche,
die Leiterbahnen in Längsrichtung (-weitgehend-*) nicht unterbrochen 
werden.
Die Schalter haben 4 Anschlüsse, von der je 2 auf der Leiterbahn liegen.
(*-Schutz-Dioden-). Die 6 Tasten, passen auf die Breite der Platine, -
in Längs-Richtung liegen die Leiterbahnen der Platine.
Dafür wird das Lied programmiert, die Taster auf sortiert.
Nach der üblichen C-Dur-Tonleiter hat das Lied keine Halbtöne. (Je nach 
Ansicht-weise aber wohl, dann liege C, D, E, höher. – Diese Sichtweise 
ist aber nicht wichtig!).Das Lied, spielt aber leider, nicht 
automatisch.
In diesem Falle hier, muss man Programmieren.

- Ein solches "Programm" schrieb ich schon mal für den C64 in 
Maschinensprache. Warum schreibe ich "Programm" zwischen "" - ?
Weil dieses "Programm" im Wesentlichen, nur Zuweisungen waren.
Das ist sehr lange her. Die Tastensetzung machte ich in diesem Falle 
nach der Fingerzählung für die Violine, z.B.: 1., 2., 3. u. 4. Finger, 
wobei der 4. Finger die volle Quinte ist.
(Manchmal ist er bei der Violine im Notenblatt vorgeschrieben.) -
(ich spiele aber keine Violine mehr. Das Banjo ging beim Umzug zu 
Bruch.) Die Ordnung der Abstände auf den Violinen-Brett, sind nicht 
gleich.
Wohl aber die Zählung nach Noten. - So, setzte ich die Tasten auf dem 
C64; - und für den Halbton (beim Notenzeichen) eine zusätzliche Taste.
Der Prozessor hieß 65010 und steuerte direkt die Sound-Register,
die man direkt absprechen konnte. Der C64 hatte keine 64K sondern nur 
52K der Rest war 'gespiegelt' wie man es nannte. Bestimmte Bus-Leitungen 
stellten kein CS (Chip Select) zur Verfügung,
das wirkt sich so aus -als wenn- dort auch Daten vorhanden wären.
Der PET hatte nur 4 K. - Mein CBM-PET hatte nur 8 K, den hatte ich 
selbst erweitert auf 32 K.
Danach wurde er erweitert auf 80 Zeichen,
Gros-Klein-Schrift und Zusatz-Monitor;
und für einige weitere Software-Erweiterungen; - das hatte
ich selber nicht mehr gemacht.
- Gute Nacht liebe Leute!
Liebe Grüße
Günter K.
(ENK)

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


Lesenswert?

Hallo Liebe Leute,

guten Morgen, ich habe eine kurze Frage,
welche Funktion hat ORG. - ?
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> In diesem Falle hier, muss man Programmieren.

Was du leider nicht kannst und auch nie können wirst.
Wie kommt man nur auf die völlig wahnsinnige Idee, wenn man es noch 
nicht mal geschafft hat, 2 verschiedene Töne abzuspielen?

Das ist wie ein 3-jähriger, der es gerade geschafft hat, mit seinem 
Fahrrad mit Stützrädern sich den ersten Meter vorwärts zu bewegen, und 
dann verkündet, er steige jetzt aufs Einrad um.

Günter K. schrieb:
> welche Funktion hat ORG

Abkürzung für Origin, zu deutsch Ursprung -> die Adresse wo der Code 
abgelegt wird.

von Gunnar F. (gufi36)


Lesenswert?

Klaus schrieb:
> Das ist wie ein 3-jähriger, der es gerade geschafft hat, mit seinem
> Fahrrad mit Stützrädern sich den ersten Meter vorwärts zu bewegen, und
> dann verkündet, er steige jetzt aufs Einrad um.

3-Jährige sind prädestiniert das zu schaffen (und fast nur die!). Die 
fliegen ein paarmal kapital auf die Nase, heulen, steigen wieder auf und 
fahren. Bei Erwachsenen ist das nahezu aussichtslos.

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,

Thomas W. schrieb:
> Christoph M. schrieb:
>
>> Man könnte z.B. die Ports so beschreiben, dass das erste
>> Siebensegment-Display eine '8' anzeigt.
>> Weiß jemand, wie man das macht?

Ja, Wolfgang R. schickte mir mal so etwas, hier in die Liste.
Ich hatte es ausprobiert, und es hatte geklappt!! - Darüber freute ich 
mich  sehr! DANKE lieber Wolfang R.

Das muss ich mir nochmal heraussuchen.

Das war dadurch, weil ich mich erinnerte, als ich den JC gekauft hatte,
dass der JC: scheinbar selbständig "Junior" auf dem DISPLAY schrieb.
Nun das ist ja -so- lange her, dass ich nicht mehr weiß, wie es dazu 
kam.
Vermutlich ein Auszug aus dem MONITOR.

Und so, wie ich es jetzt sehe, könnte man:
"DISPLAY" auch auf dem DISPLAY durchlaufen lassen, denn es sind 7 statt 
6
Zeichen, oder mal "DSPLAY" schreiben.

Das JC-Buch II downloade ich mir nochmal auf meinen Computer.
Dankeschön für Eure Ideen!!
Eines muss ich ganz ehrlich sagen, ich bin nicht so gebildet,
und ich behalte auch nicht alles, aber noch vieles.

Nachher kaufe ich noch weitere 7 Schälterchen, u. Dill-Schälterchen.
Dann kann ich so noch weitere Töne dazu wählen (ander abwählen);
dann wird die Europakarte mehr bestückt. (Für die Spielerei!)
Dann kann man -irgendwie-,  mehr Töne wählen.
Die LEGO-Bausteine passen auch auf diese Schalterart.
Somit, könnte man auch lange Tasten bauen;
diese brauche aber 2 Taster zum wippen.
So, ich fahre jetzt in die Stadt.
Muss mich beeilen!
Liebe Grüße
Günter K.
(ENK)

von Thomas W. (datenreisender)


Angehängte Dateien:

Lesenswert?

Günter K. schrieb:
>
> Das war dadurch, weil ich mich erinnerte, als ich den JC gekauft hatte,
> dass der JC: scheinbar selbständig "Junior" auf dem DISPLAY schrieb.
> Nun das ist ja -so- lange her, dass ich nicht mehr weiß, wie es dazu
> kam.

Ganz einfach: Du hast die Elektor 05/1980 gesehen (siehe Anhang). Und 
das Prograemmchen zum Anzeigen des Textes "Junior" kam spaeter.

> Vermutlich ein Auszug aus dem MONITOR.

Noe.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Nachher kaufe ich noch weitere 7 Schälterchen

Sag mal, willst Du uns eigentlich verarschen? Liest Du nicht was wir 
schreiben?
Du schaffst es nicht, 2 Töne hintereinander abzuspielen, willst aber nun 
wieder 15 Schritte weiter gehen?
Nochmal für dich ganz klar:

DU SCHAFFST DAS NICHT.

von Falk B. (falk)


Lesenswert?


von Christoph M. (mchris)


Lesenswert?

Günter schrieb:
> Welche Funktion hat ORG
1
Die ORG-Direktive (kurz für "Origin") im 6502-Assembler legt die Startadresse im Speicher fest, ab der der nachfolgende Code oder die Daten abgelegt werden sollen. Mit ORG bestimmst du also, an welcher Adresse im Speicher dein Programm oder ein bestimmter Abschnitt davon beginnt. Das ist besonders wichtig, wenn du Programme für Systeme schreibst, bei denen der Code an einer festen Speicherstelle erwartet wird, wie z.B. bei ROMs oder beim Startvektor eines Rechners

Hallo Günter, für solche Fragen nimmst du am besten
https://www.perplexity.ai/

Wenn du folgendes eintippts:
6502 assembler: welche Funktion hat ORG
kommt die obige Antwort.
Die ist deutlich ausführlicher, als das was wir dir hier erklären können 
und du verstehst sie besser. Wenn dann was unklar ist, frage die KI 
einfach weiter.

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,
lieber Christoph M.,

Du hast ja schon alles richtig gesagt, DANKESCHÖN!
Die https://www.perplexity.ai/ hat hier dieses Mal nicht richtig 
reagiert
Als ich die Frage nach dem FLAG stellte aber wohl; auch hierfür ein 
DANKESCHÖN dafür.

Und Leute, vor allen Dingen Klaus, ich habe mir schon Gedanken gemacht,
(Wie gewüscht, ohne TIMER)
nachher bin ich zu einer Geburtstagsfeier eingeladen.
Gestern war Grillen, das war sehr schön und
freue mich jetzt zur Geburtstags-Feier zu gehen.

Das Programm, welches ich schreiben werde heißt: Martinshorn.(asm)
Allerdings leider nur, vorläufig NUR wie gewohnt in
Maschinensprache mit beigefügten MNEMONICS.

Später, wenn ich mich mal mit dem Compiler und den Loops beschäftigt 
habe,
Dann weiß ich vielleicht teilweise, was da passiert.

Kurzum, ich habe mir schon Gedanken gemacht.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Martinshorn

LOL. Bist du wirklich so extrem beratungsresistent oder doch ein Troll?

von Cyblord -. (cyblord)


Lesenswert?

Klaus schrieb:
> LOL. Bist du wirklich so extrem beratungsresistent oder doch ein Troll?

Dann besiege doch mal dein Helfersyndrom und sehe ein dass das hier 
alles keinen Sinn macht. Egal ob Troll oder völlig weggetreten.

von Klaus (feelfree)


Lesenswert?

Cyblord -. schrieb:
> Dann besiege doch mal dein Helfersyndrom

Mach ich - versprochen! - spätestens nachdem Du dein Mecker- und 
Rant-Syndrom in den Griff bekommst.

von Cyblord -. (cyblord)


Lesenswert?

Klaus schrieb:
> Mach ich - versprochen! - spätestens nachdem Du dein Mecker- und
> Rant-Syndrom in den Griff bekommst.

Traurig wenn man das eigene Verhalten vom Verhalten anderer abhängig 
machen muss.
Entweder du hältst es für sinnvoll hier zu helfen oder nicht. Was hat 
das mit mir zu tun?

von Klaus (feelfree)


Lesenswert?

Cyblord -. schrieb:
> Traurig

wenn man Ironie erst mit passenden Smilies versteht.

Cyblord -. schrieb:
> Was hat
> das mit mir zu tun?

Tja, wer hat mir denn den Ratschlag gegeben?

von Cyblord -. (cyblord)


Lesenswert?

Klaus schrieb:
> wenn man Ironie erst mit passenden Smilies versteht.

Nur dass es keine Ironie war und das wissen wir beide.

Armselig ist es übrigens auch, erst mal Unsinn zu labern und dann 
hinterher "Ironie!" zu rufen. Steh zu deinen Aussagen!

von Gerhard O. (gerhard_)


Lesenswert?

Moin,

Ich bin der Meinung, daß man Günter auf seine eigene Art und Weise 
lernen lassen muß. In seinem Alter ist das vielleicht ganz natürlich. 
Ich merke es auch bei mir selber, daß ich mich nicht mehr so flexibel 
wie früher bin. Deshalb kann ich die Dichotomie zwischen Euch und ihm 
gut verstehen. Ich bewundere andrerseits auch Eure verständnisvolle 
Geduld und Ausdauer.

Persönlich würde ich zu Arduino oder Bascom auf Arduino raten. Da hat 
man eben eine komplett ausgearbeitete Arbeitsumgebung und 
standardisierte HW. Auch in einer Hochsprache wie BASIC oder auch C kann 
man die Prinzipien des Programmieren ausreizen. Und letztlich lassen 
sich benützbare Gerätschaften damit bauen. Da wäre sogar eine der vielen 
Arduino Baukoffer, gefüllt mit vielen netten Peripheriebausteinen und 
Steckbrett praktisch.

Duck und weg...

von Christoph M. (mchris)


Lesenswert?

Hallo Günter,

hier noch mal das verbesserte Siebensegmentprogramm.
Am Anfang habe das .org beschrieben.
Dank dem Hinweis von Thomas wird das Programm jetzt mit einer 
Endlosschleife quasi "angehalten", so dass die Zahl stehen bleibt und 
nicht gleich verschwindet.
1
; Junior Computer Siebensegmentansteuerung
2
;
3
; original version:
4
; 2025-05-29, mchris
5
; improvements: Falk B., Thomas W.
6
;
7
; 7 segement codes
8
9
Z0 = $C0
10
Z1 = $F9
11
Z2 = $A4
12
Z3 = $B0
13
Z4 = $99
14
Z5 = $92
15
Z6 = $82
16
Z7 = $F8
17
Z8 = $80
18
Z9 = $90
19
20
; MOS6532 PIA addrese $1A80
21
PAD=$1A80
22
PADD=$1A81
23
PBD=$1A82
24
PBDD=$1A83
25
26
    .org $300   ; Startaddresse für den Assemblercode
27
28
    lda #$ff
29
    sta PBDD    ; PORT B alles auf Ausgang
30
    sta PADD    ; PORT A alles auf Ausgang
31
32
    lda #Z3    ; Zahl 3
33
    sta PAD     ; Segmente schreiben
34
35
    lda #8      ; Adresse 8 für erstes Display
36
    sta PBD     ; erstes Digit auswählen
37
38
end:
39
    jmp end ; springe immer wieder zum ende (Programm bleibt quasi stehen)

Hier noch der Hex-Code zum eintippen.
1
0300: A9 FF 8D 83 1A 8D 81 1A
2
0308: A9 99 8D 80 1A A9 08 8D
3
0310: 82 1A 4C 12 03
 Das Designziel hier war ein möglichst kurzer Code, so dass man nicht so 
viel tippen muss.

von Klaus (feelfree)


Lesenswert?

Cyblord -. schrieb:
> Armselig ist es übrigens auch,

anderen Ratschläge geben zu wollen während man selbst vollkommen immun 
gegen jedwede Kritik ist.

> Steh zu deinen Aussagen!

Selbstverständlich. Das Gesagte gilt!

von Björn W. (bwieck)


Lesenswert?

Christoph M. schrieb:
> Hier noch der Hex-Code zum eintippen.

Der Hexcode stellt Zahl 4 dar..

von Christoph M. (mchris)


Lesenswert?

Björn W. (bwieck)
31.05.2025 16:38
>Der Hexcode stellt Zahl 4 dar..

Krass, habe es gerade ausprobiert, du hast tatsächlich Recht. Ich hätte 
nicht gedacht, dass jemand so genau hinschaut. Wie hast du denn das 
gesehen?

Da muss mir wohl beim kopieren ein Fehler unterlaufen sein ..

aber jetzt:
1
0300: A9 FF 8D 83 1A 8D 81 1A
2
0308: A9 B0 8D 80 1A A9 08 8D
3
0310: 82 1A 4C 12 03

von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:
> Da muss mir wohl beim kopieren ein Fehler unterlaufen sein ..
>
> aber jetzt:

Ist dir klar dass der TE sich absolut gar nichts aus deinen kleinen 
Aufgaben macht, ja sie nicht mal wahrnimmt?
Ich meine klar, du machst nicht den Eindruck als ob es dich juckt ob dir 
jemand bei deinem Schwafeln zuhört, aber selbst DU könntest ja jetzt 
auch mal kapiert haben, dass beim TE kein Licht brennt.

von Klaus (feelfree)


Lesenswert?

Cyblord -. schrieb:
> Ist dir klar dass der TE sich absolut gar nichts aus deinen kleinen
> Aufgaben macht, ja sie nicht mal wahrnimmt?

Ist dir klar, dass wir uns absolut gar nichts aus deinen ständigen 
Stänkereien machen, weil der Cyblord halt mal so ist wie er ist?

von Björn W. (bwieck)


Lesenswert?

Christoph M. schrieb:
> Wie hast du denn das
> gesehen?

Och.. Hat bestimmt damit zu tun, daß ich früher viel mit Maschinencode 
Monitoren auf dem C64 gespielt habe.. Da bleibt offenbar was hängen ;)

von Christoph M. (mchris)


Lesenswert?

Hallo Günter,
um zu lernen, wie man ein System programmiert, ist es am einfachsten, 
bestehenden Code zu nehmen und schrittweise Änderungen daran 
vorzunehmen.

Hier mal ein Programm, dass den Timer benutzt und bis 3 zählt. Als Übung 
kannst du die Zahlenausgabe ändern oder den Sprung so ändern, dass das 
Zählen wiederholt wird.
1
; Junior Computer Siebensegmentansteuerung
2
; bis 3 zählen
3
;
4
; original version:
5
; 2025-05-32, mchris
6
;
7
; 7 segement codes
8
9
Z0 = $C0
10
Z1 = $F9
11
Z2 = $A4
12
Z3 = $B0
13
Z4 = $99
14
Z5 = $92
15
Z6 = $82
16
Z7 = $F8
17
Z8 = $80
18
Z9 = $90
19
20
    .org $300   ; Startaddresse für den Assemblercode
21
22
    lda #$ff
23
    sta PBDD    ; PORT B alles auf Ausgang
24
    sta PADD    ; PORT A alles auf Ausgang
25
    lda #8      ; Adresse 8 für erstes Display
26
    sta PBD     ; erstes Digit auswählen
27
28
    lda #Z1    ; Zahl 1
29
    jsr show
30
31
    lda #Z2    ; Zahl 2
32
    jsr show
33
34
    lda #Z3    ; Zahl 3
35
    jsr show
36
37
end:
38
    jmp end
39
40
show:
41
    sta PAD     ; Segmente schreiben
42
43
    jsr wait
44
    jsr wait
45
    rts
46
47
wait:
48
    lda #255
49
    sta TIMER_DIV1024 ; start timer mit prescaler => ~2Hz
50
wait1:
51
    lda TIMER_READ
52
    bne wait1 ; Warte, bis timer 0
53
    rts
54
55
    ; MOS6532 PIA addrese $1A80
56
PAD=$1A80
57
PADD=$1A81
58
PBD=$1A82
59
PBDD=$1A83
60
TIMER_READ=$1A84 ; timer read register
61
TIMER_DIV1024=$1A97 ; address to start timer prescaler 1024 and no Interrupt

von Roland F. (rhf)


Lesenswert?

Hallo Christoph,
du bist deiner Zeit voraus...

rhf

von Markus E. (markus_e176)


Lesenswert?

Ich weiß nicht, ob das schon erwähnt wurde, aber das Spiel hier wäre 
gerade auf Steam im Sale (~11€):
https://store.steampowered.com/app/1444480/Turing_Complete/

Laut Beschreibung könnte das sehr gut geeignet sein, um die Grundlagen 
zu verstehen und damit rumzuspielen.

...wenn auch ohne physische Hardware...

von Christoph M. (mchris)


Lesenswert?

>Ich weiß nicht, ob das schon erwähnt wurde, aber das Spiel hier wäre
>gerade auf Steam im Sale (~11€):

Mittlerweile gibt es ja haufenweise Online-Schaltungssimulatoren, wie 
z.B. der hier:

https://everycircuit.com/

Da ließe sich wahrscheinlich auch eine grundlegende CPU nachbauen.

von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:
> Mittlerweile gibt es ja haufenweise Online-Schaltungssimulatoren, wie
> z.B. der hier:
>
> https://everycircuit.com/
>
> Da ließe sich wahrscheinlich auch eine grundlegende CPU nachbauen.

NEIN, denkst du WIRKLICH dass man mit einem Schaltungs- oder gar einem 
Digitale Logik Simulator eine CPU nachbauen kann? Ich sag nur WOW WOW 
WOW.

von Günter K. (enk)


Lesenswert?

Cyblord -. schrieb:
> Ist dir klar dass der TE sich absolut gar nichts aus deinen kleinen
> Aufgaben macht, ja sie nicht mal wahrnimmt?

Halloo, einen schönen Sonntag, liebe Leute, :-))

Ja das Progrämmchen, konnte ich gar nicht wahrnehmen;
ich war gar nicht zu Hause. Ich war ja
auf einer Geburtstagfeier.

Jetzt wird erst mal gut gefrühstückt,
dann hole ich das Labornetzgerät nach hier und den kleinen Junior.
Dann gebe ich die Hex-Zeichen ein; das sieht wirklich interessant aus. 
:-)

Die folgenden E-Mails muss ich erst noch lesen.
DANKSCHÖN für Eure Beiträge!
Mit lieben Grüßen
Günter K.
(ENK)

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Dann gebe ich die Hex-Zeichen ein; das sieht wirklich interessant aus.

Es ging ja eher darum zu VERSTEHEN was dieses Programm tut und warum.

Denn es nutzt diesmal deinen heiß geliebten TIMER. Das wäre die 
Gelegenheit für dich zu verstehen wie der funktioniert.

Vom HEX Zeichen eintippen hat man genau gar nichts. Es bringt einen 
nicht weiter.

Und deshalb sind die ganzen Programme und Aufgaben hier komplett für die 
Tonne weil DU sowieso niemals nicht auch nur versuchen würdest zu 
kapieren was diese Programme tun.

Der Christoph ist ein bisschen langsamer als der Rest hier und braucht 
deshalb ein paar Tage länger um das zu verstehen. Aber es wird kommen.

: Bearbeitet durch User
von Roland F. (rhf)


Lesenswert?

Hallo,
Cyblord -. schrieb:
> Der Christoph ist ein bisschen langsamer als der Rest hier und braucht
> deshalb ein paar Tage länger um das zu verstehen.

Es ist schon interessant zu lesen wie dich diese Diskussion triggert und 
du auch wirklich jeden, der etwas Konstruktives beträgt, in deiner 
typisch überheblich, arroganten Art und Weise angehst.

rhf

von Christoph M. (mchris)


Lesenswert?

Günter K. (enk)
31.05.2025 13:13
>Das Programm, welches ich schreiben werde heißt: Martinshorn.(asm)
>Allerdings leider nur, vorläufig NUR wie gewohnt in
>Maschinensprache mit beigefügten MNEMONICS.

Vielleicht wäre auch der typische Alarmton, wie man ihn bisweilen bei 
verschiedenen Autos hört, ein Versuch wert:
1
; Junior Computer Alarmton
2
;
3
; original version:
4
; 2025-05-31, mchris
5
6
; Programmstart
7
    .org $300    ; Startaddresse für den Assemblercode
8
9
    lda #$1      ; Lautsprecher an PORT B0 anschließen
10
    sta PBDD     ; PB0 als Ausgang setzen
11
    
12
loop:
13
    ldx #$FF    ; Ton bestimmende Konstante
14
    jsr chirp
15
    jmp loop
16
17
chirp:
18
    txa         ; x in Akku kopieren
19
    tay         ; Akku nach x kopieren
20
21
delay:
22
    dey         ; y runterzählen
23
    bne delay   ; wenn nicht Null wiederholen
24
25
    lda PBD     ; Lautsprecher lesen
26
    eor #1      ; Bit rumdrehen
27
    sta PBD     ; Lautsprecher schreiben
28
29
    dex         ; Frequenz erhöhen (Chirp-Effekt)
30
    bne chirp   ; Wiederholen, bis x = 0
31
    rts
32
33
; MOS6532 PIA Adressen
34
PBD  = $1A82
35
PBDD = $1A83

Hier noch der HEX-Code zum eintippen:
1
0300: A9 01 8D 83 1A A2 FF 20
2
0308: 0D 03 4C 05 03 8A A8 88
3
0310: D0 FD AD 82 1A 49 01 8D
4
0318: 82 1A CA D0 F0 60

Und nicht vergessen: Der Lautsprecher muss hier an Bit0 von PortB 
angeschlossen werden.

: Bearbeitet durch User
von Hans (ths23)


Lesenswert?

Roland F. schrieb:
> Es ist schon interessant zu lesen wie dich diese Diskussion triggert und
> du auch wirklich jeden, der etwas Konstruktives beträgt, in deiner
> typisch überheblich, arroganten Art und Weise angehst.
Naja, allerdings ist in seinen Aussagen schon ein Fünkchen Wahrheit. 
Über die Art und Weise wie sie vorgetragen werden kann man halt 
streiten. Man könnte es ganz gewiß auch anders formulieren.
Der Günter scheint mir schon ein bischen beratungsresistent zu sein. Es 
haben hier ihm schon einige gesagt, daß seine Vorgehensweise wohl nicht 
die ganz Richtige ist, um es mal vorsichtig auszudrücken. Am Ende ist 
jeder seines eigenen Glückes Schmied.

von Cyblord -. (cyblord)


Lesenswert?

Roland F. schrieb:
> auch wirklich jeden, der etwas Konstruktives beträgt, in deiner
> typisch überheblich, arroganten Art und Weise angehst.

Es hilft aber kein noch so konstruktiver Beitrag. Kapierst du das denn 
noch immer nicht?

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Cyblord -. schrieb:

> Es hilft aber kein noch so konstruktiver Beitrag.

Günter helfen die nicht, aber jedem anderen Interessierten.

DEINE Beiträge helfen dagegen tatsächlich niemandem, aber das wirst 
DU nie kapieren.

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

Klaus schrieb:
> DEINE Beiträge helfen dagegen tatsächlich niemandem

Was nicht stimmt, da ich am Anfang auch konstruktive Posts geschrieben 
habe die einem normalen Menschen auch weitergeholfen hätten.

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
> aber jetzt:
> 0300: A9 FF 8D 83 1A 8D 81 1A
> 0308: A9 B0 8D 80 1A A9 08 8D
> 0310: 82 1A 4C 12 03

Hallo Christoph M.

dass man sich da vertuen kann, das ist normal, wir sind Menschen.
Und genau darum, möchte ich die Beziehung zur Maschine behalten.
Ich stelle das jetzt mal 'n bisschen anders dar, und danach, noch was
anders. (Auch wenn es stupide erscheint.)

         8  9  A  B   C  D  E  F
         0  1  2  3   4  5  6  7
> 0300: A9 FF 8D 83  1A 8D 81 1A
> 0308: A9 B0 8D 80  1A A9 08 8D
> 0310: 82 1A 4C 12  03
         0  1  2  3   4  5  6  7
         8  9  A  B   C  D  E  F

Ich hatte auch schon mal Hexdumps gesehen, die die Zählung bis F
hintereinander geführt. - Jedoch, das soll kein meckern von mir sein.
Darum mache ich das jetzt so, wie Hans Otten. Also von 0300 bis 031C:
Nun Kopiere ich die Adressen ab 0301 neu dazu.  Aber ohne die Kopie
zu zerstören. Das ist jetzt ein neues Experiment, denn
(das klappte noch nicht.) Sondern nur auf dem Editor (die Liste kommt.)
Bei dem Editor muss man zuerst den Cursor setzen, sonst überschreibt er. 
Die entstandenen Doppelkopien werden gelöscht. - Nun wird es aber 
kompliziert, bis ich selbst ein Assembler geschrieben habe,
bis man auf diesem Wege den einfachen 6502-Computer verstanden hat.
Wenn er erweitert ist, kriegt er einen 48 x 64 Zeichen-Bildschirm(3x4)
und eine große Tastatur.
So klein das Hexdamp auch aussieht, als Liste doch zu groß.
Es kommt in den nächsten Beitrag, und in Exel.
Ich kann es erst verstehen, wenn ich weiß was der Rechner macht.
Nochmal DANKSCHÖN für Eure Beiträge!
Mit lieben Grüßen
Günter K.
(ENK)
Fortsetzung folgt,

von Günter K. (enk)


Lesenswert?

Hallo Liebe Leute,

befor ich die Liste schicke, eine Frage:
Was kann ich jetzt mit dem geladenen Programm tun?
Ich habe es eingetippt.
Liebe Grüße
Günter K.
(ENK)

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Ich kann es erst verstehen, wenn ich weiß was der Rechner macht.

GOLD!

> Was kann ich jetzt mit dem geladenen Programm tun?
> Ich habe es eingetippt.

DoppelGOLD!

Woher soll ich wissen was ich denke bevor ich höre was ich sage?

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


Lesenswert?

Christoph M. schrieb:
> Vielleicht wäre auch der typische Alarmton, wie man ihn bisweilen bei
> verschiedenen Autos hört, ein Versuch wert:
> ; Junior Computer Alarmton

Ja, hallo,
auch das ist gut, dann kommt als 2. der gleiche Ton.
Denn es geht ja ums Prinzip.
An Stelle des Timers mache ich was anderes,
und ich frage mich wirklich, wie Falk das schreibt,
ob der Klaus das kann.

Jetzt muss ich Mittag zubereiten,
bis später.
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Hallo Cyblord,

Cyblord -. schrieb:
> Woher soll ich wissen was ich denke bevor ich höre was ich sage?

Ja, das kann ich Dir auch nicht sagen. - Bitte nicht so.

Hallo Klaus,

Cyblord -. schrieb:
dass Klaus schrieb,
>> DEINE Beiträge helfen dagegen tatsächlich niemandem

Also Klaus,
gehe bitte nicht von Voraussetzungen aus, - die Du nicht kennst.
Liebe Grüße
Günter K.
ENK

von Thomas W. (datenreisender)


Lesenswert?

Günter K. schrieb:
> Hallo Liebe Leute,
>
> befor ich die Liste schicke, eine Frage:
> Was kann ich jetzt mit dem geladenen Programm tun?
> Ich habe es eingetippt.
> Liebe Grüße
> Günter K.
> (ENK)

<AD>0300<GO>

Das war's

von Günter K. (enk)


Lesenswert?

Ihr Lieben, an alle und
Cyblord -. schrieb:
> Vom HEX Zeichen eintippen hat man genau gar nichts. Es bringt einen
> nicht weiter.

Hallo Cyblord,

1. geht es z.Z. noch gar nicht anders,
2. habe ich die Beziehung zum Op-Code,
3. wobei ich wissen muss, dass der auf einem anderen System ganz anders 
ist.
4. so, läuft der Prozess ab.

Hallo Christoph M.
Christoph M. schrieb:
> von
>
>         Christoph M.
>         (mchris)
>       01.06.2025 11:30

Deine Beiträge sind gut!

Leider kann ich sie noch nicht vom PC zun JC übertragen.
Es ist in der Planung, aber dann ist es nicht mehr
der 6502 sondern ein 8086; eine Peripherie und eine Verbindungsleitung.
Leider habe ich keinen Lautsprecher parat.
Habe aber einen Kleinen gekauft, Verstärkerchen dazu; das muss ich
aber erst löten.

Und natürlich habe ich eine Idee 2 Töne mit dem Lautsprecher zu machen.
"Tuut - Tuut" mit Pause, ohne Timer. Ja, das geht.
Wenn Du es nicht schon eingegeben hast.
Es gibt die Möglichkeit, die Laufzeit des Tones zu ermitteln.
Ob man dabei einen 2. anderen Ton spielt keine Rolle.

Jetzt muss ich Mittag essen, und baue die Sachen an einen andern Ort 
auf.
Dabei mus ich ausschalten, und den Code neu eingeben.
Liebe Grüße
Günter K.
(ENK)

von Roland F. (rhf)


Lesenswert?

Hallo,
Cyblord -. schrieb:
> Kapierst du das denn
> noch immer nicht?

Wenn du andere Beiträge von mir gelesen hättest, wüsstest du das ich 
sehr wohl "kapiert" habe das Günter wohl nicht zum Ziel kommen wird.
Es ging mir in meinem Beitrag an dich auch gar nicht um Günter, sondern 
eher um dich und wie du hier Leute herunterputzt, die immer noch 
versuchen Günter zu helfen.

rhf

von Jobst M. (jobstens-de)


Lesenswert?

Cyblord -. schrieb:
> Kapierst du das denn noch immer nicht?

Es ist aber auch nicht gut, sich darüber aufzuregen.
Vielleicht solltest Du hier nicht mehr rein schauen!?

Ich amüsiere mich jedenfalls köstlich und hole jetzt nochmal Popcorn!

Gruß
Jobst

von Günter K. (enk)


Lesenswert?

Roland F. schrieb:
> Es ging mir in meinem Beitrag an dich auch gar nicht um Günter, sondern
> eher um dich und wie du hier Leute herunterputzt, die immer noch
> versuchen Günter zu helfen.

Günter K.(ENK) schreibt DANKESCHÖN! Und ich weiß und sehe,
dass Deine Sätze gut gemeint sind.

Roland F. schrieb:
> sehr wohl "kapiert" habe das Günter wohl nicht zum Ziel kommen wird.

Hallo Roland F.,
"... Günter wohl nicht zum Ziel kommen wird." - Wieso?
Natürlich lieber Roland F. ich habe das -Ziel- vor Augen, -
bin aber eher Maschinenorientiert, wovon mir allerdings, auch noch
'ne Ecke von fehlt. Die Maschinenorientierung ist wichtig!
Darum, weil wir Menschen sind, und acht geben müssen,
damit die Maschine nichts tut, was wir nicht überschauen können.
Aus diesem Grunde gehört der OP-Code (also Maschinen-Code),
fest zum Assembler-Code, mit seinem Assembler durch den Compiler dazu,
so dass, sogar der Kommentar und (zuvor dem wenn nötig auch die Zeiten) 
mitgenommen werden. Wie z.B.: "2 x Hupen" Wenn der Timer nicht benutzt 
wird, ist das interessant. Beispiele mit Zeiten von Euch, sah ich ja 
auch schon.
So, dass das -Ziel-, dass ein Computer der leichter zu verstehen bleibt.

Wenn jemand so in etwa schreibt: "... haufenweise Fachbegriffe 
rausboxt..."
zu dem sage ich jetzt einfach: Das ist Terminologie.

Fairerweise, schrieb jemand mit einem Bild dazu
Harald K. schrieb:
> und da
> das nur über Opcodes geht ...
>
> Denk dran:
>
> Das hier
> https://www.mikrocontroller.net/attachment/662153/junior3_04.jpg ist der
> Computer, mit dem Günter unterwegs ist.
(Zwichendurch denke ich an einen Satentransfer zu einem passenden PC.
 dieser hier kann das noch nicht.)
DANKESCHÖN!!
Liebe Grüße
Günter K.
(ENK) und das sende ich auch jetzt hier.

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Günter wohl nicht zum Ziel kommen wird." - Wieso?

Weil du bisher in 4 Monaten ungefähr so viel gelernt hast, wie ein 
Normalsterblicher in 10 Minuten.
Eigentlich sogar noch gar nichts. Stattdessen machst immer völlig 
sinnlose Dinge, z.B. Hex Codes eintippen.
Du kommst keinen Millimeter vorwärts, und merkst es nichtmal.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Hans schrieb:

> Naja, allerdings ist in seinen Aussagen schon ein
> Fünkchen Wahrheit.

Das ist KEIN Qualitätsmerkmal, denn das trifft auf
fast jede auch noch so bescheuerte Aussage zu. Mit
gutem Willen findet man immer das berühmte Fünkchen
Wahrheit...


> Über die Art und Weise wie sie vorgetragen werden
> kann man halt streiten.

Mit Verlaub: Nein.

Es gibt Menschen, die permanent andere erniedrigen, um
sich selbst zu erhöhen. Darüber gibt es m.E. nix zu
streiten -- das ignoriert man konsequent, wenn man klug
ist.


> Der Günter scheint mir schon ein bischen beratungsresistent
> zu sein.

Ach echt?!

Und das trifft auf die Meinungsführer im Forum, die auch die
Frage "Ich habe Probleme mit meiner Freundin im Bett..." mit
der herausgeplatzen Empfehlung: "Nimm einen Mikrocontroller!"
beantworten würden, wohl nicht zu?

Nein, nein, der alte Spruch gilt immer noch: Sachkunde ist
einer lebhaften Diskussion nur abträglich...


Sachkunde ist aber nicht (nur) der nerdige Technikerblick
mit Scheuklappen, sondern auch echtes Verständnis für die
Situation (den Wissensstand, die Fähigkeiten) des Gegenüber.
Nur mal ganz nebenbei.


> Am Ende ist jeder seines eigenen Glückes Schmied.

Und warum regt ihr euch dann so auf?
Handelt doch einfach danach und lasst ihn doch.

von Hippelhaxe (hippelhaxe)


Lesenswert?

Klaus schrieb:

> Cyblord -. schrieb:
>> Ist dir klar dass der TE sich absolut gar nichts aus
>> deinen kleinen Aufgaben macht, ja sie nicht mal wahrnimmt?
>
> Ist dir klar, dass wir uns absolut gar nichts aus deinen
> ständigen Stänkereien machen, weil der Cyblord halt mal
> so ist wie er ist?

Leider stimmt das nicht.

Wenn Dir die Stänkerein wirklich egal wären, würdest Du ihm
nicht anworten.

von Christoph M. (mchris)


Lesenswert?

Christoph M. schrieb:
> aber jetzt:
> 0300: A9 FF 8D 83 1A 8D 81 1A
> 0308: A9 B0 8D 80 1A A9 08 8D
> 0310: 82 1A 4C 12 03
Günter K. (enk)
01.06.2025 13:27
>Ich hatte auch schon mal Hexdumps gesehen, die die Zählung bis F
>hintereinander geführt. - Jedoch, das soll kein meckern von mir sein.

Oft ist es tatsächlich so, dass pro Zeile 16 Byte verwendet werden ( 
Zählung 0-F ). Für so ein kleines System wie den Junior Computer finde 
ich 8 Bytes pro Zeile aber deutlich übersichtlicher.

>befor ich die Liste schicke, eine Frage:
>Was kann ich jetzt mit dem geladenen Programm tun?
>Ich habe es eingetippt.

Du musst die Startadresse eintippen und dann 'go' drücken.
Am besten schaust du dir das Video ab Minute 26:20 hier an:

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

Was das Programm tut ist hier beschrieben:

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

Dort findest du auch die Übungsaufgabe.
Du kannst das Programm selbst von Hand nach deinem Excel-Prinzip neu 
übersetzen und z.B. die Zahl ändern.

von Cyblord -. (cyblord)


Lesenswert?

Hippelhaxe schrieb:
> Sachkunde ist aber nicht (nur) der nerdige Technikerblick
> mit Scheuklappen, sondern auch echtes Verständnis für die
> Situation (den Wissensstand, die Fähigkeiten) des Gegenüber.
> Nur mal ganz nebenbei.

Dann nutze das doch und helfe dem TE entsprechend seinen Fähigkeiten. 
Was hält dich ab?

>> Der Günter scheint mir schon ein bischen beratungsresistent
>> zu sein.
>
> Ach echt?!
>
> Und das trifft auf die Meinungsführer im Forum

Oder hört es bei dir beim whataboutism schon auf?

: Bearbeitet durch User
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Günter K. (enk)
31.05.2025 13:13

>Das Programm, welches ich schreiben werde heißt: Martinshorn.(asm)
>Allerdings leider nur, vorläufig NUR wie gewohnt in
>Maschinensprache mit beigefügten MNEMONICS.

Hier habe ich Dir mal eines als Vorlage gemacht.
Dieses mal habe ich als Grundlage das DDS-Verfahren verwendet, um mal 
was anderes zu machen. Dieses Verfahren war in den 80ern soweit ich weiß 
noch nicht so stark verbreitet.

https://de.wikipedia.org/wiki/Direct_Digital_Synthesis
1
; DDS Martinshorn
2
;
3
; https://de.wikipedia.org/wiki/Folgetonhorn
4
; In Deutschland wird die Ausführung des Folgetonhorns 
5
; durch DIN 14610 geregelt. Die Tonhöhe von verschiedenen 
6
; Hörnern darf sich unterscheiden, muss aber zwischen 360 
7
; Hz (ca. fis′) und 630 Hz (ca. dis″) liegen. 
8
; Das Tonintervall muss eine reine Quarte sein 
9
; (beispielsweise: a′ und d″) => Frequenzverhältnis 4:3
10
;
11
; 2025-05-02 mchris
12
13
; MOS6532 PIA Addresses
14
PBD  = $1A82
15
PBDD = $1A83
16
17
freq1 = 440  
18
freq2 = freq1*4/3  ;
19
20
; 16390 = 1second => fs = 16390
21
duration = 12130 ; 0.74 secons
22
23
.code
24
.org $300
25
26
    lda #$01
27
    sta PBDD     ; Set PB0 (connected to speaker) to output
28
29
loop:
30
    lda #<freq1
31
    sta frequency
32
    lda #>freq1
33
    sta frequency+1
34
35
    jsr tone
36
37
    lda #<freq2
38
    sta frequency
39
    lda #>freq2
40
    sta frequency+1
41
42
    jsr tone
43
44
    jmp loop
45
    ; *******************************************************
46
    ; tone:
47
    ;  inputs
48
    ;  - frequency (16bit)
49
    ;  - duration (16bit) 16390 = 1 sec
50
    ; *******************************************************
51
tone:
52
    ; dphase=frequency*2
53
    LDA frequency+1
54
    STA dphase+1
55
56
    LDA frequency
57
    STA dphase
58
59
    asl dphase
60
    rol dphase+1
61
62
    asl dphase
63
    rol dphase+1
64
65
    ; duration = sample count
66
    ldx #<duration ; low
67
    ldy #>duration ; high
68
    iny
69
toneloop:
70
    ; loop calibration delay
71
    nop
72
    nop
73
    nop
74
    nop
75
    nop
76
    nop
77
    nop
78
    nop
79
80
    ; Add dphase to phase (16-bit add)
81
    lda phase
82
    clc
83
    adc dphase
84
    sta phase
85
86
    lda phase+1
87
    adc dphase+1
88
    sta phase+1
89
90
    ; Use ROL to move bit 7 of phase+1 into bit 0 (speaker control)
91
    lda phase+1
92
    rol         ; Rotate left through carry
93
    rol
94
95
    and #$01     ; Keep only the lowest bit
96
    sta PBD      ; Output to speaker
97
98
    dex
99
    bne toneloop
100
    dey
101
    bne toneloop
102
103
    rts          ; Otherwise, return
104
105
; Variables
106
frequency:  .res 2
107
phase:      .res 2
108
dphase:     .res 2

und hier wie immer der Code zum Eintippen:
1
0300: A9 01 8D 83 1A A9 B8 8D
2
0308: 6B 03 A9 01 8D 6C 03 20
3
0310: 22 03 A9 4A 8D 6B 03 A9
4
0318: 02 8D 6C 03 20 22 03 4C
5
0320: 05 03 AD 6C 03 8D 70 03
6
0328: AD 6B 03 8D 6F 03 0E 6F
7
0330: 03 2E 70 03 0E 6F 03 2E
8
0338: 70 03 A2 62 A0 2F C8 EA
9
0340: EA EA EA EA EA EA EA AD
10
0348: 6D 03 18 6D 6F 03 8D 6D
11
0350: 03 AD 6E 03 6D 70 03 8D
12
0358: 6E 03 AD 6E 03 2A 2A 29
13
0360: 01 8D 82 1A CA D0 D8 88
14
0368: D0 D5 60 00 00 00 00 00
15
0370: 00

von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:
> Hier habe ich Dir mal eines als Vorlage gemacht.

DIESMAL wird er es sich anschauen. Ganz sicher!

von Günter K. (enk)


Lesenswert?

MChris: Martinshorn! - Oh, nun ist mein alter Text weg!
Ich hatte Text eingetippt, nach dem hören Deines Martinshorns war ich 
So. -begeistert-! -, dass mein Text verloren ging.
Jetzt schreibe ich vorher in WORD.
Cyblord -. schrieb:
> Christoph M. schrieb:
>> Hier habe ich Dir mal eines als Vorlage gemacht.
> DIESMAL wird er es sich anschauen. Ganz sicher!
Ja, DIESESMAL werde ich es mir anschauen. Ganz sicher!
Ich bin dabei. … … Sehr gut, fand ich Deinen Vorschlag
und auch von Thomas W im Beitrag #7883683:
> … und Christoph M. schrieb:
>> Man könnte z.B. die Ports so beschreiben, dass das erste
>> Siebensegment-Display eine '8' anzeigt.
>> Weiß jemand, wie man das macht?>
> Ja. Ich. Im Anhang findest Du den IO-Teil des Juniors.
> Das Display ist gemultiplexed und PB1-PB4 … PA0-PA6 … -
> waehlen die Stelle des Displays aus, PA0-PA6 waehlen … updaten.
> Die Beschreibung findest Du im Elektor-Junior Buch II, p. 131.
> Die Routinen SHOW und CONVD findest Du auch erklaert. Und die
> Beschreibung ist sogar recht gut, selbst ich habe das
> damals als 16-Jaehriger verstanden.
Günter sagt: Mit 16 war ich wie ein 12-Järiger.
> Fuer Guenter ist das nix, … die Ton-Erzeugung ab p.45 im
> gleichen Buch bekommt er ja auch nicht hin. ---- P.S.:
> Das war ein wenig falsch oder vereinfacht: Man kann mit
> Auswahl von Pb1-4 eine Stelle auswaehlen und dann ein Pattern auf
> dieser Stelle anzeigen. Aber: Es ist eigentlich fuer Multiplexing
> gerechnet, die 68Ohm-Widerstaende sind etwas zu klein,
> und die Stroeme in das Display etwas zu gross.
Günter sagt: Das verstehe ich zwar: - Multiplexing braucht weniger 
Strom; aber nicht das Ganze! - Was ich auch besonders gut von Euch finde 
ist nicht nur Eure LEISTUNG!! - Sondern, dass ich keine Meckereien sehe! 
Das ist: Sehr gut! Fortsetzung folgt.

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> DIESESMAL werde ich es mir anschauen. Ganz sicher!

Und nichts davon verstehen. Der Algorithmus ist alles andere als 
nachvollziehbar oder gar selbsterklärend.
Günter, bleib erst mal bei einer einzelnen Ton- oder Anzeigenprogramm. 
Damit hast du für den Rest von 2025 genug zu tun.

von Günter K. (enk)


Lesenswert?

Fortsetzung, erstmal das hier:

         0  1  2  3   4  5  6  7   8  9   A  B   C  D  E  F
> 0300  A9 FF 8D 83  1A 8D 81 1A  A9 B0  8D 80  1A A9 08 8D
> 0310: 82 1A 4C 12  03
         0  1  2  3   4.  Man hat sich ja so, leicht vertan!

Ich fragte, in etwa: "Was soll ich da machen?"
Thomas W. schrieb:
> von Thomas W. (datenreisender) antwortete: Siehe oben.
DANKE für EURE Aufmerksamkeit!
Was ich sonst noch in dem Zusammenhang tat,
sage ich jetzt schon mal:
1.: Ich versuchte die Speicher-ICs:
     NEC ROY 218-045
    IRLAND µPD2114LC     zu kaufen. Ich konnte sie nicht bekommen.

2.: Teile für den Aktiv-Lautsprecher.

Mal sehen was passiert wenn ich das eingebe, siehe oben.
Ob ich das (siehe oben) verstehen werde,
weiß ich jetzt noch nicht.
Mit lieben Grüßen
Günter K.
(ENK)

Nachtrag:
Ich gebe in den PC den OP-CODE ein, dann die MNEMONICS,
dann suche ich die vermuteten MARKS raus danach die LABELS;
wenn mir auch danach, etwas für den REM einfällt, trage
ich auch diese ein und schaue in Deinem Assembler-Programm nach ob da 
auch noch etwas steht.
Falls die LEDs zu hell sind,
Oder der Strom über 0,7 A geht, drücke ich RESET.

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich gebe in den PC den OP-CODE ein, dann die MNEMONICS,
> dann suche ich die vermuteten MARKS raus danach die LABELS;
> wenn mir auch danach, etwas für den REM einfällt, trage
> ich auch diese ein und schaue in Deinem Assembler-Programm nach ob da
> auch noch etwas steht.

Du machst alles falsch. ALLES!

von Günter K. (enk)


Lesenswert?

Thomas W. schrieb:
> Es ist auch ganz gross in Kapitel 3 ("Programmieren") auf p.57 des
> Junior-Computer Buch I erklaert.

Wer sagt, dass ich das nicht können soll?
Wolfgang R. hat mir doch so ein ähnliches Programm geschickt,
und es hatte funktioniert. - Ob ich es als ein Ganzes verstanden
habe, ist eine andere Sache. - Immerhin weiß ich, das die BITs
für die Segmente invertiert werden müssen.

Wenn man aus einer 3 eine 4 machen will,
geht das wie bei einem Streichholz-Rätsel.
Es kommt daraf an, wie die 8 Bit, zugordnet sind.
Auch wenn das sonst üblich anders ist,
muss ich vorher wissen, wie die Anschlüsse liegen,
Soetwas lerne ich mir nicht auswendig, es sei denn,
- man hält sich an diese Norm; dann auch nicht
unbedingt, es sei denn als Vorschrift.
 __
|__   |__|
|__ ,    |  nun könnte ich die Bit-Nummern dabeischreiben,

das tue ich aber nicht.
Mit lieben Grüßen
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Thomas W. schrieb:
> Es ist auch ganz gross in Kapitel 3 ("Programmieren") auf p.57 des
> Junior-Computer Buch I erklaert.

Wer sagt, dass ich das nicht können soll?
Wolfgang R. hat mir doch so ein ähnliches Programm geschickt,
und es hatte funktioniert. - Ob ich es als ein Ganzes verstanden
habe, ist eine andere Sache. - Immerhin weiß ich, das die BITs
für die Segmente invertiert werden müssen.

Wenn man aus einer 3 eine 4 machen will,
geht das wie bei einem Streichholz-Rätsel.
Es kommt daraf an, wie die 8 Bit, zugordnet sind.
Auch wenn das sonst üblich anders ist,
muss ich vorher wissen, wie die Anschlüsse liegen,
Soetwas lerne ich mir nicht auswendig, es sei denn,
- man hält sich an diese Norm; dann auch nicht
unbedingt, es sei denn als Vorschrift.
 __
|__   |__|
|__ ,    |  nun könnte ich die Bit-Nummern dabeischreiben,

das tue ich aber nicht.
Mit lieben Grüßen
Günter K.
(ENK)

Klaus schrieb:
> Günter K. schrieb:
>> Nachher kaufe ich noch weitere 7 Schälterchen
>
> Sag mal, willst Du uns eigentlich verarschen? Liest Du nicht was wir
> schreiben?
> Du schaffst es nicht, 2 Töne hintereinander abzuspielen, willst aber nun
> wieder 15 Schritte weiter gehen?
> Nochmal für dich ganz klar:
>
> DU SCHAFFST DAS NICHT.

von Günter K. (enk)


Lesenswert?

Günter K. schrieb:
> Klaus schrieb:
>> Günter K. schrieb:
>>> Nachher kaufe ich noch weitere 7 Schälterchen
>>
>> Sag mal, willst Du uns eigentlich verarschen? Liest Du nicht was wir
>> schreiben?
>> Du schaffst es nicht, 2 Töne hintereinander abzuspielen, willst aber nun
>> wieder 15 Schritte weiter gehen?
>> Nochmal für dich ganz klar:
>>
>> DU SCHAFFST DAS NICHT.

Falk B. schrieb:
> Klaus schrieb:
>> DU SCHAFFST DAS NICHT.
>
> Du auch nicht.
>
> Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen,
> Erfahrung?"
Mit lieben Grüßen
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Zitate ohne eigenen Text und Doppelposts. Geh lieber schlafen. Gute 
Nacht.

von Günter K. (enk)


Lesenswert?

Ihr Lieben, an alle.

Günter K. schrieb:
von Klaus (feelfree)  03.06.2025 00:28
> Klaus schrieb:
>> Günter K. schrieb:
>>> Nachher kaufe ich noch weitere 7 Schälterchen
>>
>> Sag mal, willst Du uns eigentlich verarschen? Liest Du nicht was wir
>> schreiben?
>> Du schaffst es nicht,
>>> Du schaffst es nicht, 2 Töne hintereinander abzuspielen, willst aber nun
>>> wieder 15 Schritte weiter gehen?
>>> Nochmal für dich ganz klar:
>>>
>>> DU SCHAFFST DAS NICHT.

Bei den 2 Tönen, muss ich die Zeiten einhalten;
bei mehreren Schaltern, kann ich die Zeit selber bestimmen.

Und was meinst Du mit "uns"? - Wen willst Du "mit" einbeziehen?
Meinst Du Dich selber?
Mit lieben Grüßen
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> bei mehreren Schaltern, kann ich die Zeit selber bestimmen.

Und, hast du auch schon eine Idee mit welchen Befehlen du die Taster 
abfrägst?
An welchen Portpins die Tasten angeschlossen werden?
Wie du in deinem Programm die Zuordnung von Taste zu Tonhöhe 
bewerkstelligst?

Nein? Egal, Christoph wird dir den Hexcode liefern, und bis Weihnachten 
schaffst du es auch ihn fehlerfrei einzutippen.

von Günter K. (enk)


Lesenswert?

Ihr Lieben,

Klaus (feelfree) schrieb:
> Und, hast du auch schon eine Idee mit welchen Befehlen du die Taster
> abfrägst?

Und Günter K. antwortet:
Hallo Klaus (feelfree)
Zu Deiner Frage sage ich: Ja.

>
> An welchen Portpins die Tasten angeschlossen werden?
 Antwort: Ja.
> Wie du in deinem Programm die Zuordnung von Taste zu Tonhöhe
> bewerkstelligst?
Du meinst: "Wie Du in Deinem Programm, die Zuordnung
zur Tonhöhe bewerkstelligst?
Antwort: Ja.

>
> Nein? Egal, Christoph wird dir den Hexcode liefern, und bis Weihnachten
> schaffst du es auch ihn fehlerfrei einzutippen.

Hallo Klaus  (feelfree)
Hoffendlich - ? - -Moment- bitte, :-)

Hallo Christoph M.,
Bitte schreibe mir noch kein Programm, - dass Du das kannst,
glaube ich sowieso. Ein solches Programm werde ich alleine schreiben.
Natürlich muss ich noch sehr viel lernen das ist klar.
Bin auch nicht sicher, obs mir gelingt, aber ich versuche es.

Wie ich mich erinnere, hatte ich das Programm von p.57
so in etwa abgetippt, - das richtige Ergebnis war da;
natürlich versuche ich auch es zu verstehen, warum das so ist.
Solche Artikel werde ich öfter lesen.
Gute Nacht liebe Leute
mit lieben Grüßen
Günter K.

: Bearbeitet durch User
von Alejandro P. (alejandro_p79)


Lesenswert?

2114 kreigt man bei aliexpress, hab vor nicht so Lange 10 Stück gekauft. 
Die funktionieren auch :)

von Günter K. (enk)


Lesenswert?

Abschrift vom IC:
 _________________
|  NEC ROY 218-045  |
| IRLAND µPD2114LC  |
|___________________|

Hallo Alejandro P.

Alejandro P. schrieb:
> 2114 kriegt man bei aliexpress, hab vor nicht so Lange 10 Stück
> gekauft.
> Die funktionieren auch :)
sind diese mit den obigen Chips kompatibel?
Vielen Dank für Deine Nachricht.
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Textberichtigung für richtige Farben der richtigen Zuordnung,
ich hatte diese nicht vertauscht.
Das Folgende passte nicht in den Kontext vom 03.06.2025 00:28

Günter K. schrieb:
> Falk B. schrieb:
>> Klaus schrieb:
>>> DU SCHAFFST DAS NICHT.
>>
>> Du auch nicht.
>>
>> Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen,
>> Erfahrung?"
> Mit lieben Grüßen
> Günter K.
> (ENK)
Bis hier ist der noch stehene Text unveändert auf diesem Blatt.

Demnach vermute ich das Folgende anders:
> Falk B. schrieb:
>>> Klaus schrieb:
>>> DU SCHAFFST DAS NICHT.
Günter schreibt: Das lese ich nun schon oft von Dir.
Folglich muss Falk geschrieben haben:
> Du auch nicht.
Frage an Falk B., war das so?
die folgende Zeile hatte keinen LINK hier.
> Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen,
> Erfahrung?"
> Mit lieben Grüßen
> Günter K.
> (ENK)  PS:
Günter schreibt weiter:
Klaus (feelfree) Wenn Du mich damit anspornen willst ist das gut,
aber bitte höre auf damit, mir dem Mut rauben zu wollen!

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Wenn Du mich damit anspornen willst ist das gut,
> aber bitte höre auf damit, mir dem Mut rauben zu wollen!

Anfangs wollte ich dich noch anspornen.
Und dir helfen.
Zum Beispiel mit diesem Beitrag:

Klaus schrieb:
> Verändere/erweitere das Programm mit den 440Hz schrittweise:
>
> - dass es eine andere Tonhöhe abspielt
> - dass es den Ton z.B. nur eine bestimmte Zeit abspielt
> - dass es 2 verschiedene Töne hintereinander abspielt
>
> Damit wirst Du ein paar Tage beschäftigt sein.
> Dann kommt:
>
> - dass alle Tonhöhen einer Tonleiter abgespielt werden
> - dass alle Noten unabhängig von der Höhe ca. gleich lang abgespielt
> werden
>
> Wieder ein paar Tage bis Wochen.

NICHTS davon hast Du in den letzten 2 Wochen gemacht.
Stattdessen bestellst Du RAMs, Taster und sonstiges Gedöns mit dem Du 
absolut nichts anfangen wirst.

Wenn Du so weitermachst, kommst Du nicht nur nie zum Ziel, sondern nie 
auch nur einen Millimeter weiter.

von Peter D. (peda)


Lesenswert?

Günter K. schrieb:
> Aber auch einen passenden Emulator der CPU auf einen anderen Computer.

Da warst Du doch fast schon auf dem richtigen Weg, aber dann bist Du 
leider falsch abgebogen.
Emulatoren hat man früher mal benutzt, wo die Programme noch in PROM 
oder OTP gespeichert wurden. Heute benutzt man Simulatoren und Debugger.

Allen gemeinsam ist eine komfortable Umgebung, wo man die Programme 
bequem testen kann. Und damit kann man auch wirklich lernen, was eine 
CPU bis ins kleinste Detail intern macht.
Ob Akku, Flags, Register, Stack, Codesegment, Datensegment, Timer, UART, 
IO-Pins, alles hat man jederzeit bequem im Blick. Und Laufzeiten 
(CPU-Zyklen) von Programmteilen kann man sich natürlich auch anzeigen 
lassen.

Dein Spielzeug mit den Tasten und 7-Segment Anzeigen erlaubt dagegen nur 
einen winzigen Blick durchs Schlüsselloch. Der Großteil läuft im 
Verborgenen ab.
Da würden selbst junge Leute, die noch viel mehr flinke Neuronen als 
unsereiner haben, bald das Handtuch werfen. Zumindest würde sie schnell 
die Unsinnigkeit einsehen und sich einfach passendere Umgebungen aus dem 
Internet laden.

von Thilo L. (bc107)


Lesenswert?

Günter K. schrieb:
> Textberichtigung für richtige Farben der richtigen Zuordnung,
> ich hatte diese nicht vertauscht.
> Das Folgende passte nicht in den Kontext vom 03.06.2025 00:28

Biting my tongue... biting my tongue...

Ich hab's mir vor einigen Tagen geschworen und hier kundgetan: ich werde 
diesen Thread nicht mehr kommentieren. Aber es fällt verdammt schwer. 
Der natürliche Masochismus treibt mich allerdings immer wieder dazu, 
Updates in diesem Thread zu verfolgen - und es zeigt schon Wirkung: 
mittlerweile schaue ich mir auch Heidi Klum's "Germany's next top model" 
mit Wonne an ;-)

von Klaus (feelfree)


Lesenswert?

Peter D. schrieb:
> Allen gemeinsam ist eine komfortable Umgebung, wo man die Programme
> bequem testen kann. Und damit kann man auch wirklich lernen, was eine
> CPU bis ins kleinste Detail intern macht.

Ich habe gerade mal getestet, wie lange es dauert, ein allererstes 
Programm auf einer virtuellen 6502 zu schreiben, zu assemblieren und zu 
starten:

Man gehe auf https://www.masswerk.at/6502/assembler.html
und gebe in das src Fenster links oben folgenden Code ein:
1
      ldx #10
2
loop:
3
      dex
4
      bne loop

Dann drücke man auf die Schaltflache "assemble", anschließend auf "Show 
in emulator", und dann kann man per "Single Step" Zeile für Zeile durch 
das Programm schreiten und dabei beobachten, was die Register und Flags 
so machen. Also das was Günter eigentlich verstehen will, was eine CPU 
wie die 6502 so macht.

Das Ganze hat deutlich unter einer Minute gedauert. Eine Änderung geht 
in weniger als 10 Sekunden.

Günter tippt aber lieber stundenlang Hex-Codes in seinen Junior ein, die 
er nicht versteht und wenn es nicht funktioniert hat er keine Chance 
rauszubekommen warum.

Kann man so machen. Wenn man sonst alles sinnlose schon gemacht hat in 
seinem langen Leben.

: Bearbeitet durch User
von Thomas W. (datenreisender)


Lesenswert?

Günter K. schrieb:

> Wie ich mich erinnere, hatte ich das Programm von p.57
> so in etwa abgetippt, - das richtige Ergebnis war da;
> natürlich versuche ich auch es zu verstehen, warum das so ist.
> Solche Artikel werde ich öfter lesen.

Hattest Du das Prograemmchen eingetippert? Und hattest Du das Ergebnis 
0x0a bekommen?

von Thomas W. (datenreisender)


Lesenswert?

Peter D. schrieb:
> Allen gemeinsam ist eine komfortable Umgebung, wo man die Programme
> bequem testen kann. Und damit kann man auch wirklich lernen, was eine
> CPU bis ins kleinste Detail intern macht.

Ich haette in den 80'er gemordet fuer einen In-circuit-Debugger (heute 
fuer einen 10'er)

Vor allen Dingen wo die 6502 extrem dokumentiert ist, bei der 6502 z.B. 
mit dem Assembler/Simulator bei masswerk.at, der Visuelle Simulator bei 
http://www.visual6502.org/, Buecher (einfach mal bei 
https://archive.org/search?query=6502  gucken, die haben mehr Buecher 
als ich).

Und zum Anfassen: https://monster6502.com/

Und eine Sache muss man auch sehen: Wenn man Technologie der Disco-Zeit 
verwenden will, muss man auch Werkzeuge der Disco-Zeit benutzen. Und das 
ist manchmal sehr sehr muehsam.

Ich habe ein paar Vaxes hier zu stehen, betreiben ist bei den aktuellen 
Strompreis keine richtige Option mehr. Der C-Compiler (Stand: 1990) ist 
natuerlich alt, Fortran 77 ist das hoechste der Gefuehle. Die 
Entwicklungssystem waren 1990 toll, heute inakzeptabel antik. Das 
groesste Problem ist aber dass das Fachwissen ausstirbt (im woertlichen 
Sinn).

von Klaus (feelfree)


Lesenswert?

Thomas W. schrieb:
> Das
> groesste Problem ist aber dass das Fachwissen ausstirbt

Für wen ist es ein Problem, dass heute keiner mehr weiß, wie eine PDP11 
oder VAX funktioniert?

von Günter K. (enk)


Lesenswert?

Peter D. schrieb:
> Ob Akku, Flags, Register, Stack, Codesegment, Datensegment, Timer, UART,
> IO-Pins, alles hat man jederzeit bequem im Blick. Und Laufzeiten
> (CPU-Zyklen) von Programmteilen kann man sich natürlich auch anzeigen
> lassen.

Peter D. schrieb:
> erlaubt dagegen nur
> einen winzigen Blick durchs Schlüsselloch.
Ja, ich weiß wie das gemeint ist, also wirklich wenig.

Ja, ich habe letzten quasi einen 6510: "von innen gesehen",
und den konnte man sogar, "in Betrieb" sehen; Natürlich nur
chematisch (aber wie wirklich) auf dem Bidschirm. - Also was es da zu 
sehen gibt, ist viel zu viel. Viele, viele Transitoren und interne 
"Leiterbahnen"
Pastel-Farben, latend farblich unterschieden. Ein großes Erlebnis, war 
das allemal! - Sogar die Anschlüsse konnte man ansprechen, nur verstehen 
kann man das nicht.
Also ich könnte mir vorstellen, das ein hochinteligenter -nur- darauf, 
speziell seinen Doktor oder Professor macht. -

Ich selber aber, bin sogar unterschult, in gewisserweise aus 
Schiksalsgründen. - Und dennoch, ich kann zwar kein Englisch oder viel 
zu wenig. Aber einige Fachwörter sind nun mal nötig. Es ist aber 
wichtig,
was der Computer bzw. CPU und Controller macht.

Doch ich las:
Thomas W. schrieb:
> Das
> groesste Problem ist aber dass das Fachwissen ausstirbt (im woertlichen
> Sinn). - Und das darf nicht passieren.
Wir brauchen überhaupt Leute,
die, den Menschen überhaupt eine
funktionsfähige Sprache für Menschen gibt.
Das ist nicht verwirrt! - Aber eine solche Sprache,
gibt es noch gar nicht, und auch keine Menschen, die uns das beibringen.
-Aber für die Zukunft brauchen wir das!- Ich wiederhole:
Es gibt keine Menschliche Sprache die funktionell funktioniert,
außer die Programmiersprachen für Maschinen, wie
Assembler und höhere Programmiersprachen.
Wir Menschen sollten das aber auch für den Alltag bekommen.
Und ich könnte mir vorstellen, das diese Menchen aus dem 
Informatik-Bereich kommen. Das ist gleichsam Philosophie, Wissenschalft, 
Religion u. Politik.

Vor kurzem (der letzten Zeit) wusste ich noch nicht mal,
dass Assembler einen Compiler braucht.
Programmier Hochsprachen sind mir dadurch zu hoch,
weil sie so weit, von der Maschinen-Materie weg ist.

Ich bin nicht verwirrt,

auch wenn es durch meine Ausdrucksweise so erscheint. Übrigens der IBM 
360/20 arbeitete schon stellenweise mit 64 BIT als interne 'Register'.
Von mir hochgelobt ist der schon leider verstorbene Wolfgang Back und
ebenso der Professor Joseph Weizenbaum! Er schrieb das Buch:
Computermacht und Gesellschaft. Der PET hatte nur 8K; den hatte ich 
erweitert auf 32K usw..
Liebe Grüße
Günter K.
(ENK)
PS.:
Bitte helft mir,
auf der untersten Ebene
Maschinentechnisch am Ball
(zu kommen und) bleiben.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Bitte helft mir,
> auf der untersten Ebene
> Maschinentechnisch am Ball
> (zu kommen und) bleiben.

5 Beiträge weiter oben habe ich ein Programm mit sage und schreibe 
**drei** Anweisungen gepostet und eine Anleitung dazu, wie du dieses 
Ausführen kannst.
Mach einfach und frag nach, wenn du was nicht hinbekommst oder nicht 
verstehst.

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,
hallo lieber Klaus
Klaus schrieb:
> Mach einfach und frag nach, wenn du was nicht hinbekommst oder nicht
> verstehst.

Ok. Dankeschön!
Mit lieben Grüßen
Günter K.
(ENK)

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Ich glaube, die ganze Diskussion ist eine Neuinterpretation von HURZ.

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

Schönen Tag euch allen!

von Günter K. (enk)


Lesenswert?

Thomas W. schrieb:
> Ich habe ein paar Vaxes hier zu stehen, betreiben ist bei den aktuellen
> Strompreis keine richtige Option mehr. Der C-Compiler (Stand: 1990) ist
> natuerlich alt, Fortran 77 ist das hoechste der Gefuehle. Die
> Entwicklungssystem waren 1990 toll, heute inakzeptabel antik. Das
> groesste Problem ist aber dass das Fachwissen ausstirbt (im woertlichen
> Sinn).

Hallo Thomas W., hallo Leute,
bitte was sind Vaxes?
Mit lieben Grüßen
Günter K.
(ENK)

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


Lesenswert?


von Thomas W. (datenreisender)


Lesenswert?

Günter K. schrieb:
> Thomas W. schrieb:
>> Ich habe ein paar Vaxes hier zu stehen, betreiben ist bei den aktuellen
>> Strompreis keine richtige Option mehr.
[snip]
>
> Hallo Thomas W., hallo Leute,
> bitte was sind Vaxes?
> Mit lieben Grüßen
> Günter K.
> (ENK)

https://blog.hnf.de/das-zeitalter-der-vax/

Am Ende des Beitrags sind die VaxStation 3100 und 4000 (unter dem 
Monitor), so etwas habe ich hier stehen. Eine MicroVax II (im 
Space-heater-Cabinet) habe ich auch noch.

Bitte keine Sinn-Frage.

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


Lesenswert?

Thomas W. schrieb:
> Hattest Du das Prograemmchen eingetippert? Und hattest Du das Ergebnis
> 0x0a bekommen?
(... glaube fast, mich an 0x0A zu erinnern, vielleicht anders 
modifiziert)

Hallo Thomas W.
leider nein. Auf 0x00F3, also im Akku, habe ich: 0x42.
Ich weiß aber, dass der Rechner richtig rechnet.
In verschiedene Variationen vom
Addiern, Subtrahieren, auch logisch über die ALU.
Immer kam das richtige Ergebnis heraus;
auch die dezimale Addition funktioniert.

Wenn ich die Speicherbausteine ausgetauscht habe,
oder sonstige, probiere ich es nochmal aus.
Es liegt nicht am Akku, denn in anderen Fällen
stand dort das richtige Ergebnis.

Ich wollte doch, nochmal beantworten,
Danke für Deine anderen Informationen.
Mit lieben Grüßen
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> 0x42

Da ist sie ja, die Antwort auf alle Fragen. Besser kann es gar nicht 
mehr werden.

von Jörg R. (solar77)


Lesenswert?

Zum Thema habe ich nichts beizutragen, aber der 1000te Kommentar in 
diesem Thread ist meiner😀🎇🎆

von Klaus F. (klaus27f)


Lesenswert?

Jörg R. schrieb:
> Zum Thema habe ich nichts beizutragen, aber der 1000te Kommentar in
> diesem Thread ist meiner😀🎇🎆


Ja,
irre hier

von Günter K. (enk)


Lesenswert?

Arduino F. (Firma: Gast) (arduinof) 04.06.2025 22:49 antwortete gut.
 WIKIPEDIA antworte: "Dieser Artikel existiert nicht.".
Dankeschön für Deine Antwort!

von Klaus (feelfree) 05.06.2025 01:17
Günter K. schrieb angeblich:
> 0x42
Nein, - ich habe mehr dazu geschrieben und erklärt.
Bitte lese und schreibe bitte richtig.
Bitte -keine- Sticheleien mehr!
Mit lieben Grüßen
Günter K.

von Cyblord -. (cyblord)


Lesenswert?

Willst du nicht vielleicht auch mal die Zitatfunktion korrekt nutzen? So 
um geistig fit zu bleiben z.B.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Bitte lese und schreibe bitte richtig.

Das sagt genau der Richtige. Kam von dir schon ein einziger Beitrag mit 
korrekten Zitaten?

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


Lesenswert?

Günter K. schrieb:
> Arduino F. (Firma: Gast) (arduinof) 04.06.2025 22:49 antwortete
> gut.
>  WIKIPEDIA antworte: "Dieser Artikel existiert nicht.".
> Dankeschön für Deine Antwort!
Wenn du vernünftig zitieren würdest, könnte ich auch einen korrigierten 
Link schicken, aber so weiß ich nicht welchen Beitrag/Link du meinst du 
meinst.

von Günter K. (enk)


Lesenswert?

Arduino F. schrieb:
> Wenn du vernünftig zitieren würdest, könnte ich auch einen korrigierten
> Link schicken, aber so weiß ich nicht welchen Beitrag/Link du meinst du
> meinst.

Lieber Arduino F.
Du antwortestest, ja schon richtig auf den LINK:

An Thomas W. schrieb ich im Beitrag #7886885:
>> bitte was sind Vaxes?
warum soll ich das wiederholen?
Ich hätte diese Frage ja nicht gestellt, wenn ich es gefunden hätte.

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

von Peter D. (peda)


Lesenswert?

Cyblord -. schrieb:
> Willst du nicht vielleicht auch mal die Zitatfunktion korrekt nutzen?

Ja, das stört schon sehr, wenn jemand beim Zitat die zitierte URL immer 
extra rauslöscht.
Dann muß man erst umständlich suchen, woher das Zitat stammt.

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


Lesenswert?

Auf die VAX Frage hab ich dir einen Link geschickt!
Der Link funktioniert.

Arduino F. schrieb:
> Günter K. schrieb:
>> bitte was sind Vaxes?
> https://de.wikipedia.org/wiki/Virtual_Address_eXtension

Also:
Was willst du von mir?

von Gunnar F. (gufi36)


Lesenswert?

Cyblord -. schrieb:
> bleiben

bleiben?

von Cyblord -. (cyblord)


Lesenswert?

Gunnar F. schrieb:
> Cyblord -. schrieb:
>> bleiben
>
> bleiben?

Das habe ich so formuliert da ich ein netter und positiver Mensch bin...

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Das habe ich so formuliert da ich ein netter und positiver Mensch bin...

Um auch mal positiv zu formulieren: in deiner Selbstwahrnehmung steckt 
großes Potential. Zur Verbesserung.

von Gunnar F. (gufi36)


Lesenswert?

Wo ist Günter? Aufgehängt in einer Endlosschleife oder war mit 1000 
Beiträgen sein Ziel erreicht?

von Günter K. (enk)


Lesenswert?

Gunnar F. schrieb:
> Wo ist Günter? Aufgehängt ... Ziel erreicht?
:-)))
Ich wünsche Euch allen frohe und gesgnete Pfingsten!

Zunächst hänge ich noch etwas über die Bücher.
Alles Gute
Günter K.
(ENK)
:-)

von Cartman E. (cartmaneric)


Lesenswert?

Günter K. schrieb:
 > Zunächst hänge ich noch etwas über die Bücher.

Eine Lampe?

von Günter K. (enk)


Lesenswert?

Cyblord -. schrieb:      am 31.05.2025 um 17:16

Cyblord -. schrieb:
> ... dass beim TE kein Licht brennt.

:-)))   Doch bei mir brennt Licht, sonst säße ich jetzt im Dunkeln.
        Ich versuche gerade die Zuordnung der zugehörigen Bitmuster
        für die 7-Segment-Anzeige heraus zu bekommen.

Es ist klar, wenn ich einfach die Zahlen abschreibe kommt das Richtige 
heraus. Zwar sehe ich, dass die Bitplätze die eine NULL tragen, das 
Segment
einschalten. Der Punkt müsste BIT 7 sein.  Nach dem JC-II-Buch, geht es 
vom
oberen Querbalken im Uhrzeigersinn weiter und in der Mitte ist dann BIT 
6.
Von der Zahlenmäßigen Reihe, muss man 1 abziehen, um den Bit-Platz zu 
haben.
Ich probiere die "9" zB.: 7654 3210, Dann ist BIT 7 der PUNKT.
                          1001 0000  BIT 6 der mittlere Querbalken.
                                und  BIT 5 oben links, und
                               0123  liegen Kreis. Bit 4 = 1 also aus.
Danke für die Idee der Aufgabe. Man hat inzwischen auch schon Buchstaben 
ausgetüftelt. :-)
Noch weiterhin frohe Pfingstzeit
Günter K.
(ENK)

: Bearbeitet durch User
von Thomas W. (datenreisender)


Lesenswert?

Guenter, -

finde ich aber gut, dass Du mit Deiner "Sturheit" solange durchgehalten 
hast (angefangen war das alles im Okt.24). Schoen.

Ich muss auch gestehen: Ich habe in den letzten drei Monaten haeufiger 
in die Junior-Computer-Buecher nachgeschlagen als in den letzten 35 
Jahren :-)

Mein aktuelles Bastelprojekt ist ein ESP32C6, ein 32-bit-RISC-Prozessor 
mit 512Kb RAM (Du hast ein ganzes kB), Clockrate von 160MHz (Du hast ein 
ganzes Megahertz), kostet 5EUR. Es ist schon unglaublich, was in den 
letzten 40 Jahren an Fortschritt in der Composterei passiert ist.

Weiter machen!

von Günter K. (enk)


Lesenswert?

Thomas W. schrieb: Am 09.06.2025
> Guenter, -

Thomas W. schrieb:
> Es ist schon unglaublich, was in den
> letzten 40 Jahren an Fortschritt in der Composterei passiert ist.
>
> Weiter machen!

DANKESCHÖN!
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Günter K. schrieb:
> Lieber Arduino F.
> Du antwortestest, ja schon richtig auf den LINK:
Hiermit bedanke ich mich noch mal, das hattest Du ja wirklich gut 
gemacht,
und ich will in -diesem Falle- nichts mehr von Dir.
Ich wünsche Dir noch weiterhin viel Erfolg
bei Deinen Projekten.
Liebe Grüße
Günter K.
(ENK)
:-)

PS.:
Wenn irgendwo, andere was löschen,
kann ich nachträglich nicht ändern,
und kann es auch nicht überschauen,
Entschuldige bitte, wenn das passiert.

von Jobst M. (jobstens-de)


Lesenswert?

Thomas W. schrieb:
> ein 32-bit-RISC-Prozessor
> mit 512Kb RAM (Du hast ein ganzes kB), Clockrate von 160MHz (Du hast ein
> ganzes Megahertz), kostet 5EUR. Es ist schon unglaublich, was in den
> letzten 40 Jahren an Fortschritt in der Composterei passiert ist.

Jo. Aber ein Prozessorsystem (kein µC), was der TO ja benutzt, hatte die 
von Dir genannten Daten schon vor 30 Jahren. Kostete damals allerdings 
mehr. So ein 6502 zu seiner Zeit aber auch.

Gruß
Jobst

von Peter D. (peda)


Lesenswert?

Günter K. schrieb:
> Ich versuche gerade die Zuordnung der zugehörigen Bitmuster
>         für die 7-Segment-Anzeige heraus zu bekommen.

Der Profi schreibt sich die Zuordnung in eine Include-Datei und läßt 
dann den Compiler die magischen Nummern ausrechnen:
1
#define DIG3    0b00000001                            // digit order
2
#define DIG2    0b00100000
3
#define DIG1    0b00000010
4
#define DIG0    0b01000000
5
6
#define _A      0b00010000                            // segment order
7
#define _B      0b00000001
8
#define _C      0b00100000
9
#define _D      0b00001000
10
#define _E      0b00000100
11
#define _F      0b01000000
12
#define _G      0b10000000
13
#define _DP     0b00000010                            // decimal point
14
15
#define _0      ( _A+_B+_C+_D+_E+_F    )              // number pattern
16
#define _1      (    _B+_C             )
17
#define _2      ( _A+_B+   _D+_E+   _G )
18
#define _3      ( _A+_B+_C+_D+      _G )
19
#define _4      (    _B+_C+      _F+_G )
20
#define _5      ( _A+   _C+_D+   _F+_G )
21
#define _6      ( _A+   _C+_D+_E+_F+_G )
22
#define _7      ( _A+_B+_C             )
23
#define _8      ( _A+_B+_C+_D+_E+_F+_G )
24
#define _9      ( _A+_B+_C+_D   +_F+_G )
25
#define _BLANK  ( 0                    )
26
#define _MINUS  (                   _G )

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Der Profi sollte "|" nehmen und nicht "+", auch wenns hier keinen 
Unterschied im Ergebnis macht.

scnr,
WK

von Karl B. (gustav)


Lesenswert?

Und der Profi baut noch ein Bit ein für Invertierung "gemeinsame 
Katode", "gemeinsame Anode".

ciao
gustav

von Peter D. (peda)


Lesenswert?

Karl B. schrieb:
> Und der Profi baut noch ein Bit ein für Invertierung "gemeinsame
> Katode", "gemeinsame Anode".

Da hast Du natürlich recht. Ich wollts bloß nicht gleich zu kompliziert 
machen.
1
//#define INVERT                                        // for common cathode
2
#ifndef INVERT
3
#define INVERT  (uint8_t) ~                           // for common anode
4
#endif
5
6
#define DIG3    0b00000001                            // digit order
7
#define DIG2    0b00100000
8
#define DIG1    0b00000010
9
#define DIG0    0b01000000
10
11
#define _A      0b00010000                            // segment order
12
#define _B      0b00000001
13
#define _C      0b00100000
14
#define _D      0b00001000
15
#define _E      0b00000100
16
#define _F      0b01000000
17
#define _G      0b10000000
18
#define _DP     0b00000010                            // decimal point
19
20
#define _0      INVERT( _A+_B+_C+_D+_E+_F    )        // number pattern
21
#define _1      INVERT(    _B+_C             )
22
#define _2      INVERT( _A+_B+   _D+_E+   _G )
23
#define _3      INVERT( _A+_B+_C+_D+      _G )
24
#define _4      INVERT(    _B+_C+      _F+_G )
25
#define _5      INVERT( _A+   _C+_D+   _F+_G )
26
#define _6      INVERT( _A+   _C+_D+_E+_F+_G )
27
#define _7      INVERT( _A+_B+_C             )
28
#define _8      INVERT( _A+_B+_C+_D+_E+_F+_G )
29
#define _9      INVERT( _A+_B+_C+_D   +_F+_G )
30
#define _BLANK  INVERT( 0                    )
31
#define _MINUS  INVERT(                   _G )

von Falk B. (falk)


Lesenswert?

Peter D. schrieb:
> Da hast Du natürlich recht. Ich wollts bloß nicht gleich zu kompliziert
> machen.

Perlen vor die Säue . . .

von J. T. (chaoskind)


Lesenswert?

Falk B. schrieb:
> Perlen vor die Säue . . .

Aber doch noch wichtig genug, dich zu einem "Perlen vor die 
Säue"-Kommentar veranlasst zu sehen.

von Klaus (feelfree)


Lesenswert?

Peter D. schrieb:
> #define

Ist das gängige Assembler-Syntax?
Wenn nein, werdet ihr damit den Günter heillos überfodern.
Der weigert sich ja sogar seine Programme in Assembler-Memnonics zu 
schreiben, sondern besteht nach wie vor auf OP-Codes.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Klaus schrieb:
> Ist das gängige Assembler-Syntax?

Das ist die Syntax des C-Präprozessors. Man kann aber den C-Compiler 
anweisen, nur den Präprozessor laufen zu lassen und dann das Outputfile 
einem Assembler vorsetzen. Der Präprozessor ist also nicht auf bestimmte 
Textdateien beschränkt.
Nur wenn der Assembler ebenfalls eine Syntax mit # am Zeilenanfang 
hätte, dann kracht es.

https://de.wikipedia.org/wiki/C-Pr%C3%A4prozessor

von Peter D. (peda)


Lesenswert?

Klaus schrieb:
> Wenn nein, werdet ihr damit den Günter heillos überfodern.

Er ist mit jedem Ansatz überfordert, eine zeitgerechte 
Programmierumgebung an einem PC zu benutzen.
Das war auch nur als Demonstration gedacht, wie man sich die Arbeit 
erleichtern könnte.

In den Anfängen der Platinenfertigung wurde jede einzelne Bohrung 
gezählt, d.h. Vias kosteten bares Geld. Da war es dann sinnvoll, wenn 
man sich kreuzende Leitungen minimieren konnte. Daher das scheinbare 
Durcheinander der Definitionen.
Dem Compiler ist es ja herzlich wurscht, welches Byte er für welche 
Ziffer ausgeben soll. Die Codegröße bleibt immer gleich.

von Christoph M. (mchris)


Lesenswert?

Sicher kennt sich jemand sehr gut mit Excel und VBA aus: Ihr könntet 
einen einfachen Excel-Assembler bauen. Für ein paar wenige Befehle ist 
das sicherlich einfach.

von Thomas W. (datenreisender)


Lesenswert?

Gucke mal, im Markt verkauft Lutz DDR-Nachbauten fuer den 2114-RAM.

Beitrag "[V] Verkaufe verschiedene ICs, teilweise DDR"

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> Sicher kennt sich jemand sehr gut mit Excel und VBA aus: Ihr könntet
> einen einfachen Excel-Assembler bauen. Für ein paar wenige Befehle ist
> das sicherlich einfach.

Ich hab noch ein Nudelholz in der Schublade . . .

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
> Sicher kennt sich jemand sehr gut mit Excel und VBA aus: ...
Finde ich wirklich gut, ehrlich.

Nur möchte letztendlich ein einfacher Informatiker
den Text in einer Editor-Datei stehen haben.
Und dieser Text funktioniert dann auch, auf modernen Compiler.
Leider weiß ich noch nicht, wie ein Compiler funktioniert.

Wichtig ist aber, die Übersicht zu behalten.

Falk B. schrieb:
> Ich hab noch ein Nudelholz in der Schublade . .

Oh, was hab' ich gelacht :-)))

Ich muss mich noch einlesen.
Letztendlich soll es ja, um einen einfachen Computer gehen.

Eben bin ich von Bekannten eingeladen worden,
Da muss ich gleich hinfahren.
Liebe Grüße
Günter K.
(ENK)

PS.:
Der CBM, war zu seiner Zeit, schon enorm,
es war ja nur ein Anfang.

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,

-...- Moment, ich weiß, INFORMATIK ist nicht einfach!
Und ich, bin kein Informatiker.

Das nächste Progrämmchen, steht zum Eintippen bereit.
Ich habe es absichtlich kleiner gelassen; muss aber
noch etwars Hardware zusammenlöten.
Es ist für 6 Töne, die (noch) nicht
automatisch laufen.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Das nächste Progrämmchen, steht zum Eintippen bereit.
> Ich habe es absichtlich kleiner gelassen; muss aber
> noch etwars Hardware zusammenlöten.
> Es ist für 6 Töne, die (noch) nicht
> automatisch laufen.

Dann zeig es doch schonmal hier, wir sagen dir dann schon, was alles 
nicht funktionieren wird.

von Thilo L. (bc107)


Lesenswert?

Günter K. schrieb:
> -...- Moment, ich weiß, INFORMATIK ist nicht einfach!
> Und ich, bin kein Informatiker.
>
> Das nächste Progrämmchen, steht zum Eintippen bereit.
> Ich habe es absichtlich kleiner gelassen; muss aber
> noch etwars Hardware zusammenlöten.
> Es ist für 6 Töne, die (noch) nicht
> automatisch laufen.
> Liebe Grüße
> Günter K.
> (ENK)

Vielleicht kann man ihn im Heinz-Nixdorf-Museum hinter Glas ausstellen. 
Vorne steht dann auf der Tafel
"Kein Informatiker.
Die 6 Töne, die Sie (noch) nicht hören, werden von einem absichtlich 
kleiner gelassenen Program erzeugt."

von Klaus F. (klaus27f)


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Sicher kennt sich jemand sehr gut mit Excel und VBA aus: Ihr könntet
> einen einfachen Excel-Assembler bauen. Für ein paar wenige Befehle ist
> das sicherlich einfach.

Voila

Ist allerdings auf 256 Zeilen begrenzt...

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Klaus F. (klaus27f)
11.06.2025 15:57
>Voila
>Ist allerdings auf 256 Zeilen begrenzt...
Hmm .. Libre Office macht Komisches ..
Vielleicht geht es ja mit Windows-Excel?
Günter, probiere es mal.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Hmm .. Libre Office macht Komisches ..
> Vielleicht geht es ja mit Windows-Excel?

Du hast dich schon verarschen lassen :-))))))
Versuch mal deine rosarote Brille abzusetzen . . .

von Günter K. (enk)


Lesenswert?

Hallo Christoph M. und alle!

> Hmm .. Libre Office macht Komisches ..
> Vielleicht geht es ja mit Windows-Excel?

Hallo Christoph M.
ich finde, Deine Leistungen sind sehr gut!
Und ich finde es schon ENORM, sofort ein Programm zu schreiben,
das sofort funktioniert!

Irgendlemand schrieb so in etwa, an Christoph M.
"... Du bist unserer Zeit voraus!"
Das glaube ich auch!



Christoph M. schrieb:
>> Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255
>> Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich
>> vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind.

Günter schrieb:
>  ___________________
> |  NEC ROY 218-045  |
> | IRLAND µPD2114LC  |
> |___________________|
besorge ich vielleicht noch heute.
ob man vielleicht noch EE-RAMs oder EE-ROMs bekommen kann?

Später, wird ein Fernschreiber-Programm kommen,
auf dem Wege, kann ich dann Daten speichern.
Übrigens, damals wurden auch Huckepack-RAMs gebaut.
Auf dem Wege, kann man auch speichern.
Liebe Grüße
Günter K.
(ENK)

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


Lesenswert?

Hallo liebe Leute,

Peter D. schrieb:
> Karl B. schrieb:
>> Und der Profi baut noch ein Bit ein für Invertierung "gemeinsame
>> Katode", "gemeinsame Anode".

Das verstehe ich nicht, denn wenn man direkt invertiert eingibt,
braucht man ja nicht mehr zu invertieren, - oder?
Die Kathode oder Anode sind einfach angeschlossen wie sie sind;
das ist für das Programm selbst uninteressant, höchstens
im REM-Bereich als Hinweis, wie sie hardwaremäßig angeschlossen sind.
Mit lieben Grüßen
Günter K.
(ENK)

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Günter K. schrieb:
> im REM-Bereich als Hinweis, wie sie hardwaremäßig angeschlossen sind.

Das machst Du mit Software einfacher, als LED-Anzeigen auszutauschen.
Sonst kommt sowas raus wie im Bild.

ciao
gustav

von Christoph M. (mchris)


Lesenswert?

Christoph M. schrieb:
> Hmm .. Libre Office macht Komisches ..
> Vielleicht geht es ja mit Windows-Excel?

Falk schrieb:
>>Du hast dich schon verarschen lassen :-))))))

Vielleicht hat Klaus auch einfach das falsche File gepostet.

Tatsächlich gibt es schon einen Excel Assembler:
https://github.com/tilleul/apple2/tree/master/tools/6502_assembler

von Rbx (rcx)


Lesenswert?

Günter K. schrieb:
> Leider weiß ich noch nicht, wie ein Compiler funktioniert.

Nenn ihn doch einfach Übersetzer.

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


Angehängte Dateien:

Lesenswert?

Vielleicht hilft es was, vielleicht auch nicht: die Memory Map von 
Junior und Interfacekarte.

Die steht vollständig in keinem der Bücher drin, das muss man sich 
mühsam zusammensuchen!

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


Lesenswert?

Günter K. schrieb:
> Das verstehe ich nicht, denn wenn man direkt invertiert eingibt,
> braucht man ja nicht mehr zu invertieren, - oder?
> Die Kathode oder Anode sind einfach angeschlossen wie sie sind;

Wenn du nur ein einziges fertiges Gerät hast, dann ist das mit der 
Invertierung egal - du programmierst das dann einfach "richtig".

Wenn du vorher nicht weißt, ob deine Anzeigen gemeinsame Anode oder 
Kathode haben, dann kannst du die Programmierung flexibel gestalten.

von Falk B. (falk)


Lesenswert?

Wolfgang R. schrieb:
> Vielleicht hilft es was, vielleicht auch nicht: die Memory Map von
> Junior und Interfacekarte.
>
> Die steht vollständig in keinem der Bücher drin, das muss man sich
> mühsam zusammensuchen!

Naja. Binäre Adressen braucht keiner, das stiftet mehr Verwirrung als 
alles andere. Teilweise gilt das auch für die Adressen von VIA und 
EPROM. Denn die Adressen A13-A15 werden nirgends dekodiert. Der IC 6 
dekodiert nur A10-A12, sprich 1kB Blöcke. Das sollte man auch so 
darstellen. D.h. auch, daß die 8x1kB auf den vollen Adressraum 8x 
gespiegelt sind. Das braucht man aber nur für die obersten drei Worte im 
EPROM für die IRQ/NMI/RESET Vektoren.

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


Lesenswert?

Falk B. schrieb:
> Naja. Binäre Adressen braucht keiner, das stiftet mehr Verwirrung als
> alles andere.

Deinen Beitrag hier auch nicht - mach's doch besser.

von Falk B. (falk)


Lesenswert?

Wolfgang R. schrieb:
>> Naja. Binäre Adressen braucht keiner, das stiftet mehr Verwirrung als
>> alles andere.
>
> Deinen Beitrag hier auch nicht - mach's doch besser.

Du bist sehr erwachsen, wie man an deinem Beitrag erkennt. Kleiner Tip.

https://de.wikipedia.org/wiki/Kritikkompetenz#Passive_Kritikkompetenz

von Klaus (feelfree)


Lesenswert?

> Günter K. schrieb:
>> Leider weiß ich noch nicht, wie ein Compiler funktioniert.

Warum willst Du wissen, wie so ein Memnonics-nach-Opcode-Übersetzer (das 
Ding nennt man einfach Assembler) funktioniert?
Benutze ihn doch einfach!

Wie hundert mal geschrieben:
1. Gehe zu https://www.masswerk.at/6502/assembler.html
2. Gebe in das Fenster src oben links deine Memnonics ein. Zum Beispiel 
"nop"
3. Drücke auf die Schaltfläche "assemble"
4. Im Fenster rechts erscheint der Hex-Code.

Einfacher geht es nicht. Aber selbst dieses Super-Einfache hast Du noch 
nie ausprobiert, und willst lieber untaugliche Hardware basteln und RAMs 
austauschen, die Du defekt wähnst. So kommst Du nie weiter.
Aber das willst Du wohl auch gar nicht.

Edit, nochmal nachgedacht:
Eigentlich ist es vollkommen egal was Du machst, Du wirst eh keinen 
Erfolg haben. Also weitermachen! RAM bestellen! Schalter löten!
Und immer hier mitteilen, dass jemand zu Besuch kommt oder Du jetzt 
gleich einkaufen gehst!

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


Lesenswert?

> Karl B. schrieb: am 12.06.2025 um 10:54

> Das machst Du mit Software einfacher, als LED-Anzeigen auszutauschen.
> Sonst kommt sowas raus wie im Bild.
> ciao gustav
Siehe oben.
Dankeschön Dir auch!
Also, greift hardwaremäßige Software für den Fall auf die Hardware zu, -
und verändert entspechend die Harware, damit die Software und Hardware 
stimmt.  - Wolfgang R. schrieb noch was:

Wolfgang R. schrieb im Beitrag #7891206 vom 12.06.2025 13:40 noch dazu:
> von Wolfgang R. (Firma: www.wolfgangrobel.de)
Wolfgang R. schrieb noch zu weiteren Angaben, die ich auch ernst nehme:
> ... Wenn du vorher nicht weißt, ob deine Anzeigen gemeinsame Anode oder
> Kathode haben, dann kannst du die Programmierung flexibel gestalten.

Ja lieber Wolfgang, ich erinnere mich, Du hattest mir ja schon fertige 
Dateien geschickt, die haben alle funktioniert. Es waren schon einige
Zeichen auf dem Display. Dankeschön!
Und wenn ich mal alles fertig habe, die Teile habe ich leider noch 
nicht;
wenn man bedenkt, das der CBM ja schon so vieles konnte.
Dankeschön an Alle!
Mit lieben Grüßen
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Wie hundert mal geschrieben:
> 1. Gehe zu https://www.masswerk.at/6502/assembler.html
> 2. Gebe in das Fenster src oben links deine Memnonics ein. Zum Beispiel
> "nop"
> 3. Drücke auf die Schaltfläche "assemble"
> 4. Im Fenster rechts erscheint der Hex-Code.
Günter schreibt: Ja, auch das, werde ich noch machen.

Klaus schrieb:
> ... Und immer hier mitteilen, dass jemand zu Besuch kommt oder Du jetzt
> gleich einkaufen gehst!

Nun ja, zum wissen, dass ich nicht -nur- am Rechner sitze. :-)
Liebe Grüße
Günter K.
(ENK)

von Thilo L. (bc107)


Lesenswert?

Günter K. schrieb:
> Also, greift hardwaremäßige Software für den Fall auf die Hardware zu, -
> und verändert entspechend die Harware, damit die Software und Hardware
> stimmt.

Genau solche Aussagen sind der Grund, warum ich trotz des mir selbst 
gegebenen Versprechens, hierzu die Klappe zu halten, doch immer wieder 
vorbei schaue. Ich kann es einfach nicht glauben, dass die bisherigen 
Aussagen Günters nicht immer wieder noch getoppt werden können. Doch, 
kann er. QED. Es ist der helle Wahnsinn, was hier abgeht...

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


Lesenswert?

Günter K. schrieb:
> Also, greift hardwaremäßige Software für den Fall auf die Hardware zu, -
> und verändert entspechend die Harware, damit die Software und Hardware
> stimmt.

Ich habe min. 10 Minuten versucht diesen Wortsalat zu verstehen.
Leider keinen Erfolg.

von Falk B. (falk)


Lesenswert?

Thilo L. schrieb:
> QED. Es ist der helle Wahnsinn, was hier abgeht...

Nein. Dir fehlen nur ein paar medizinische Grundlagen in Neurologie und 
Psychiologie.

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

Such dir die schönste Interpretation aus.

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


Lesenswert?

Arduino F. schrieb:
> Günter K. schrieb:
>> Also, greift hardwaremäßige Software für den Fall auf die Hardware zu, -
>> und verändert entspechend die Harware, damit die Software und Hardware
>> stimmt.
>
> Ich habe min. 10 Minuten versucht diesen Wortsalat zu verstehen.
> Leider keinen Erfolg.

Ich finde es jetzt nicht schwer zu verstehen, auch wenn es 
missverständlich ausgedrückt ist:

Es greift also eine hardware-spezifische Software auf die Hardware zu 
und passt sich so der Hardware an, dass sowohl Hard- als auch Software 
zusammenpassen.

Wenn man es verstehen will, dann kann man das schon...

von Rbx (rcx)


Lesenswert?

Meine Güte, Software ist einfach ein Hausmeister in einem großen leeren 
Hochhaus, der mit einem Plan abends da reingeht, und je nach Plan die 
verschiedenen Lichter in dem Stockwerk anmacht.
Der Plan, könnte man noch spitzfindig sagen, wäre erstmal der Boot-Code.

So rein theoretisch könnte man noch ein paar Wikipediaartikel ansehen, 
z.B.:
https://de.wikipedia.org/wiki/Von-Neumann-Architektur
https://de.wikipedia.org/wiki/Harvard-Architektur

Ein Zeiger wäre übrigens ein Lehrling, der vom Hausmeister gezeigt 
bekommt, wo er auf dem Plan hinrennen, und Lichter anschalten soll. ;)

Übrigens, gibt es hier und da sehr gute didaktisch aufgebaute 
Programmierlehrgänge, da könnte man im wahrsten Sinne learning by doing 
praktizieren.

von Thilo L. (bc107)


Lesenswert?

Rbx schrieb:
> Meine Güte, Software ist einfach ein Hausmeister

Soso. Und ein NOP ist dann ein Hausmeister in Staatsdiensten???

Wie mein alter Mentor einst dreideutig sagte: "Comparisons are as bad as 
clichés."

: Bearbeitet durch User
von Rbx (rcx)


Lesenswert?

Thilo L. schrieb:
> Soso. Und ein NOP ist dann ein Hausmeister in Staatsdiensten???

Ne, eine Zigarettenpause

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hier der Grund, wieso es nur um "ein" Bit ging.
"...By logic level at the input S you can change the polarity of the 
segment outputs accordingly to the displays with common anode or 
cathode. Logical One for common anode displays, logical Zero for common 
cathode displays..."
Der BCD-Decoder-7-Segmenttreiber hat schon die Auswahlmöglichkeit.
K176IE3 und entsprechend für den 4056 über Logikpegel an einem Pin.
Wird jedoch über das Programm selbst bereits eine Ansteuerung der 
Siebensegmentanzeigen vorgenommen, müssen zwei Varianten vorhanden sein.
Der entsprechende "Auswahl"-Programmabschnitt enthält dann die 
sogenannte "Invertierung". Welche Variante man nimmt, hängt vom 
tatsächlich verwendeten Display ab. Man ist also in der Auswahl der 
Anzeigetypen recht flexibel. Wobei der K176IE3 nur LEDs oder VFD 
ansteuern kann, der 4056 sogar LCD. Und da wird es schon ein wenig 
komplizierter.

Beide braucht man aber nicht bei entsprechendem Programm, weil dies das 
schon von Hause aus kann, ohne die Umwege über externe BCD-Zähler und 
Decodier-Treiber.

Ein Programm ändert nicht die Hardware, nein, es ändert nur die 
Ansteuerung derselben. Man kann beides abwechselnd versuchen. Dann 
erhält man eben gegebenenfalls "Hieroglyphen".
Schöner Partygag. Man drückt einen Knopf und schon sind keine Ziffern, 
sondern unbekannte Zeichen zu sehen.
Man kann auch LCDs so "initialisieren", dass sie ganz anders arbeiten 
als sonst.
Kommt ganz auf die Software an.

ciao
gustav

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


Lesenswert?

Klaus schrieb:
> Dann zeig es doch schonmal hier, wir sagen dir dann schon, was alles
> nicht funktionieren wird.

Pessimist? :-))
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Pessimist? :-))

Nein, unverbesserlicher Optimist. Nämlich dass Du tatsächlich etwas 
"geschaffen" hast.
Der Realist in mir weiß dagegen, dass es nix gibt was Du zeigen 
könntest.

Beitrag #7891321 wurde von einem Moderator gelöscht.
von Hans (ths23)


Lesenswert?

Robin A. schrieb im Beitrag #7891321:
> Hier ein paar Vorschläge, die dir den Einstieg erleichtern könnten: ....

Oder einfach mal ein Buch zur Hand nehmen, z.B.: Lampe, Jorke, Wengel 
"Algorithmen der Mikrorechentechnik" (gäbe es z.B. hier 
https://www.booklooker.de/Bücher/Günter-Jorke-Bernhard-Lampe+Algorithmen-der-Mikrorechentechnik-Maschinenprogrammierung-und/id/A02IwfvR01ZZ2?zid=8c1u5mdveu0lo13eh1sr9nc8ud). 
Das Buch passt zum Z80.

von Gerhard O. (gerhard_)


Lesenswert?

Hallo Enk, herzlich willkommen!...

Schummler!

Das hat chatGPT verbrochen. Schäme Dich und stell Dich in die Ecke bis 
die Glocke zur Mittagspause läutet.

Duck und weg.

von Jobst M. (jobstens-de)


Lesenswert?

Christoph M. schrieb:
> Vielleicht geht es ja mit Windows-Excel?

Mutig! Sowas aus dem Netz zu öffnen…

Gruß
Jobst

von Marci W. (marci_w)


Lesenswert?

Was soll der Blödsinn, hier ChatGPT Chats reinzustellen?! Vor allem ohne 
Kennzeichnung, dass es sich um eine Antwort von ChatGPT handelt! Das 
macht keinen Sinn. Wenn überhaupt, dann stelle hier den ChatGPT-Prompt 
rein!

ciao

Marci

von Hmmm (hmmm)


Lesenswert?

Gerhard O. schrieb:
> Das hat chatGPT verbrochen. Schäme Dich und stell Dich in die Ecke

Ja, aber nicht nur deshalb, da kommt noch mehr dazu.

2. Weil er damit nur die eingestreute URL seiner Schweizer CBD-Klitsche 
tarnen wollte.

3. Weil er nicht begriffen hat, dass das Forum ohnehin nofollow-Links 
erzeugt, sein Google-Ranking damit also nicht besser wird.

4. Weil der Laden auch noch eine Baukasten-Website von "Wix" ist, bei 
denen ich mich nebenbei immer noch frage, wie man auf die Idee kommt, 
mit diesem Namen in den deutschsprachigen Markt zu gehen.

Die "SEO"-Deppen sterben leider nicht aus.

von Günter K. (enk)


Lesenswert?

Klaus F. schrieb:
> Ist allerdings auf 256 Zeilen begrenzt...

Hallo lieber Klaus F. und alle,
ich habe es aber bis über 11500 Zeilen gesehen.
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Günter K. schrieb:
> Klaus F. schrieb:
>> Ist allerdings auf 256 Zeilen begrenzt...
>
> Hallo lieber Klaus F. und alle,
> ich habe es aber bis über 11500 Zeilen gesehen.
> Liebe Grüße
> Günter K.
> (ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:..
>
> Hallo lieber Klaus F. und alle,
> ich habe es aber bis über 11500 Zeilen gesehen.

Vielleicht solltest du dir für Foristen, die dich gnadenlos verarschen 
(und du es nicht mal merkst) eine passendere Anrede überlegen.

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb: 12.06.2025 12:26
> Tatsächlich gibt es schon einen Excel Assembler:
> https://github.com/tilleul/apple2/tree/master/tools/6502_assembler

Super Toll PRIMA Christoph M.! Sehr gut gemacht!!

Ich las irgendwo ROFL
Rolling For Laughing :-)))   Schön

        |-------------->---|
ROL     |<-|7------0|<-C-<-|

Es wird der Inhalt der Speicherstelle, der sich aus dem Folgebytes 
ergibt
(Lower und Higherbyte) rolliert, d.h. die Linke Bit wird in das 
Carry-Flag
gebracht, wobei der vorige Flag-Inhalt rechts wieder eingeschoben wird.

z.B.: 2E 00 03 Inhalt von 300 sei 01
               das Carry-Flag sei 1.
               Nach der Ausführung des Befehls wird der Inhalt 03 sein.
               Das Carry-Flag wird anschließend auf 0 gesetzt.

Es gibt aber 5 verschiedene Adressierungsarten dafür,
die OP-CODES werden nachher beim Assembler uninteressant,
-nur- für den Anfang interessiert mich das.
Man achte auf die FLAGS N, Z und C.
Liebe Grüße
Günter K.
(ENK)

von Christoph M. (mchris)


Lesenswert?

>> Tatsächlich gibt es schon einen Excel Assembler:
>> https://github.com/tilleul/apple2/tree/master/tools/6502_assembler

>Super Toll PRIMA Christoph M.! Sehr gut gemacht!!

Zeige doch mal einen Screenshot von deinem Excel-Sheet.

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb: Betr.: Die 
Junior_Memory_Map.pdf
> von (Firma: www.wolfgangrobel.de) (mikemcbike) vom 12.06.2025 13:30
Oh, Dankeschön

> Vielleicht hilft es was, vielleicht auch nicht: die Memory Map von
> Junior und Interfacekarte.
>
> Die steht vollständig in keinem der Bücher drin, das muss man sich
> mühsam zusammensuchen!

Erstaunlich, ich hatte mich schon oft gefragt: "...ob es soetwas gibt?"
und jetzt sehen ich, das gibt es nur durch Dich! - Sehr gut!
Ob man so eine Interface-Karte noch bekommen kann?
Und den richtigen Verkäufer für die Rams?

In Deinem Vortrag vom CBM 3280, war ich erstaunt,  -SUPER-
wie Du alle Teile ganz genau kennst; das finde ich sehr gut!
Liebe Grüße
Günter K.
(ENK)
:-)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ob man so eine Interface-Karte noch bekommen kann?
> Und den richtigen Verkäufer für die Rams?

Es gibt für dich keinen ungeeigneteren Rechner, um Assembler zu lernen.
Warum willst Du mit der schlechtestmöglichen Hardware weitermachen?

Vor 45 Jahren hatte man nichts besseres. Niemand tut sich das freiwillig 
an. Warum Du, erst recht nach fast einem halben Jahr ohne jede merkliche 
Fortschritte?

von Günter K. (enk)


Lesenswert?

Klaus schrieb: vom 13.06.2025 08:16
> von  Klaus (feelfree)

> Vielleicht solltest du dir für Foristen, die dich gnadenlos verarschen
> (und du es nicht mal merkst) eine passendere Anrede überlegen.

Tja, - wenn ich das nicht merke, dann weiß ich es ja auch nicht. :-)))
.
- nur: ...tileul..., heist das Till Eulenspiegel?
Das ist doch die Märchenfigur, der die Leute zum Narren hielt.
Oder die: "Gewichte von der Wasserwaage."

Allerdings, halte ich Assembler über Exel durchaus als möglich.

Ich machte das nur zur Übersicht, und das ich viele Kommentare
in den REM-Bereich hineinschreiben kann.

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

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich machte das nur zur Übersicht, und das ich viele Kommentare
> in den REM-Bereich hineinschreiben kann.

Du kannst in jedem Assemblerprogramm beliebig viele Kommentare 
reinschreiben.
Excel ist da gänzlich unpraktisch dafür.

Aber du magst es ja maximal unpraktisch.
Vielleicht solltest du die Hexadezimal-Tastatur deines Junior durch 
Kippschalter für die einzelnen Bits und die 7-Segment-Anzeige durch LEDs 
ersetzen, dann ist es noch unbequemer als es eh schon ist.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Warum willst Du mit der schlechtestmöglichen Hardware weitermachen?
>
> Vor 45 Jahren hatte man nichts besseres. Niemand tut sich das freiwillig
> an. Warum Du, erst recht nach fast einem halben Jahr ohne jede merkliche
> Fortschritte?

Hier bin ich angekommen, hier bleib ich, - unter anderem.

Ja, die Leute von damals, das waren und sind echte Pioniere!
Wolfgang Du bist, so ein Pionier, - und das ist gut so!
Es ist ein Versuch, die Zeit zu erleben, - wie das war.
Ich könnte jetzt aus dem Buch I etwas aus dem Kopf zitieren:
"Was haben wir gemacht ... ... schon sehr viel ...".
Und ich freue mich über jeden kleinen Schritt.

Ja Klaus,  - und ... . Ich bin nur der kleine Günter.
Und ich kenne meine Fähigkeiten auch, - die, lasse ich mir nicht 
absagen.
Und ja Wolfgang R. Du kannst das. Du hast ja richtig studiert!
Das ist wirklich sehr gut!
Und wie Du zeigst, kannst kannst Du noch - viel, viel, mehr,
was sehr zu respektieren ist!! Ein verdienter Respekt!

Trotzdem Wolfgang für Dich ist die Zeit, - nicht stehengeblieben;
und selbstverständlich kann ich mich selbst, nicht mit Dir Wolfgang, 
vergleichen.

Ich habe mein Leben fast hinter mir.
Dies ist nur mein Hobby, dies ist mein Spiel.
Sich irgendwie in den kleinen Computer einzuleben.
Mein Wunsch, einen kleinen einfachen Computer zu haben, wie damals.
Man soll sich ja auch nicht auf den Prozessor versteifen, las ich in
den Büchern, allerdings halte ich mich auch nicht als Informatiker.
Ich kann es auch nicht mehr werden und freue mich über jeden,
der winzigen Schritte.


Man könnte einige große Namen nennen, wie Joseph Weizenbaum,
so auch Wolfgang Back, der auch Fernsehmoderator war!
Er wurde nur 76 Jahre alt.

Ich bin nur der kleine Gü

Jetzt will ich aber was tun ...
Bis später dann, mit
lieben Grüßen
Günter K.
(ENK)

von Thomas W. (datenreisender)



Lesenswert?

Klaus schrieb:

> Aber du magst es ja maximal unpraktisch.
> Vielleicht solltest du die Hexadezimal-Tastatur deines Junior durch
> Kippschalter für die einzelnen Bits und die 7-Segment-Anzeige durch LEDs
> ersetzen, dann ist es noch unbequemer als es eh schon ist.

Ich hatte mal ueberlegt einen IMSAI 8080 aufzubauen (es gibt/gab einen 
Bausatz fuer ca. USD 300, mit den schonen Tasten/Schaltern) aber das war 
mir doch etwas zu aufwaendig. Obwohl ich es sehr fand, dass man den 
Prozessor-Status (z.b. Stack-OP oder I/O) schoen am Panel sehen konnte.

Der Nachbau-Satz enthielt einen Raspberry Zero als CPU und IO-Prozessor.

Ich haenge ein Photo von dem IMSAI an, da kann man die Bits noch 
fliessen sehen... (Bild aus der Wikipedia)

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Günter K. schrieb:
> höchstens
> im REM-Bereich als Hinweis, wie sie hardwaremäßig angeschlossen sind.

Damit kann doch die CPU nichts anfangen.
Du willst Dir ja Werte von Variablen anzeigen lassen, d.h. Du brauchst 
im Programm ein Array, was den 7-Segment Code der Ziffern (0..9) 
enthält.
Die Definitionen sorgen dafür, daß die Codes passend erstellt werden, 
wenn Du die jeweilige Anschlußbelegung hinschreibst.
Und zur besseren Lesbarkeit macht man eine Vornullenunterdrückung, d.h. 
führende Nullen werden als Blank angezeigt.

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> Die steht vollständig in keinem der Bücher drin, das muss man sich
> mühsam zusammensuchen!
DANKESCHÖN!
Liebe Grüße
Günter K.
(ENK)
:-)

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> Wenn du vorher nicht weißt, ob deine Anzeigen gemeinsame Anode oder
> Kathode haben, dann kannst du die Programmierung flexibel gestalten.
DANKESCHÖN!
Liebe Grüße
Günter K.
(ENK)
:-)

von Günter K. (enk)


Lesenswert?

Klaus (feelfree) schrieb: 11.06.2025 14:24

Klaus schrieb: weil
> Günter K. schrieb:

Günter K. schrieb:
> Es ist für 6 Töne, die (noch) nicht
> automatisch laufen.
> Liebe Grüße ...

Klaus schrieb:
> Dann zeig es doch schonmal hier, wir sagen dir dann schon, was alles
> nicht funktionieren wird.

Ja, das ist dann schon mal vorgemrkt :-)))
Guten Abend, liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Peter D. schrieb:
> Und zur besseren Lesbarkeit macht man eine Vornullenunterdrückung, d.h.
> führende Nullen werden als Blank angezeigt.

Hallo Peter D.,
ja, das verstehe ich, denn unser Zahlensystem, hat ja keine führenden 
Nullen.
Die IBM-Leute, hatten für die Eintragungen die für die Lochkarten waren, 
ein extra handschriftliches Zeichen, dieses sah aus wie ein "U", nur 
ganz eckig; - ähnlich wie die 7-Segment "0", ohne den obersten 
Segment-Balken, - oder ohne die oberen Segmente überhaupt. Das 
BLANK-Zeichen schrieb man deshalb so für die Lochkarten,
um so einen Stellen-Fehler zu verhindern.

Für eine neue 7-Segmentanzeige, werde ich wahrscheinlich externe 
Multiplexer einsetzen, der nur dann anzeigt, wenn das Programm nicht 
läuft, bzw. kurz unterbrochen ist, so, dass in der Zeit auch kein 
Interrupt läuft, es sei denn, es wird für die Matrix, (für den 
Prozessor) einen berechneten IRQ (ohne NMI) freigegeben, der für 
Computer berechnet ist.
(Achtung, das sind nur lose Gedanken, ich weiß noch nicht, ob das -so- 
klappt).
- Interessant ist, dass der Junior-Computer, einen eigenen Assembler 
hat.
An dieser Stelle könnte man sich fragen:
"Warum, macht es sich der Günter K. damit selber schwer?" - ? Es geht 
mir
darum, mich nur -etwas- in die Zeit hineinzudenken, wie die Leute damals 
dachten;
sie mussten gleichzeitig die Offsets berücksichtigen. Und das ist gar 
nicht so einfach.
Darum will ich mich hier lieber Peter D.
für Deinen Beitrag extra bedanken.
Liebe Grüße
Günter K.
(ENK)

PS.:
Die 360er IBM Computer werden heute noch in neuerer Form gebaut.
Gegen Ende der 60er Jahre lernte ich -etwas- über den IBM 360/20.
Der damals schon, auch mit 64 BIT Datenbreite rechnete.
Interessant: Siehe IBM Vortrag von Wolfgang R. „Zerro Brain“.
Z.B.: „Der IBM-Koffer“ 😊

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.