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.
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.
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).
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.
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.htmlhttp://stefanfrings.de/mikrocontroller_buch/index.html
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.
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
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 ...
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...
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.
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 ;-)
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.
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.
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.
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?
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.
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.
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.
(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.
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.
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.
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.
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.
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.
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
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?
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.
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
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.
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.
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
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.
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.
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).
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.
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.
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. ;-)
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?
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.
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.
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?
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.
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.
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:
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 ...
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.
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.
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
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.
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 ...
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
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. 🤪
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
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
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.
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.
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".
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.
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.
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?
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.
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
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
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
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/5xhttps://clrhome.org/table/
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.
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.
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
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?
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.
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:
> 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.
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.
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)
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"
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
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.
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_Ihttps://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.
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?
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
> 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 !!!" ;-)
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?
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
> 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.
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 . . .
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.
> 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
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
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.
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.
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.
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. :)
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.
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
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. :)
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/
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
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.
(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...
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!
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.
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.
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.
(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.
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
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.
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
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
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.
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).
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).
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
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
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
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!!! ;-)
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.
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
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:
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:
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
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.
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.
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/
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.
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
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.
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
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.
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
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.
(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
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.
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
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
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?
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 . . .
;-)
(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!
;-)
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) ;-)
(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
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??" ^-^
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
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
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)
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.
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
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
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!
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.
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/)
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
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.
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ß
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.
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_kbhttps://hackaday.io/project/177988-68k-mbc-a-3-ics-68008-homebrew-computer
Herrlich, was heute machbar ist. Fuer relativ wenig Geld.
Gruesse
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.
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.
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.
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.
(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.
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.
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.
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...)
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.
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.
(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!
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.
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?)
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 ;-)
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.
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.
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.
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.
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.
>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.
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
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
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.
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
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.
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.
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
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
(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 ;-)
(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.
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!
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.
(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!
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
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.
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.
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.
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.
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.
(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.
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
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
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
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
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?
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 . . .
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
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
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.
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.
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.
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ß
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...").
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...
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?
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.
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.
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.
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.
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.
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.
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).
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...
(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.
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.
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?
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.
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
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.
(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.
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.
> 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/
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.
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.
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.
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.
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 . . .
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 😅
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.
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
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...?
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.
(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...
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.
(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.
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.
(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...
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
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
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.
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.
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.
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.
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
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.
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
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.
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
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
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
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
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
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
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.
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/
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.
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
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
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
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.
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.
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.
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
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.
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
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.
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.
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.
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.
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.
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.
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 ...
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.
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
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.
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.
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.
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
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
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
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.
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...
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. :)
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.
(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...
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.
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.
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!
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.
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.
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...
(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.
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.
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.
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
(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
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
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.
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.
(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.
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.
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.
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.
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.
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 . . .
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?"
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.
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.
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!!!! ;-)
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.
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.
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
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
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...
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.
(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.
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
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
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.
(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 . . .
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.pdfGerhard 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.
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.
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...?!
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.
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
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
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.
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.
(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.
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
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,
Günter K. schrieb:> Pascal ist ja eine Mathematisch orientierte Hochsprache.
Nein, du meinst bestimmt Fortran.
Pascal war für Ausbildung/Lehre bestimmt/beabsichtigt.
Günter K. schrieb:> Die Leute die Programme portierbar mache,> haben die haben die einen Berufsnamen?
Das Berufsbild nennt sich wohl im Volksmund:
Programmierer!
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)
(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):
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.
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.
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.
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!
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.
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
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.
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 ;
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.
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
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
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.
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.
(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.
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!
>> 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**
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ß.
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.
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.
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
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... :)
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.
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
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.
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?
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.
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
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!
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
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...
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.
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.
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.
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
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.
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.
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.
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
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
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.
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
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
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.
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.
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.
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…)
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.
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.
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.
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!
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.
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).
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)
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;Fillupthedisplaybuffer
3
LDY#$00
4
5
FILBUF
6
LDA(CURADL),Y;StartfillingatOPCode
7
STAINH,X
8
INY
9
DEX
10
BPLFILBUF
11
JSROPLEN;Storeinstructionlengthinbytes
12
SCANA
13
JSRSCANDS;Displaycurrentinstruction
14
BNESCANA;Keyreleased?
15
SCANB
16
JSRSCANDS;Displaycurrentinstruction
17
BEQSCANB;Anykeypressed
18
JSRSCANDS;Displaycurrentinstruction
19
BEQSCANB;Anykeystillpressed?
20
JSRGETKEY;Ifyes,returnwithkeyinACC
21
RTS
Vielleicht wuerde man die Entprellung heute anders machen, aber am
Anfang der Sourcedatei findet man:
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.
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(
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)
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)
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!
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
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)
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)
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)
:-)
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.
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)
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
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)
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.
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
;-)
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...
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) :-)
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.
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.
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!
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.
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!)
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).
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.
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
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)
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?!
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.
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
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)
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.
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.
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)
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.!
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)
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?
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)
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)
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)
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)
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)
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)
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
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.
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.
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)
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.
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?
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)
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)
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.
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)
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...
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)
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)
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.pdfGü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
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)
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)
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.
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.
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.
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)
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.
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.
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
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!
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
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)
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)
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.
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)
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...
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)
>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 )
>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?
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)
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!
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.
(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...
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.
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.
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.
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/)
> 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 ;-)
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)
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?
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.
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.
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.
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.
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.
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.
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:A9018D831AA2DE20
2
0308:1503AD821A49018D
3
0310:821A4C0503CAD0FD
4
0318:60
Ja, das waren die alten Zeiten, und ich bin froh, dass das Geschichte
ist.
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.
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)
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?
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:
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)
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.
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.
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)
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!
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.
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.
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.
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.
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?
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.
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.
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 ..).
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.
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 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)
> 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
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
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
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.
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.
(prx) A. K. schrieb:> 8080
Die ASM Mnemonics sind beim Z80 einheitlicher.
Aber letztendlich eine Geschmackssache, historisch, und damit heute
quasi irrelevant.
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.
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.
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
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
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)
>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.
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 . . .
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)
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.
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?
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?
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.
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.
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)
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.
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)
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:
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.
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.
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 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)
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)
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.
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)
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???
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)
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.
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.
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.
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.
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)
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.
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.
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)
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.
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.
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.
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
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.
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."
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.
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.
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.
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.
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.
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.
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. :)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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
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.
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.
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?
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.
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.
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.
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?
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)
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
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.
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)
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.
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)
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.
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?
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) 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)
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.
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.
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:> 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)
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.
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.
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.
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.
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)
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.
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
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)
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)
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)
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.
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.
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"
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.
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?
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.
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?
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.
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.
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.
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.
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!
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.
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
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.
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)
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.
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.
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.
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.
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?
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)
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.
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)
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)
/***********************************************************************
/
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.
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.
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.
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.
Christoph M. schrieb:> STY temp_duration ; Save duration count temporarily
Irgendwie überflüssig, oder?
Ist wahrscheinlich noch ein Überbleibsel aus einer 16bit Delay-Routine?
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.
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)
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.
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?
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.
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"
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)
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.
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
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.
(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.
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!
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?
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
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.
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.
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 ...).
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
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.
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.
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)
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?
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)
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.
??
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
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.
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)
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.
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.
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?
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 ...
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.
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.
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...
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)
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.
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)
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.
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.
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.
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.
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.)
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.
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.
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.
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
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 )
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.
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.
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.
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.
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.
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.
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.
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.
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...
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 ;-)
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.
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)
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.
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".
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
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)
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
+
+
+
+
...
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?
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?"
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.
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.
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 ?
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.
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).
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.
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.
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 . . .
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
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.
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.
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.
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 . . .
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)
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?
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.
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.
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).
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.
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
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.
> 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.
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)
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.
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?
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.
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.
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.
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.
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).
>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 :-)
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?
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.
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.
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.
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?"
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)
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.
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.
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)
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.
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.
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.
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)
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.
Cyblord -. schrieb:> Dann besiege doch mal dein Helfersyndrom
Mach ich - versprochen! - spätestens nachdem Du dein Mecker- und
Rant-Syndrom in den Griff bekommst.
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?
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?
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!
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...
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.
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!
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:
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.
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?
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 ;)
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
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...
>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.
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.
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)
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.
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
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.
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.
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?
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.
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.
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,
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)
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?
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)
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
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
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)
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
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
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.
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.
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.
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.
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.
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?
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
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.
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.
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.
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!
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)
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.
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)
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)
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.
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.
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)
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!
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.
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.
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 ;-)
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.
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?
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).
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?
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.
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.
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)
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)
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.
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)
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.
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.
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)
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.
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.
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)
:-)
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)
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!
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)
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.
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
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
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
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.
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
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.
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.
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 . . .
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.
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)
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.
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."
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...
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.
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 . . .
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)
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)
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
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
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!
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.
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.
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.
> 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!
> 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)
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)
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...
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.
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...
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-Architekturhttps://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.
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."
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
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)
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.
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.
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
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.
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)
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)
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.
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)
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)
:-)
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?
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)
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.
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)
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)
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.
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)
:-)
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)
:-)
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)
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“ 😊
Günter K. schrieb:> ich weiß noch nicht, ob das -so- klappt
Aber ich weiß es.
Jemand der gerade den ersten Meter im Krabbeln geschafft hat, bekommt
weder einen 100-Meter-Lauf und erst recht nicht einen Halbmarathon hin.
Christoph M. schrieb:> Zeige doch mal einen Screenshot von deinem Excel-Sheet.
Das hatte ich ja schon mal gemacht, das war aber noch kein Assembler,
sondern nur ein OP-CODE, mit MNNEMONICS, als Assembler-Liste.
Hallo Christoph M.
vorläufig, habe ich es nur zur Datenspeicherung.
Tatsächlich ist beim JC nach dem Ausschalten alles weg.
Erst, wenn ich mich mit dem JC mit der
Assembler-Sprache und die Assembler-Wirkung beschäftigt gehabt habe,
mache ich das -vielleicht- auch in Excel, ich vermute die Möglichkeit -;
erst danach, das angebotene Assembler, denn ich will sehen können,
was der Computer macht.
Liebe Grüße
Günter K.
(ENK)
Günter K. schrieb:> denn ich will sehen können,> was der Computer macht.
Wirst du aber nie, nicht mit einem Junior Computer.
Du hast immer noch nicht mal im Ansatz verstanden, wie man einen
Computer programmiert.
Insofern nehme ich meinen letzten Beitrag zurück - du hast noch nicht
mal den einen Meter Krabbeln geschafft.
Klaus schrieb:> bekommt> weder einen 100-Meter-Lauf und erst recht nicht einen Halbmarathon hin.
Hallo Klaus,
weder noch, - ich war vom Schulsport freigesprochen worden.
Viel zu spät, als Erwachsener, hatte ich mit dem Fahrrad begonnen,
und dann erst eine Rennmaschine mit Stahl-Rahmen.
Damit schaffte ich einen guten Durchschnitt;
Allerdings sind die Pausen beim Durchschnitt nicht mitgezählt,
dann nach der Pause zählt der Zähler neu.
Computerfrage der für einen Mikroprozessor interessant ist:
Ein Rollstuhlfahrer hat an seinem Rollstuhl einen Fahrrad-Computer
mit einem Speichen-Magnet-Sensor installiert.
Das Display soll aber unter einem km/h anzeigen?
Ich habe das Problem gelöst.
Weißt Du bitte wie?
Liebe Grüße
Günter K.
(ENK)
😊
Günter K. schrieb:> Ich habe das Problem gelöst.> Weißt Du bitte wie?
Nein, ich weiß nicht wie DU das Problem gelöst hast. Mir fallen aber
mannigfaltige Lösungen ein, die einfachste mit einem 10er Pack Magnete.
Günter K. schrieb:> Siehe IBM Vortrag von Wolfgang R. „Zerro Brain“.> Z.B.: „Der IBM-Koffer“ 😊
Zerobrain heisst Dominik. Wolfgang R. hat aber ab und an mal ein Video
mit ihm gemacht.
Thomas S. schrieb:> Zerobrain heisst Dominik. Wolfgang R. hat aber ab und an mal ein Video> mit ihm gemacht. Dankeschön.
Mit lieben Grüßen
Günter K.
(ENK)
Klaus schrieb:> ... die einfachste mit einem 10er Pack Magnete.
Ja, Klaus, - dann hast, Du es ja gelöst!
Glaub' mir, - da kommt nicht jeder drauf.
Liebe Grüße
Günter K.
(ENK)
😊
Thomas W. schrieb: am: 13.06.2025 16:24
> und die 7-Segment-Anzeige durch LEDs ...
... das finde ich gut, - doch
Klaus schrieb dazu, (ich sehe nicht wann):
>> ... ersetzen, dann ist es noch unbequemer als es eh schon ist.
Lieber Klaus,
mal abwarten. - 😊 )))
Liebe Grüße
Günter K.
(ENK)
Rbx schrieb: am 12.06.2025 16:11,
auf jeden Fall sehr 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.
... ...
> 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,
Also werde ich ein: "Zeiger" bzw. der Lehrling sein.
In den 80ern bis 90ern (Windows 95 "blauer Bildschirm".)
da hieß es: "Jetzt springt er wieder durch die Prärie",
d.h. - der "Zeiger" (Pointer?) hatte den Weg verloren, und trotzdem,
sagte man: "Die 'Von-Neumann-Architektur' ist ein Flaschenhals"; -
deswegen interessierte es mich früher mal (aber jetzt auch noch),
für die Harvard-Architektur (Nur deswegen begeistert!). - Doch
inzwischen
habe ich irgendwann mal erfahren, dass es Prozessoren gibt,
die zwar nur von -außen-: 'Harvard-Architektur' sind und
von -innen-: 'Von-Neumann-Architektur' -. (Ist‘s besser so? - Warum?)
Inzwischen aber finde ich es schön, wo alles schön der Reihe nach geht.
(Bei BASIC konnte man ja mit dem "AUTO"-Befehl, X-Zeilen freilassen).
(Das GW-BASIC schien mir besser zu sein als das CBM-BASIC.).
Ein -bisschen- liegt der Klaus da schon richtig,
- doch es interessiert mich! - !
Leider habe ich kein durchtrainiertes Gehirn,
(... wegen 2. Weltkrieg u. schlechte Zeit in meiner Kindheit bis zum 21.
.)
Ich wiederhole: ... es interessiert mich!
Liebe Grüße
Günter K.
(ENK)
😊
Günter K. schrieb:> Ich wiederhole: ... es interessiert mich!
Es interessiert dich alles, aber für alles ist (nicht nur) dein Hirn zu
klein.
Leider fehlt dir die Fähigkeit, unwichtiges von wichtigen zu trennen,
deshalb machst du keinerlei Fortschritte.
Ich hab z.B. vor 40 Jahren mal gelernt, was Harvard- bzw.
von-Neumann-Architektur ausmacht.
Keine Ahnung mehr davon. Könnte es jederzeit nachlesen. Aber ich weiß,
dass ich dieses Wissen nicht brauche, deshalb belaste ich nicht mein
Hirn damit.
Günter K. schrieb:>> Ein Zeiger wäre übrigens ein Lehrling, der vom Hausmeister gezeigt>> bekommt,>> Also werde ich ein: "Zeiger" bzw. der Lehrling sein.
Falk B. schrieb:> Günter K. schrieb:>>> Ein Zeiger wäre übrigens ein Lehrling, der vom Hausmeister gezeigt>>> bekommt,>>>> Also werde ich ein: "Zeiger" bzw. der Lehrling sein.> (void*) enk;
Günter K. schrieb:> habe ich irgendwann mal erfahren, dass es Prozessoren gibt,> die zwar nur von -außen-: 'Harvard-Architektur' sind und> von -innen-: 'Von-Neumann-Architektur' -. (Ist‘s besser so? - Warum?)
Es ist genau umgekehrt. Programmtechnisch ist es Von-Neumann (gleiche
Befehle für Code und Daten), intern werden aber mehrere Busse parallel
benutzt (Harvard). Die CPU kann also über den Datenbus das Ergebnis
zurück schreiben und gleichzeitig vom Flash schon den nächsten Befehl
lesen.
Beim Z80 gab es außerdem noch getrennte Befehle für RAM und IO.
Inzwischen wird aber alles einfach in einen großen Adreßraum gemappt
(Flash, RAM, IO).
Wenn jemand eine CPU sucht, die nur zum Lernen und für das Verständnis
gebaut wurde, dann fällt mir MMIX ein.
https://mmix.cs.hm.edu/index.html
Wenn das Grundverständnis da ist, wie ein Prozessor, Maschinencode,
Assembler und Hochsprachen funktionieren und miteinander zusammen
hängen, dann kann man imho auf einen beliebigen, einigermaßen modernen
Prozessor umsteigen.
Gunnar F. schrieb:> Falk B. schrieb:>> Also werde ich ein: "Zeiger" bzw. der Lehrling sein.>> (void*) enk;>> geht das auch in Maschinencode?
Nein!
Das ist scheinbar eine C/C++ Pseudoanweisung um einen Funktionsparameter
zu ignorieren. Oder reine Fantasie.
ASM kennt keine Funktionen, und damit auch keine Funktionsparameter.
Zudem erzeugen solche pseudo Anweisungen sowieso keinen Code.
Arduino F. schrieb:> ASM kennt keine Funktionen
Doch schon.
Aber dort nennt man sie Unterprogramme.
Das ist so ähnlich wie bei den APPs.
Die hiesen früher Programme.
Arduino F. schrieb:> geht das auch in Maschinencode?>> Nein!> Das ist scheinbar eine C/C++ Pseudoanweisung um einen Funktionsparameter> zu ignorieren. Oder reine Fantasie.
Du hast es erfaßt. Dein Humordetektor ist kaputt . . .
Funktionen kennen Parameter und Rückgaben.
Die Mechanismen dafür sind fest in der Sprache(ABI) verankert.
ASM kennt das nicht, da basiert alles dieses auf freiwilligen
Vereinbarungen.
Was dem Wildwuchs Tür und Tor öffnet.
Peter D. schrieb:> Beim Z80 gab es außerdem noch getrennte Befehle für RAM und IO.> Inzwischen wird aber alles einfach in einen großen Adreßraum gemappt> (Flash, RAM, IO).
Guten Abend allerseits,
das finde ich sehr gut, also da geht der ganze Bus mit allen
Datenleitungen, (oder sogar seriell) auf einen Chip?
Liebe Grüße
Günter K.
(ENK)
😊
Arduino F. schrieb:> Funktionen kennen Parameter und Rückgaben.> Die Mechanismen dafür sind fest in der Sprache(ABI) verankert.
"The (ABI)Word-Project" für Linux oder Windows in C++?
Arduino F. schrieb weiter dazu:
> ASM kennt das nicht, da basiert alles dieses auf freiwilligen> Vereinbarungen.> Was dem Wildwuchs Tür und Tor öffnet.
Kann man da nicht feste definierte Begriffe vereinbaren?
Ich weiß, das REM wird abgeschnitten, - aber wenn man es aufbewahrt?
Außerdem kann man ja auch eine Textinformation im Programm machen,
was dann aber das Programm unnötig verlangsamt, - aber das,
könnte man als Muster aufbewahren, um so,
Maschinennah zu bleiben. Geht das?
Liebe Grüße
Günter K.
(ENK)
😊
Hm, hoffendlich, habe ich deutlich genug geschrieben?
Roland F. schrieb:> Hallo,> Günter K. schrieb:>> Hm, hoffendlich, habe ich deutlich genug geschrieben?>> DEFINITIV nicht.
Doch, er hat deutlich geschrieben dass er immer noch nicht den Hauch
einer Ahnung hat, wie ein Computer programmiert wird und was die Aufgabe
eines Assembler oder Compilers ist.
Günter K. schrieb:> Arduino F. schrieb:>> Funktionen kennen Parameter und Rückgaben.>> Die Mechanismen dafür sind fest in der Sprache(ABI) verankert.> "The (ABI)Word-Project" für Linux oder Windows in C++?
ABI?
Hier, für den AVR GCC: https://gcc.gnu.org/wiki/avr-gcc
Günter K. schrieb:> Kann man da nicht feste definierte Begriffe vereinbaren?> Ich weiß, das REM wird abgeschnitten, - aber wenn man es aufbewahrt?
was für ein Unsinn. Dein REM ist ein Begriff aus Basic. Das hat mit ASM
oder Maschinensprache rein gar nichts zu tun. Was willst da Begriffe
definieren? Du bist doch derjenige der alle Begrifflichkeiten
durcheinander bringt und umdeutet.
Arduino F. schrieb:> ... in der Sprache(ABI) verankert.
was ist damit gemeint? - Ist das C++?
> ASM kennt das nicht,
Ist mit ASM, ASSEMBLER gemeint?
also die 'Funktionen mit Parameter und Rückgaben*'.
Also so, wie Du Arduino F. schriebst:
> Funktionen kennen Parameter und Rückgaben.
Also dann, dass das der ASM(ASSEMBLER) das *s.o. nicht kennt.
Aber ich kann doch die Ausrechnungen machen, auch wenn
die genauen Bezeichnungen für die Funktionen usw. fehlen,
so kann man sie doch, anderenorts beschreiben.
Liebe Grüße
Günter K.
(ENK)
😊
Günter K. schrieb:> Aber ich kann doch die Ausrechnungen machen, auch wenn> die genauen Bezeichnungen für die Funktionen usw. fehlen,> so kann man sie doch, anderenorts beschreiben.
Hmmmmm,
ja oder nein, oder egal.
Klaus F. schrieb:> Hmmmmm,> ja oder nein, oder egal.
Hallo Leute,
Ich habe tatsächlich nicht gewusst was "ABI" heißt; darum fragte ich.
Ich weiß aber jetzt erst, im Nachhinein, dass es
um eine Implementierung geht. - Dieses Wort kenne ich natürlich
von der Maschinensprache, den MNEMONICs her. Und ich weiß jetzt,
wie mir richtig geantwortet ist, dass es in gewisser Weise, nicht geht.
DANKE liebe Leute. - Ich kann kein: "AVR GCC".
Liebe Grüße
Günter K.
(ENK)
😊
Ich konnte mich irgendwie nie mit ASM anfreunden, das ist mir zu
absolut.
Habe in der Schule mal die Möglichkeit gehabt, ASM für den Z80 zu
lernen, das waren dort die Rechner, u. A. auch der TRS 80 von Radio
Shack.
Mir war damals das LNW-Basic lieber, was auf den selben Rechnern lief,
weil es konkreter war. Man sagt dem Rechner in Klartext, was er machen
soll.
Das OS war damals Newdos 80.
Dann habe ich entgegen aller Commodores den TI99/4A gekauft, also wieder
BASIC. Heute programmiere ich gerne mit BASCOM. .Py und C habe ich zwar
auch mal ab und an, aber ich hasse die Fingergrätschen {}, und wenn man
mal ein } vergisst, dann sucht man sich einen Wolf.
Klaus schrieb:> Doch, er hat deutlich geschrieben dass er immer noch nicht den Hauch> einer Ahnung hat, wie ein Computer programmiert wird und was die Aufgabe> eines Assembler oder Compilers ist.
Matthäus 5:3-27 DELUT
"Selig sind, die da geistlich arm sind; denn das Himmelreich ist ihr."
Thomas Z. schrieb:> Dein REM ist ein Begriff aus Basic
Ja, - das ist genau richtig! - Das ist vom CBM dem COMMODORE PET.
REM für REMARK - bei Assembler ist es das ";"-Zeichen.
Das ist doch die selbe Bedeutung. Und wieso?
> alle Begrifflichkeiten
-alle- ?
Liebe Grüße
Günter K.
(ENK)
😊
Thomas S. schrieb:> Heute programmiere ich gerne mit BASCOM.
Ein Bienchen von mir.
Jede Programmiersprache ist meilenweit besser, als wie Günter so lange
Zeit mit Machinencode rumzukrebsen. Noch dazu, wenn man ihn nicht mal
dauerhaft speichern kann.
Thomas S. schrieb:> und wenn man> mal ein } vergisst, dann sucht man sich einen Wolf.
Da sind eigentlich die Fehlermeldungen des Compilers recht
aussagekräftig und zielführend. Auch sagen Dir oft schon die Editoren,
wenn ein Klammernpaar unvollständig ist. Je nach IDE wird nach dem
Compile auch gleich der Finger (Cursor) auf die Wunde gelegt.
Günter K. (enk)
19.06.2025 07:30
>Ja, - das ist genau richtig! - Das ist vom CBM dem COMMODORE PET.>REM für REMARK - bei Assembler ist es das ";"-Zeichen.>Das ist doch die selbe Bedeutung. Und wieso?
Das ist historisch gewachsen. Beim Assembler mussten Zeichen gespart
werden. REM sind 3 Zeichen und ';' ist nur ein Zeichen. Außerdem geht es
um Bequemlichkeit. Ein Zeichen ist viel kürzer als 3.
Fast jede Programmiersprache leitet ihren Kommentar mit
unterschiedlichen Zeichen ein:
Assembler: ;
Basic: REM
C: //
Python : #
Matlab: %
Octave: % oder #
Kennt jemand noch andere?
Peter D. schrieb:> Thomas S. schrieb:>> und wenn man>> mal ein } vergisst, dann sucht man sich einen Wolf.>> Da sind eigentlich die Fehlermeldungen des Compilers recht> aussagekräftig und zielführend. Auch sagen Dir oft schon die Editoren,> wenn ein Klammernpaar unvollständig ist. Je nach IDE wird nach dem> Compile auch gleich der Finger (Cursor) auf die Wunde gelegt.
Die Weiterentwicklung der Entwicklungssysteme ist schon beeindruckend:
Ich habe ja meine uVAX (das war 1990 top-of-the-line), VAXSET (Editor,
ein Make, ein Profiler und ein Versionssystem) hatte schon so eine Art
Code-Completion (Sprach-abhaengig, z.b. bei Pascal wurde sofort ein
BEGIN/END-Block aufgemacht), aber es war (verglichen mit 2025) wirklich
muehsam. Ab und zu bestrome ich mein VT320, aber zum Arbeiten waere das
nichts mehr.
Guten Morgen, liebe Leute,
ich wünsche eine schönen Feiertag!
von Falk B. (falk) schrieb am 19.06.2025 07:10, dass
Klaus schrieb:
> Doch, er hat deutlich geschrieben dass er immer noch nicht den Hauch> einer Ahnung hat, wie ein Computer programmiert wird und was die Aufgabe> eines Assembler oder Compilers ist.
Das stimmt zwar, nun ein -Hauch- ist schon da, aber ich weiß schon mal,
das Assembler zusammenbauen heißt, dass ein Compiler ein Übersetzer ist,
denn ich möchte es von unten, - nach oben angehen; denn sonst,
ist der Computer kein " ... einfacher Rechner zum Lernen ..." mehr.
Liebe Grüße
Günter K.
(ENK)
😊
PS.:
Der Übersetzer ist mir doch noch zu schwer.
Christoph M. schrieb:> Fast jede Programmiersprache leitet ihren Kommentar mit> unterschiedlichen Zeichen ein:>> Assembler: ;> Basic: REM> C: //> Python : #> Matlab: %> Octave: % oder #>> Kennt jemand noch andere?
FORTRAN IV: ein C oder * in Column 1, Rest der Zeile wird ignoriert.
Eine VAX-Extenion war dann ein "D" in Column 1: Diese Zeilen wurden nur
uebersetzt, wenn der Compiler mit /DEBUG/NoDEBUG ausgerufen wurde.
ISO-Standard COBOL74 wollte ein * oder / in Column 7 als
Kommentar-Zeile, die ersten sechs Stellen waren aber die Sequenz-Number
(000100) ...
Günter K. schrieb:> Christoph M. schrieb:>> Kennt jemand noch andere?>> Ja, irgendwo, hatte ich mal was mit: "'" gesehen.> Aber ich weiß nicht mehr wo.
Visual Basic 4 - 6.
Günter K. schrieb:> Christoph M. schrieb:>> Kennt jemand noch andere?>> Ja, irgendwo, hatte ich mal was mit: "'" gesehen.> Aber ich weiß nicht mehr wo.> Liebe Grüße Günter K.
PS:
Ja, - als C' für COMMENTAR, beim IBM-ASSEMBLER.
Nach dem C' BEDEUTUNG' endete auch mit "'",
für den EINTRAG in der LOCHKARTE.
Peter D. schrieb:>> und wenn man>> mal ein } vergisst, dann sucht man sich einen Wolf.>> Da sind eigentlich die Fehlermeldungen des Compilers recht> aussagekräftig und zielführend.
Keine Sekunde! Gerade bei C kann man mit einer fehlenden, schließenden
Klammer maximal verwirrende Fehlermeldungen erzeugen! Hab ich schon
mehrfach erleben dürfen.
> Auch sagen Dir oft schon die Editoren,> wenn ein Klammernpaar unvollständig ist.
Zeig mir mal eine, die das für C macht.
Roland F. schrieb:> Hallo,> Christoph M. schrieb:>> Assembler: ;>> Basic: REM>> C: //>> Python : #>> Matlab: %>> Octave: % oder #>>>> Kennt jemand noch andere?>> Pascal: ( ) oder { }> Borland Delphi: ( ) oder { } oder //> Forth: (_ )
IBM ASSEMBLER: C' ... '
sollte nicht fehlen, weil es den 360er IBM noch gibt.
Vermutlich gibt es noch viele mehr, - oder?
Wie ist es bei LIPS?
LG Günter K
Günter K. schrieb:> Wie ist es bei LIPS?
LIPS ist LISP, und da ist ;; der Comment-delimiter.
Um das ein wenig abzukuerzen moechte ich auf die Webseite
https://rosettacode.org/wiki/Rosetta_Code hinweisen. Es ist eine
Sammlung von Standardalgorithmen (z.b. Sortieren, kgV, auch Hello_world)
in vielen Programmiersprachen.
Die Standardversion fuer "Hello World" enthaelt auch mehrere
Assembler-Version fuer verschiedene Architekturen:
https://rosettacode.org/wiki/Hello_world/Text
Die heutige (praxisbezogene) Version (Zeige "Hello World" auf einem
Browser) findet man
https://rosettacode.org/wiki/Hello_world/Web_server
Viel Spass!
Thomas W. schrieb:> Die Standardversion fuer "Hello World" enthaelt auch mehrere> Assembler-Version fuer verschiedene Architekturen:
Ach Du meine Guete, was koennt Ihr viele Programmier-Sprachen
und wo moeglich noch Fremd-Sprache/n dazu!
Und ich kann noch nicht einmal -eine- Programmier-Sprache
und keine Fremd-Sprache dazu!
Im Alter von 48 begann ich mit ENGLISCH. - .
Und im September als ich 49 Jahre alt war, begann der Tinnitus(!),
der dann immer lauter wurde.
Von LISP hatte ich nur gehoert,
weil ich ein Buch von Joseph Weizenbaum gelesen hatte.
(Mit 21 begann mein Leben, ging von zuhause weg ins Jugendwohnheim.)
Dir Wolfgang R., DANKE noch mal fuer die schoene LISTE,
und moechte auf einfachem Wege weiterkommen.
Weitere Fragen, kommen noch dazu.
Liebe Gruesse
Guenter
:-)
PS.: Auf "Hello World" komme ich zurueck.
Thomas S. schrieb:> Ich konnte mich irgendwie nie mit ASM anfreunden, das ist mir zu> absolut.
Das ist der Grund, weshalb ich ASM so bevorzuge: Ich weiß jederzeit
genau, was passiert.
Christoph M. schrieb:> Kennt jemand noch andere?
In Brainfuck kann man seinen Kommentar einfach in den Quelltext
schreiben. Man darf nur keinen der 8 Befehle benutzen: > < + − . , [ ]
https://de.wikipedia.org/wiki/Brainfuck
Gruß
Jobst
Jobst M. (jobstens-de)
19.06.2025 19:29
>In Brainfuck kann man seinen Kommentar einfach in den Quelltext>schreiben. Man darf nur keinen der 8 Befehle benutzen: > < + − . , [ ]
Also das wissen jetzt wirklich nur die Freaks :-)
Günter schrieb
>Ich machte das nur zur Übersicht, und das ich viele Kommentare>in den REM-Bereich hineinschreiben kann.
Bei früheren Computern wie z.B. den ZX81 hat man den REM-Bereich
tatsächlich zum Speichern von Assemblercode benutzt. Das der REM Bereich
für Kommentare gedacht ist, kann man dort auch beliebig andere Zeichen
unterbringen, die als Assemblercode vom Computer interpretiert werden
können.
Der Ablauf ist dabei wie folgt:
Man mache einen Kommentar mit z.B. 100 Zeichen. Dann nutzt man in Basic
den Befehl 'poke' in BASIC um beliebige 8Bit Zahlen in diesen Bereich zu
schreiben. Danach kann man dann aus BASIC heraus das Programm starten.
Moin,
Christoph M. schrieb:> Bei früheren Computern wie z.B. den ZX81 hat man den REM-Bereich> tatsächlich zum Speichern von Assemblercode benutzt.
Das erste Byte hinter dem REM Token in der ersten Basiczeile stand immer
an der Adresse 16514. Ab da konnte es dann "losgehen".
Erstaunlicherweise bleibt mir sowas im Kopf haengen, obwohl ich's schon
echt lange nicht mehr gebraucht hatte. Na, damit bin ich dann sicher der
Held im Altersheim in ein paar Jahren :-)
Gruss
WK
Günter K. schrieb:> PS.:> Der Übersetzer ist mir doch noch zu schwer.
Stimmt der ist viel schwerer als die Opcodes einzutippen. Komisch nur
das die meisten eine Hochsprache bevorzugen und das Erstellen des
Maschinenprogrammes (die Opcodes) dem Übersetzer überlassen.
Wenn man dann wirklich noch wissen will was da auf unterster Ebene
abläuft, kann man sich ja das Übersetzungsergebnis anschauen. Die
meisten IDE's können auch dies anzeigen.
Aber fummel nur weiter rum wie bisher, der Erkenntnisgewinn wird sich
aber in Grenzen halten, mal abgesehen davon, daß Du eigentlich nur auf
der Stelle trittst.
Christoph M. schrieb:> Der Ablauf ist dabei wie folgt:> Man mache einen Kommentar mit z.B. 100 Zeichen. Dann nutzt man in Basic> den Befehl 'poke' in BASIC um beliebige 8Bit Zahlen in diesen Bereich zu> schreiben. Danach kann man dann aus BASIC heraus das Programm starten.
Das klingt gut! DANKESCHÖN!
Inzwischen habe ich das ganz kleine Keyboard, welches ich löten wollte,
auf einem Breadboard von Arduino gesteckt. Die Tasten passen genau,
so nebeneinander, dass das Breadboard gefüllt ist.
Morgen mache ich weiter.
Liebe Grüße
Günter K.
(ENK)
:-)
PS.: Natürlich werde ich später dazu übergehen,
nur die MNEMONICs einzugeben, - natürlich,
darf der OP-Code nicht fehlen.
Christoph M. schrieb:> Der Ablauf ist dabei wie folgt:> Man mache einen Kommentar mit z.B. 100 Zeichen. Dann nutzt man in Basic> den Befehl 'poke' in BASIC um beliebige 8Bit Zahlen in diesen Bereich zu> schreiben. Danach kann man dann aus BASIC heraus das Programm starten.
Solchen Murks habe ich nicht ein einziges Mal gesehen.
Zumindest auf dem C64 war die übliche Methode, dass man an den Anfang
des BASIC-Speichers nur eine einzige BASIC-Zeile mit SYS 20xx gepackt
hat, womit dann der unmittelbar dahinter liegende Maschinencode
aufgerufen wurde.
Wenn man den Code unbedingt doppelt im Speicher haben wollte (1x im
BASIC-Code, 1x woanders), ging das ganz gut mit DATA-Zeilen, aber auch
da hat man sinnvollerweise freien Speicher ausserhalb des BASIC-Codes
mit POKEs befüllt.
Christoph M. schrieb:
>> Der Ablauf ist dabei wie folgt:>> Man mache einen Kommentar mit z.B. 100 Zeichen. Dann nutzt man in Basic>> den Befehl 'poke' in BASIC um beliebige 8Bit Zahlen in diesen Bereich zu>> schreiben. Danach kann man dann aus BASIC heraus das Programm starten.
Hmmm (hmmm)
20.06.2025 01:34
>Solchen Murks habe ich nicht ein einziges Mal gesehen.
Das liegt daran, dass du keine Ahnung vom ZX81 hast.
Hallo liebe Leute,
Hmmm schrieb:> Christoph M. schrieb:>> Der Ablauf ist dabei wie folgt:>> Man mache einen Kommentar mit z.B. 100 Zeichen. Dann nutzt man in Basic>> ... Danach kann man dann aus BASIC heraus das Programm starten.
Das Meckern lasse ich mal draus. - Hmmm Du hast trotzden gut
geantwortet,
Du schriebst:
> Zumindest auf dem C64 war die übliche Methode, dass man an den Anfang> des BASIC-Speichers nur eine einzige BASIC-Zeile mit SYS 20xx gepackt> hat, womit dann der unmittelbar dahinter liegende Maschinencode> aufgerufen wurde. Wenn man den Code ...> (1x im ... BASIC-Code, 1x woanders), ging das ganz gut mit DATA-Zeilen,> aber auch da hat man sinnvollerweise freien Speicher ausserhalb> des BASIC-Codes mit POKEs befüllt.Christoph M. schrieb:>>> Der Ablauf ist dabei wie folgt: Man mache einen Kommentar>>> mit z.B. 100 Zeichen. Dann nutzt man in Basic den Befehl 'poke'>>> in BASIC um beliebige 8Bit Zahlen in diesen Bereich zu schreiben.>>> Danach kann man dann aus BASIC heraus das Programm starten.
Günter K. schreibt:
Das ist doch gut. - Leider muss ich's wiederholen - schade:
Christoph M. schrieb:> 20.06.2025 01:34>>Solchen Murks habe ich nicht ein einziges Mal gesehen.> Das liegt daran, dass du keine Ahnung vom ZX81 hast.
Die Hauptsache ist, man kommt weiter. Es kommt ja darauf an
man was die Maschine macht. - Mit ZX81 habe ich nicht kennen gelernt.
Liebe Grüße
Günter K.
Christoph M. schrieb:>>Ähnlich viel wie Du Ahnung vom korrekten Zitieren hast?> Wo liegt das Problem?
Sorry, die mobile Ansicht auf meinem Handy scheint kaputt zu sein.
Im Desktop-Modus sieht alles normal aus.
Edit: Klasse, und das hochladen klappt auch super, obwohl sich der
Beitrag nach der Dateiauswahl nicht veränderte....
Ich sag nix mehr...
Günter K. schrieb:> Christoph M. zitierte:>> 20.06.2025 01:34>>>Solchen Murks habe ich nicht ein einziges Mal gesehen.Günter K. schrieb: dass Christoph M.
ihm von Hmmm (hmmm) am 20.06.2025 01:34 antwortete:
>> Das liegt daran, dass du keine Ahnung vom ZX81 hast.
Ja, ich weiß nicht wieviel Hmmm (hmmm) versteht,
wovon ich ja gar nichts weiß.
Liebe Grüße
Günter K.
Christoph M. schrieb:>>Ähnlich viel wie Du Ahnung vom korrekten Zitieren hast?> Wo liegt das Problem?
Das Du den Link zum Beitrag auf den Du Dich beziehst geloescht hast. Der
Leser kann den Kontext nicht mehr einordnen und muss (wenn er will) den
Ursprungstext suchen.
Ich ignoriere solche Beitraege mittlerweile (verschwendete Lebenszeit).
Schade bei z.B. Christoph M. (mchris), aber der Wurm muss dem Fisch
schmecken.
Christoph M. schrieb:
> Wo liegt das Problem?
Thomas W. (datenreisender)
20.06.2025 08:45
>> Das Du den Link zum Beitrag auf den Du Dich beziehst geloescht hast.
Normalerweise gebe ich keinen Link zum Beitrag an, wenn der einen Post
weiter vorne steht. Das finde ich dann zu viel Text. Aber vielleicht
gibt es Probleme mit der Darstellung auf dem Smartphone. Ich sehe das
Ganze auf dem großen Computer-Bildschirm und da könnte die Formatierung
eine andere sein.
Christoph M. schrieb:> Das liegt daran, dass du keine Ahnung vom ZX81 hast.
Stimmt, ich hatte nur am Rande mal mit dem ZX Spectrum zu tun.
Aber warum sollte man umständlich in eine REM-Zeile POKEn statt in
freien Speicher woanders? Oder hast Du danach den POKE-Teil entfernt und
mit diesem Trick das BASIC-Listing mitsamt fertigem Maschinencode
gespeichert?
Hmmm schrieb:> Aber warum sollte man umständlich in eine REM-Zeile POKEn statt in> freien Speicher woanders? Oder hast Du danach den POKE-Teil entfernt und> mit diesem Trick das BASIC-Listing mitsamt fertigem Maschinencode> gespeichert?
Exakt. Wenn man das Maschinenprogramm im BASIC-Bereich ablegt, kann man
es mit den normalen LOAD und SAVE-Befehlen auf Kassette speichern und
zurückladen. Speicherauszüge direkt abspeichern oder einlesen war beim
ZX81 nicht vorgesehen.
Moin,
Hmmm schrieb:> Aber warum sollte man umständlich in eine REM-Zeile POKEn statt in> freien Speicher woanders?
Weil der geniale Hmmm damals keine bessere Idee auf den 2
duennpfiffgelben Mittelseiten der Elrad namens "computing today"
veroeffentlicht hatte.
Und weils im ZX81 ueblicherweise keinen "freien Speicher" gab. War ja
kurz nachm Krieg, wir hatten ja nix.
Das ging recht hurtig aufm ZX81: Rechnernetzteil in die Steckdose,
folgendes eintippen:
1
10 REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2
20 FOR N=16514 to 16555
3
30 INPUT I
4
40 POKE N,I
5
50 NEXT N
Dann RUN, dann den vorher nach ENK'scher Manier von Hand
zusammengekloeppelten Maschinencode reintippern.
Dann mittels z.b.
RAND USR 16514
starten. Rechner stuerzt natuerlich ab. Dann Rechnernetzteil
ausstoepseln, einstoepseln, Fehler beheben, und wieder tippern anfangen.
Das eintippen des BASIC Programms ging schneller, als die Cassette
zurueckzuspulen, den Anfang finden, etc. bla.
Hallo,
Christoph M. schrieb:> Das finde ich dann zu viel Text.
Grundsätzlich finde ich es gut wenn man unnötigen Test vermeidet, aber
genau in diesem Fall ist das für alle Leser absolut kontraproduktiv. Und
das bisschen Test zusätzlich ist doch nun wirklich kein Problem, oder?
rhf
Dergute W. schrieb:> Weil der geniale Hmmm damals keine bessere Idee auf den 2> duennpfiffgelben Mittelseiten der Elrad namens "computing today"> veroeffentlicht hatte.> Und weils im ZX81 ueblicherweise keinen "freien Speicher" gab.
Auch da hätte wohl nichts dagegen gesprochen, den Maschinencode hinter
dem BASIC-Code abzulegen, damals hat das noch keine PMMU verhindert.
Aber die Antwort von Soul hat meine Frage plausibel und vor allem
sachlich beantwortet: Weil sich der Code in den REM-Zeilen danach mit
SAVE speichern liess.
Auf dem C64 waren wir da geradezu verwöhnt.
Moin,
Hmmm schrieb:> Auch da hätte wohl nichts dagegen gesprochen, den Maschinencode hinter> dem BASIC-Code abzulegen, damals hat das noch keine PMMU verhindert.
Dagegen haette am meisten gesprochen, dass hinter dem BASIC-Programm
iirc der "Bildschirmspeicher" war. Also das, was auf dem TV erschien.
Und da durften keinesfalls irgendwelche Bytes mit gesetztem Bit6 sein,
sonst sind schlimme Sachen passiert (also wieder Stecker raus, stecker
rein, weiter gehts)...
Gruss
WK
10 REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2
> 20 FOR N=16514 to 16555
3
> 30 INPUT I
4
> 40 POKE N,I
5
> 50 NEXT N
> Dann RUN, dann den vorher nach ENK'scher Manier von Hand> zusammengekloeppelten Maschinencode reintippern.> Dann mittels z.b.> RAND USR 16514> starten. Rechner stuerzt natuerlich ab. Dann Rechnernetzteil> ausstoepseln, einstoepseln, Fehler beheben, und wieder tippern anfangen.
Wenn es dann doch irgendwann lief, hat man die Zeilen 20ff natürlich
gelöscht und da das Hauptprogramm untergebracht.
Hmmm schrieb:> Auch da hätte wohl nichts dagegen gesprochen, den Maschinencode hinter> dem BASIC-Code abzulegen, damals hat das noch keine PMMU verhindert.
Das Maschinenprogramm darf an beliebiger Stelle im BASIC-Speicher
stehen. Die erste Zeile ist halt praktischer da leichter wiederzufinden.
Der Rest rutscht ja jedesmal wenn man was einfügt oder ändert.
Dergute W. schrieb:> Dagegen haette am meisten gesprochen, dass hinter dem BASIC-Programm> iirc der "Bildschirmspeicher" war
Ich meinte schon im BASIC-Speicherbereich, aber eben im freien Teil
davon statt innerhalb des bestehenden Codes.
Oder klebte der Bildschirmspeicher immer direkt hinter dem BASIC-Code
und wurde mit jeder neuen Codezeile verschoben? Dann war das
Sinclair-Zeug noch skurriler, als ich es in Erinnerung habe.
Hmmm schrieb:> Dergute W. schrieb:>> Dagegen haette am meisten gesprochen, dass hinter dem BASIC-Programm>> iirc der "Bildschirmspeicher" war>> Ich meinte schon im BASIC-Speicherbereich, aber eben im freien Teil> davon statt innerhalb des bestehenden Codes.
Bei den Basic-Interpreter der damaligen Zeit (ich bin ein Zeitzeuge...)
war das Programm (die Schluesselworte wurden tokenisiert und z.b. PRINT
war nur ein Byte) am "oberen" Speicherbereich (ROM ging bei der Z80 bei
0x0000 los, dann Basic-Interpreter, dann Video-RAM) und erst dann begann
der freie Programmspeicher im knappen RAM.
Wenn Du das Programm startete, wurden die Variablen beim "Ende des
physikalischen Speichers" absteigend angelegt bis Ende des
Programmtextes erreicht war: Es konnte Dir also passieren, dass mitten
im Programm auf einmal "Out of Memory" angezeigt wurde. Verschaerft
wurde das nur noch durch die Speicherverwaltung von Strings, z.B.
1
A=""
legte den String an einem Punkt x ab, wenn Du spaeter
1
A=A+"jetzt geht es los"+A
ausfuehrst, musste der Rechner schon 1975 eine Garbage-Collection
durchfuehren.
Basic (zumindest die Home-Computer-Versionen) hatte zwar Arrays, aber
keine keine Records (VAX-Basic hatte das). Ich weiss es nicht mehr, ob
es irgendeine dynamische Speicherverwaltung bei Basic gab.
Thomas W. schrieb:> Bei den Basic-Interpreter der damaligen Zeit (ich bin ein Zeitzeuge...)
Ich auch, aber eben C64-Veteran ohne grossen Kontakt zur Sinclair-Welt,
deshalb meine Detailfragen dazu.
Auf dem C64 war es wie gesagt einfach, es gab einen festen
BASIC-Programmspeicher von 0x0801 bis 0x9fff, die bekannten 38911 Bytes.
Diesen Bereich konnte man nach Lust und Laune nutzen. Wenn der
BASIC-Code sauber terminiert war (ich glaube, es war 2x 0x00), war dem
Interpreter alles dahinter egal. Mit einem z.B. 15 Bytes grossen
"Loader" hatte man also von 0x0810 bis 0x9fff Platz, und
praktischerweise hat LOAD standardmässig alles ab 0x0801 abgelegt, was
das File hergab, unabhängig vom Inhalt.
Meine Frage ist jetzt, was auf dem ZX81 dagegen sprach, auch einfach in
den freien Speicher hinter dem BASIC-Code zu POKEn. Ein "mitwandernder"
Bildschirmspeicher, der immer hinter der letzten BASIC-Zeile klebt und
diesen Speicher belegt, wäre natürlich ein Grund.
Die von Soul bestätigte Möglichkeit, den in REM-Zeilen verpackten Code
mit SAVE zu speichern, wäre wiederum nicht nötig, wenn man ihn beim
Start ohnehin mit einer POKE-Schleife neu erzeugt.
Hmmm schrieb:> wenn man ihn beim> Start ohnehin mit einer POKE-Schleife neu erzeugt.
Ich glaube Du hast die Poke-Schleife nicht richtig erfasst: Da werden
keine zuvor abgespeicherten, sondern interaktiv abgefragte Daten
"gepoket".
Klaus schrieb:> Ich glaube Du hast die Poke-Schleife nicht richtig erfasst: Da werden> keine zuvor abgespeicherten, sondern interaktiv abgefragte Daten> "gepoket".
Christoph sprach schon von dort abgelegtem Code, aber die Frage, warum
man auf dem ZX81 dafür einen REM-Platzhalter braucht, statt die Daten
hinter dem vom BASIC-Code genutzten Speicher abzulegen, stellt sich
unabhängig davon.
Nach dem, was ich zum ZX81-Bildschirmspeicher ("DFILE") finde, war
dessen Startadresse allerdings tatsächlich dynamisch. Das kann einem
natürlich wirklich den gefahrlos nutzbaren Bereich auf den BASIC-Code
beschränken und somit den REM-Zeilen-Trick notwendig machen.
Sinclair war schon recht speziell, auf dem ZX Spectrum fand ich die
diversen verschiedenen Cursor-Arten gewöhnungsbedürftig. Auch wenn sie
angesichts der Standard-Gummitastatur wohl ihre Berechtigung hatten.
Hmmm schrieb:> Thomas W. schrieb:>> Bei den Basic-Interpreter der damaligen Zeit (ich bin ein Zeitzeuge...)>> Ich auch, aber eben C64-Veteran ohne grossen Kontakt zur Sinclair-Welt,> deshalb meine Detailfragen dazu.>> Auf dem C64 war es wie gesagt einfach, es gab einen festen> BASIC-Programmspeicher von 0x0801 bis 0x9fff, die bekannten 38911 Bytes.
Was der ZX81 offensichtlich nicht konnte: Speicher reservieren so dass
man eine wohldefinierte Adresse fuer das Laden eines Binaries hatte. Die
erste Zeile Deines Programmes, die war wohldefiniert.
Eben beim Googlen habe ich dieses schoene Stueck Geschichte gefunden:
https://github.com/andrivet/zx81-typescript-emulator
Herrlich, was es jetzt alles gibt.
Thomas W. schrieb:> Was der ZX81 offensichtlich nicht konnte: Speicher reservieren
So einen Luxus hatte damals wohl keiner der Home-Computer. Auf dem C64
hätten weitere BASIC-Zeilen natürlich auch den dahinterliegenden
Maschinencode überschrieben, weil das für den Interpreter nur
ungenutzter Speicher war.
Thomas W. schrieb:> Herrlich, was es jetzt alles gibt.
Ja, und Systeme, die sich damals unfassbar schnell anfühlten, emuliert
man heute bequem auf dem Smartphone oder im Browser.
Hmmm schrieb:> Thomas W. schrieb:>> Was der ZX81 offensichtlich nicht konnte: Speicher reservieren>> So einen Luxus hatte damals wohl keiner der Home-Computer. Auf dem C64> hätten weitere BASIC-Zeilen natürlich auch den dahinterliegenden> Maschinencode überschrieben, weil das für den Interpreter nur> ungenutzter Speicher war.
Der TRS-80 Model I hatte eine Abfrage "mem Size=?" so dass
Speicherbereich reserviert werden konnte. Ebenso MBASIC (von MicroSoft)
unter CP/M. Unter DOS konnte man ja schon Speicher reservieren (fuer die
beruehmte Load and Stay Resident-Programme).
Moin,
Thomas W. schrieb:> Eben beim Googlen habe ich dieses schoene Stueck Geschichte gefunden:> https://github.com/andrivet/zx81-typescript-emulator
So wie ich das sehe, gibts ja da auch scans der Originalhandbuecher.
Wenns wirklich interessiert, da halt reingucken. Im ZX81 Basic
Programming.pdf gibts gegen Ende sehr ausfuehrliche Info, wie der
Speicher/Basic-gedoens intern organisiert ist.
Weil der ZX81 aber auch mit nur 1kByte RAM erstaunlich gut funktioniert,
gibt's da halt ein paar Besonderheiten, wie wandernden
Bildschirmspeicher, der auch noch in der Groesse nicht konstant sein
muss und bei leerem Bildschirm auf 25 Byte oder so zusammenschnurren
kann.
Das mit dem Maschinencode in der ersten REM-Zeile hatte gute Gruende und
nur weil man die noch nie gehoert hat, und's bei anderen Rechnern anders
ging, muss das nicht komplett Kacke sein.
In der c't gab's auch mal einen Artikel, der die Funktion der
Bildschrimausgabe detailliert beschrieben hat; das ist hoechst tricky
geloest, und dass <CR> im ZX81-Code und die Z80 "halt" Instruktion beide
dezimal 118 sind, ist kein Zufall...
</opa-erzaehlt-vom-krieg>
Gruss
WK
Thomas W. schrieb:> Was der ZX81 offensichtlich nicht konnte: Speicher reservieren so dass> man eine wohldefinierte Adresse fuer das Laden eines Binaries hatte. Die> erste Zeile Deines Programmes, die war wohldefiniert.
Der ZX81 hatte eine Systemvariable namens MEMTOP. Die enthielt die
oberste nutzbare Adresse plus 1. Wenn man die verkleinerte, konnte man
Platz schaffen für Maschinencode.
Aber man konnte diesen Maschinencode nicht speichern. Zumindest nicht
mit Bordmitteln auf Cassette. D.h. der User musste ein BASIC-Programm
laden, welches den Code da oben hin POKEd, dann NEW eintippen und ein
weiteres Programm laden, welches den Code nutzt. Die Methode mit dem
eingebetteten Code war da praktischer.
Soul E. schrieb:> Der ZX81 hatte eine Systemvariable namens MEMTOP. Die enthielt die> oberste nutzbare Adresse plus 1. Wenn man die verkleinerte, konnte man> Platz schaffen für Maschinencode.
Demnach war die Kombination aus REM-Platzhalter und POKE-Schleife zur
Laufzeit (mit verdoppeltem Speicherbedarf) tatsächlich unnötig.
Code hat man am besten in erstere gefüllt und danach (ohne die ggf.
dafür verwendete POKE-Schleife) gespeichert, und zur Laufzeit erzeugte
Daten konnte man auch hinter MEMTOP packen, um nicht die REM-Platzhalter
mitladen zu müssen.
Soul E. schrieb:> D.h. der User musste ein BASIC-Programm> laden, welches den Code da oben hin POKEd, dann NEW eintippen und ein> weiteres Programm laden, welches den Code nutzt.
Konnte man aus dem BASIC-Code nicht direkt nach dem POKEn mit RAND USR
den dort abgelegten Code aufrufen?
Hmmm schrieb:> Demnach war die Kombination aus REM-Platzhalter und POKE-Schleife zur> Laufzeit (mit verdoppeltem Speicherbedarf) tatsächlich unnötig.
Niemand hat die POKE-Schleife zur Laufzeit genutzt. Die wurde verwendet,
um den Code einzutippen und hat ggf eine Prüfsumme berechnet. Danach
wurde sie gelöscht und durch das eigentliche Programm ersetzt.
Nicht vergessen: der ZX81 konnte nur einen Befehl pro Zeile und hatte
kein READ/RESTORE/DATA. Man müsste POKEs mit Konstanten also alle
aussschreiben. Das wären dann 10 Bytes um ein Byte OpCode abzulegen.
> Code hat man am besten in erstere gefüllt und danach (ohne die ggf.> dafür verwendete POKE-Schleife) gespeichert, und zur Laufzeit erzeugte> Daten konnte man auch hinter MEMTOP packen, um nicht die REM-Platzhalter> mitladen zu müssen.
Exakt.
> Soul E. schrieb:>> D.h. der User musste ein BASIC-Programm>> laden, welches den Code da oben hin POKEd, dann NEW eintippen und ein>> weiteres Programm laden, welches den Code nutzt.>> Konnte man aus dem BASIC-Code nicht direkt nach dem POKEn mit RAND USR> den dort abgelegten Code aufrufen?
Natürlich ging das, aber das POKE-Programm stand dann noch im
BASIC-Speicher. "10 POKE 48192,55" braucht 11 Bytes um ein Byte
abzulegen. Daher hat man das üblicherweise gelöscht und dann die
resident geladene Routine genutzt.
Nach dem Ändern von MEMTOP war ein "NEW" erforderlich, um die anderen
Systemvariablen anzupassen.
Gunnar F. schrieb:> geht das auch in Maschinencode?
Nicht ganz so Begrifflich schön wie in C aber man stelle sich einen
Instruction-Pointer vor, der auf den Start zeigt, meistens bei "0".
(oder sowas wie mov bp,sp)
Arduino F. schrieb:> ASM kennt keine Funktionen, und damit auch keine Funktionsparameter.
Na, das ist auch Unfug, weil sich das auf C bezieht oder andere
Hochsprachen.
Man erstellt sich stattdessen ein "Modul" wie man so schön sagt, ist
aber rein funktionell nichts anderes.
Ein weiterer Unterschied wäre, dass bei Asm wirklich nur die Funktion im
Hexeditor steht, und nicht auch noch ein halber Roman hintendran mit
fragwürdigen Inhalten.
Was man sich merken kann, und das ist auch wichtig, das ist, dass
Assembler, bzw. die Assembler selber nicht gut standardisiert sind -
einmal das nicht, und dass zum anderen die CPUs auch verschieden sein
können, und damit die Hardware und damit auch die
Hardwareprogrammierung.
Hochsprachen wie C erleichtern den Umgang mit vielen verschiedenen
Mikrocontrollern sehr.
Günter K. schrieb:> was ist eine: "PMMU"?
Nichts, was es in 50 Jahre alten Rechnern gegeben hätte. Du musst also
nicht deine Speicherkapazität mit solch unnützem Wissen verstopfen.
Günter K. schrieb:> Lieber Hmmm, was ist eine: "PMMU"?
Eine Paged Memory Management Unit. Die kümmert sich unter anderem darum,
dass Prozesse nur auf Speicherbereiche zugreifen können, bei denen das
gewollt ist.
Sowas hatten die damaligen Computer nicht, jeglicher auf der CPU
laufende Code konnte immer auf alles (Speicher, Peripheriebausteine
etc.) zugreifen.
Thomas W. schrieb:> LIPS ist LISP,> und da ist ;; der Comment-delimiter.
ist ;; der Comment-delimiter, - als das Kommentartrennzeichen;
so lerne ich doch noch, immer noch ein bisschen Englisch dazu.
Liebe Grüße
Günter K.
(ENK)
😊
Hallo liebe Leute,
... Wenn ein Macro mehr als ein Argument erwartet dann können
die Argumente durch ein (,) getrennt angegeben werden
wie bei anderen Assembler Befehlen üblich.
Definieren wir ein weiteres Macro in unserer my_lib.INC:
%macro sleep 1
mov rcx, %1
_wait_loop
nop
dec rcx
jnz _wait_loop
%endmacro
So I go sleep
Gute Nacht liebe Leute,
liebe Grüße
Günter K.
(ENK)
😊
Cyblord -. schrieb:> "Englisch" wurde der Liste der Dinge,> die du nicht kannst, hinzugefügt.
Hallo liebe Leute, hallo Cyblord,
Guten Tag, - ja, leider stimmt das.
Liebe Grüße
Günter K.
(ENK)
PS.: Ich mache weiter 😊
Klaus F. schrieb:>> PS.: Ich mache weiter 😊>> Mit WAS ?
Mit dem JC, - .
Danach ältere 8086, - nebenbei,
ein bisschen Assembler (als XP) unter DOS
(Ob das Betriebssysetem das noch kann,
weiß ich noch nicht.
Mit lieben Grüßen
Günter K.
(ENK)
😊
Günter K. schrieb:> Mit dem JC
Gute Idee - arbeite die Elektor-Bücher durch - kann ich nur immer
wiederholen!
Günter K. schrieb:> Danach ältere 8086, - nebenbei,> ein bisschen Assembler (als XP) unter DOS
Lass es! Das bringt nix. Mach die ganz einfachen Sachen Schritt für
Schritt! Der Junior ist ausreichend dafür. Und den hast du ja vor dir
liegen.
Günter K. schrieb:> Mit dem JC, - .> Danach ältere 8086, - nebenbei,> ein bisschen Assembler (als XP) unter DOS> (Ob das Betriebssysetem das noch kann,> weiß ich noch nicht.
Sehr gut wenn auch Menschen im fortgeschrittenen Alter sich IT- und
Elektronikmäßig noch was vornehmen!
Hallo liebe Leute,
für das kommende Musikprogramm für den JC,
habe ich auf einem Bred-Board vom Arduino 6 Tasten gesteckt,
denn im Lied kommen 6 verschiedene Töne vor.
Hier eine speziell gedachte Anordnung der Tastatur
für - ein bestimmtes Lied.
3 schwarze Tasten und 3 weiße Tasten;
zur Orientierung zu den Violine-Noten.
Die schwarzen Tasten liegen auf der Linie und
die weißen Tasten liegen zwischen den Linien.
Allerdings beziehen sie sich nur auf die mittleren 3 Linien, denn die
unteren Noten z.B.: die für die E-Linie und die Oberen z.B.: die für
F-Linie, kommen nicht als Note vor.
Im Noten-Bild für die Noten, kommen natürlich alle 5 Linien vor.
Folgende Töne kommen von unten nach oben vor, beginnend bei G4:
G4(s), A4(w), B4(s), C5(w), D5(s) und E5(w). (s)=schwarz, (w)=weiß,
angeordnet. - B = International, ist gleich: H = Deutsch.
Die oberste und unterste Linie, - muss man sich dazu-denken.
Das Programm ist noch nicht eingegeben. Das Lied wird
manuell eingegeben werden. - Noch, ist es noch nicht so weit.
Viele liebe Grüße
Günter K.
(ENK)
😊
Hallo liebe Leute,
Hallo lieber Wolfgang R.
Wolfgang R. schrieb:> Lass es! Das bringt nix. Mach die ganz einfachen Sachen Schritt für> Schritt! Der Junior ist ausreichend dafür. Und den hast du ja vor dir> liegen.
DANKESCHÖN für den Rat;
ok, den habe ich ja auch noch nicht durch.
Liebe Grüße
Günter K.
(ENK)
:-)
Günter K. schrieb:>> Nachhilfe im Notenlesen/schreiben wäre auch nicht verkehrt...> Wieso?Günter K. schrieb:> Die schwarzen Tasten liegen auf der Linie und> die weißen Tasten liegen zwischen den Linien.> G4(s), A4(w), B4(s), C5(w), D5(s) und E5(w). (s)=schwarz,
Du machst dir die Welt, wie sie dir gefällt.
Hallo liebe Leute,
Günter K. schrieb:> Hier eine speziell gedachte Anordnung der Tastatur> für - ein bestimmtes Lied.
-Es ist keine übliche Klaviatur.-
=================================
Es sind nur 6 Tasten (sonst nichts),
die ich an den Junior-Computer anschließen werde.
Wie ich das -richtig- mache,
ist natürlich -mir-, überlassen;
wie gesagt: für - ein bestimmtes Lied.
😊))
Günter K. schrieb:> Im Noten-Bild für die Noten,> kommen natürlich alle 5 Linien vor.
Also dem Notenbild des Liedes, kommen nicht mehr
als 6 verschiedene Töne vor, und diese werden dann
mit dieser Tastatur gespielt, mehr nicht.
Aber mehr, als: Ein Pieps. Denn Du Klaus schriebst im Beitrag #7899193:
>> Aber egal, der JC wird sowieso nie auch nur einen Pieps ausgeben.
Folgende Töne kommen -nur- in dem Lied, von unten nach oben vor,
denn ich schrieb:
> Folgende Töne kommen von unten nach oben vor,> beginnend bei G4:> G4(s), A4(w), B4(s), C5(w), D5(s) und E5(w). (s)=schwarz, (w)=weiß,> angeordnet. - B = International, ist gleich: H = Deutsch.> Die oberste und unterste Linie, - muss man sich dazu-denken.
-Das bestimmte Lied, hat u.a. nur 6 Töne.-
Diese Tasten haben nur diese Farbe; siehe oben.
Die dann evtl. in der Melodie wiederholt gespielt werden (oder nicht).
Auch über die Tonlänge, habe ich keine Angaben gemacht.
Es sind nur 6 Tasten, die ein bestimmtes Lied,
erklingen lassen sollen.
Liebe Grüße
Günter K.
;-)
Günter K. schrieb:> Es sind nur 6 Tasten, die ein bestimmtes Lied,> erklingen lassen sollen
Vielleicht solltest du nicht nur längliche Erklärungen und Ankündigungen
machen, sondern einfach mal liefern.
Günter K. schrieb:> Aber mehr, als: Ein Pieps.
In deinem Kopf ganz sicher, aber niemals in der Realität.
Hallo liebe Leute,
ein schöner Sonntag sei gewünscht.
Klaus schrieb:> In deinem Kopf ganz sicher, aber niemals in der Realität.
Ja, - noch in meinen Kopf - und erst danach in Realität.
denn ich habe das Programm noch nicht geschrieben.
Später danach, kommt die Klaviatur
aus dem Junior Buch 2 dran.
Liebe Grüße
Günter K.
(ENK)
😊
.
.
HURRA
.
.
1200 Beiträge sind erreicht!
Und das in nur gut 9 Monaten.
.
.
Schon bald werden wir hier Josef G. (bome) überholen,
dessen Thread erst 1929 Beiträge in 12 Jahren hat.
.
Dort gibt es ähnlich kreative Idee,
so wie hier das neue Klavier dort die neue 7-Segment-Darstellung:
https://www.mikrocontroller.net/attachment/660291/Siebenseg.pngBeitrag "Re: 8bit-Computing mit FPGA"
oder verbesserte Signalnamen und Opcodes, die man sich besser merken
kann:
Beitrag "Re: 8bit-Computing mit FPGA"
.
Allerdings kommt bei Josef G. (bome) gelegentlich was funktionsfähiges
raus, wenn auch "speziell" und praktisch niemals brauchbar.
Unser Günter hier produziert nur warme Luft, bisher.
.
.
Ich lese solche Beiträge gerne, zur Erbauung.
.
.
Günter K. schrieb:> denn ich habe das Programm noch nicht geschrieben.
Du wirst es auch nie geschrieben haben werden.
Denn Du scheiterst immer noch an den absoluten Grundlagen.
Hallo liebe Leute, hallo lieber Wolfgang R.,
ich wage mich kaum mehr (wegen Klaus) zu melden. -
But, never mind.
Ich habe die RAM ICs ausgetauscht. Das Prg.: 0x200_440Hz
läuft jetzt auch ab ADR.: 0x200. - Dabei brauchte ich nicht-einmal den
oberen Speicherbereich zu löschen. Weil ich auch schon ab ADR.: 0x300
eingetragen hatte, wo es auch noch immer lief.
Also, wieder mal mehr als: "Ein Pieps."
Klaus schrieb:> Aber egal, der JC wird sowieso nie auch nur einen Pieps ausgeben.
Das Programm, als solches, habt Ihr ja schon gesehen,
Christoph M. schrieb es in seinen PICO; - ENORM!
Also 6502 Emulator!
Liebe Grüße
Günter K.
(ENK)
😊
PS.: Im Kommentar schrieb ich noch: "; ... PIN 4".
Günter K. schrieb:> Hallo liebe Leute, hallo lieber Wolfgang R.,> ich wage mich kaum mehr (wegen Klaus) zu melden. -> Ich habe die RAM ICs ausgetauscht. Das Prg.: 0x200_440Hz> läuft jetzt auch ab ADR.: 0x200. - Dabei brauchte ich nicht-einmal den> oberen Speicherbereich zu löschen.
Haette ich nicht gedacht. Aber 40 Jahre als Geraete haben vielleicht ein
Eigenleben.
Dann kannst Du jetzt weiter die Junior-Buechern durcharbeiten.
Ich hoer' jetzt auf, mein Buero hat Mittagsonne und daher ist jetzt
Siesta angesagt.
Günter K. schrieb:> Ich habe die RAM ICs ausgetauscht. Das Prg.: 0x200_440Hz> läuft jetzt auch ab ADR.: 0x200. - Dabei brauchte ich nicht-einmal den> oberen Speicherbereich zu löschen. Weil ich auch schon ab ADR.: 0x300> eingetragen hatte, wo es auch noch immer lief
Du hast die RAMs unter Spannung ausgetauscht?????
Hallo Liebe Leute,
auf einer Antistatik-Matte steht der JC.
Klaus schrieb:> Du hast die RAMs unter Spannung ausgetauscht?????
No Coment!
LG. Günter K.
(ENK)
😊
\|/
Siesta, Sommer, Sonne, schöne Zeit!
/|\
Klaus F. schrieb:> oder verbesserte Signalnamen [...], die man sich besser merken kann:> Beitrag "Re: 8bit-Computing mit FPGA"
Sind alles interne Steuersignale, die man sich nicht merken muss.
Die wurden auch nicht "verbessert", die waren schon immer so.
Hallo liebe Leute
10) Die Kommando-Tasten des Editors:
Sobald der Editor geatartrt ist, verlieren die Aufschriften
AD, DA, +, PC und Go auf den Kommandotasten ihre Gültigkeit.
Von nun an gilt die 2. Aufschrift der Kommando-Tasten:
SEARCH, INPUT, INSERT, DELETE und SKIP. Mit diesen Komandos lassen
sich Instruktionen in den Junior-Computer eingeben (INSERT, INPUT),
wieder herausholen (DELETE) oder auch aufsuchen (SARCH).
Ferner ist es möglich, von Instruktion zu Instruktion zu springen.
Das Komando hierfür ist SKIP.
Diese Kommandos wollen wir
nun nacheinander bestprechen:
?: Demnach fällt "GO" unter INPUT? Besser: INPUT unter "GO". - ?
Liebe Grüße
Günter K.
(ENK)
:-)
Vielleicht erscheint die Antwort im weiteren Text, - ?
Günter K. schrieb:> INPUT unter "GO". - ?
D.H.:
Ich habe "GO" als INPUT verwendet,
und zwar, dem ElektorJuniorComputerBuchDE2 !
Doch auf einmal ist das ganze Buch weg!!
Ich hätte bitte wieder gerne das Buch:
ElektorJuniorComputer Buch 2
Liebe Grüße
Günter K.
(ENK)
:-)
Vorher hatte ich es nach einer "Wiederherstellung"
wiedergefunden und jetzt ist es ganz weg,
Das sog. Tastenprellen ist Furchtbar!
:-(
Günter K. schrieb:> Das sog. Tastenprellen ist Furchtbar!
Es ist alleine deine Entscheidung, mit dem denkbar ungeeignetsten
Computer programmieren zu erlernen.
Hallo,
Klaus schrieb:> Es ist alleine deine Entscheidung, mit dem denkbar ungeeignetsten> Computer programmieren zu erlernen.
Der Computer ist nicht ungeeignet, für das was er (wie er immer wieder
sagt) will ist der JC bestens geeignet.
Das Problem ist Günters unkoordinierte Vorgehensweise und seine
beharrliche Weigerung auf die bisher erfolgte Hilfe einzugehen.
rhf
Hallo liebe Leute,
ich schreibe an alle.
Klaus schrieb:> Es ist alleine deine Entscheidung, mit dem denkbar ungeeignetsten> Computer programmieren zu erlernen.
Liebr Klaus, der Computer gefällt mir aber sehr!
Günter K. schrieb:> Doch auf einmal ist das ganze Buch weg!!
Ich habs wiedergefunden. - Jedoch:
Günter K. schrieb:> Das sog. Tastenprellen ist Furchtbar!> :-(
Jedoch das sog. Tastenprellen, ist gar kein Tastenprellen,
sondern, das Zeitfenster, wo die Tasten eingelesen werden
liegt irgendwie falsch; folglich ruft der MONITOR
über die CPU den IRQ falsch auf. Das Zeitfenster steht zu lange offen.
Wenn es mir gelingt, die Taste, so geschickt anzutippen,
dass der Schließer früh genug öffnet, prellt die Taste nicht!
Die Frage zu Folgendem:
Der MONITOR liegt ja in einem ROM, ist dort unbeweglich.
Wenn es in ein RAM kopiert wird ist es beweglich.
Kann man die Laufzeit vom IRQ beeinflussen,
dass das Zeitfenster früher schließt?
(Es wird ja kein NMI sein, oder?)
dass dadurch, das sogenannte Tastenprllen verschwindet?
Liebe Grüße
Günter K.
(ENK)
:-)
Roland F. schrieb:> Der Computer ist nicht ungeeignet, für das was er (wie er immer wieder> sagt) will ist der JC bestens geeignet.
Hast du dich mit dem Delorian verfahren? Wir leben nicht mehr im Jahr
1981 . . .
> Das Problem ist Günters unkoordinierte Vorgehensweise und seine> beharrliche Weigerung auf die bisher erfolgte Hilfe einzugehen.
Was seine Gründe hat, die kein Mensch auf dieser Welt ändern wird. Das
neudeutsche Zauberwort heißt "problem mitigation", auf gut Deutsch,
Problemeindämmung
https://dict.leo.org/englisch-deutsch/mitigation
Günter K. schrieb:> Jedoch das sog. Tastenprellen, ist gar kein Tastenprellen,> sondern, das Zeitfenster, wo die Tasten eingelesen werden> liegt irgendwie falsch; folglich ruft der MONITOR> über die CPU den IRQ falsch auf. Das Zeitfenster steht zu lange offen.> Wenn es mir gelingt, die Taste, so geschickt anzutippen,> dass der Schließer früh genug öffnet, prellt die Taste nicht!
Es ist unbedienbarer Mist, und deine Fehleranalyse ist natürlich ebenso
Mist.
Aber du magst es ja maximal kompliziert, wie man schon an deinem Excel
gesehen hatte. Insofern ist die Kombination aus JC und dir perfekt
dafür, dass es nicht aus Versehen Fortschritte geben wird.
Günter K. schrieb:> Jedoch das sog. Tastenprellen, ist gar kein Tastenprellen,
Doch, mal ganz sicher.
> sondern, das Zeitfenster, wo die Tasten eingelesen werden> liegt irgendwie falsch; folglich ruft der MONITOR> über die CPU den IRQ falsch auf. Das Zeitfenster steht zu lange offen.> Wenn es mir gelingt, die Taste, so geschickt anzutippen,> dass der Schließer früh genug öffnet, prellt die Taste nicht!
Unfug. Die Tasten, erst recht bei dem Alter, prellen mechanisch. Wenn
man das weghaben will, muss man es in Software entprellen. In Hardware
geht es hier nicht, da die Tasten an einer Matrix hängen.
> Der MONITOR liegt ja in einem ROM, ist dort unbeweglich.> Wenn es in ein RAM kopiert wird ist es beweglich.> Kann man die Laufzeit vom IRQ beeinflussen,> dass das Zeitfenster früher schließt?
Nö.
> (Es wird ja kein NMI sein, oder?)
Vollkommen egal. Die Adressen für Reset, IRQ und NMI liegen bei deinem
Aufbau im EPROM. Wenn man die ändern will, muss man den ERPROM ändern.
Rein in Software geht das nicht.
> dass dadurch, das sogenannte Tastenprllen verschwindet?
Nein.
Falk B. schrieb:>> ElektorJuniorComputer Buch 2
Lieber Falk, DANKESCHÖN für das Buch, -PRIMA-!
endlich ist es wieder richtig auf dem Rechner!
Das freut mich sehr!
Liebe Grüße
Günter K.
(ENK)
😊
Roland F. schrieb:> Der Computer ist nicht ungeeignet, für das was er (wie er immer wieder> sagt) will ist der JC bestens geeignet.
Für gesunde, geistig fitte Menschen ist der JC in der heutigen Zeit
schlicht Folter.
Aber vielleicht ist Günter ja Masochist. Ich habe allerdings den
Eindruck, er hat überhaupt kein Schmerzempfinden.
Falk B. schrieb im Beitrag #7900706 siehe unten:
Günter K. schrieb;
>> (Es wird ja kein NMI sein, oder?)>> Vollkommen egal. Die Adressen für Reset, IRQ und NMI liegen bei deinem> Aufbau im EPROM. Wenn man die ändern will, muss man den ERPROM ändern.> Rein in Software geht das nicht.>>> dass dadurch, das sogenannte Tastenprllen verschwindet?>> Nein.
Liebr Falk,
ja das glaube ich schon. - Aber irgendwie,
muss sich der MONITOR ja flexiebel machen;
nur das herauszufinden, ist zu kompliziert für mich.
Ich brauche sowieso eine große Tastatur.
Irgendwie, muss auch das gehen.
Ich weiß nur noch nicht wie?
Liebe Grüße
(ENK)
:-)
Falk B. schrieb:> Günter K. schrieb:>> Jedoch das sog. Tastenprellen, ist gar kein Tastenprellen,>> Doch, mal ganz sicher.
Nun ja, bei 40 Jahren alten Tasten ist das schon moeglich.
> Unfug. Die Tasten, erst recht bei dem Alter, prellen mechanisch. Wenn> man das weghaben will, muss man es in Software entprellen. In Hardware> geht es hier nicht, da die Tasten an einer Matrix hängen.
Noe, die Tasten sind schon entprellt, aber nicht sehr gut: Wenn Du
meinen Beitrag vom 20250301@1742
(Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?") anguckst (und das
Stueckchen 6502 Code anguckst) analysiert der JC die fallende Flanke bei
der Taste, macht ein Refresh des Displays und guckt, ob die Taste jetzt
freigegeben wurde. Wenn die Tasten wirklich nicht mehr richtig spielen
(also wirklich prellen), dann ist der Austausch der Tasten der einzige
Weg (da die Tastatur des Juniors aus 22 Tasten besteht und eine Taste
bei Reichelt 7,30EUR kostet -> 160EUR. Ob es das Wert ist?)
>> Der MONITOR liegt ja in einem ROM, ist dort unbeweglich.>> Wenn es in ein RAM kopiert wird ist es beweglich.>> Kann man die Laufzeit vom IRQ beeinflussen,>> dass das Zeitfenster früher schließt?>> Nö.>>> (Es wird ja kein NMI sein, oder?)>> Vollkommen egal. Die Adressen für Reset, IRQ und NMI liegen bei deinem> Aufbau im EPROM. Wenn man die ändern will, muss man den ERPROM ändern.> Rein in Software geht das nicht.
Das ist so nicht richtig: Die Vektoren NMI ($FFFA), RESET ($FFFC) und
IRQ/BRK ($FFFE) sind im (nicht komplett adressierten) EPROM, aber NMI
und IRG zeigen auf $1F2F und $1F32, die aber nur auf einen indirekten
JMP zeigen. die aktuelle NMI/IRQ-Adresse findest Du im RAM der RIOT
(6532), jeweils $1A7A und $1A7E.
>>> dass dadurch, das sogenannte Tastenprllen verschwindet?>> Nein.
Leider ist der richtige Weg der Austausch der Tasten mit ca. 150EUR.
Oder neu Schreiben der Routinen SCAND, SHOW und CONVD (Junior-Computer
deutsch II, p. 131)
Günter K. schrieb:> Kann man die Laufzeit vom IRQ beeinflussen,> dass das Zeitfenster früher schließt?
Ein Programmierer könnte das.
Würde er/sie/es allerdings nicht tun, da das eine der dümmsten Ideen
ist, die es gibt.
Hallo Liebe Leute,
Günter schrieb:>> Das Zeitfenster steht zu lange offen.>> Wenn es mir gelingt, die Taste, so geschickt anzutippen,>> dass der Schließer früh genug öffnet, prellt die Taste nicht!Klaus schrieb:> Es ist unbedienbarer Mist, und deine Fehleranalyse ist natürlich ebenso> Mist.
Wenn Du das so meinst.
Liebe Grüße
Günter K.
(ENK)
:-)
Günter K. schrieb:> Wenn Du das so meinst.
Seine Sprache ist unangenehm, aber die Faktenlage bestätigt ihn.
Mein Rat:
Konzentriere dich auf die Fakten.
Denn deine Annahmen sind teilweise irrational.
Bedenke:
Der Weg in die Hölle ist mit falschen Annahmen gepflastert.
Hallo,
Falk B. schrieb:> Wir leben nicht mehr im Jahr 1981 . . .
Ich bin ganz deiner Meinung, aber Günter möchte nun mal antike Technik
mit antiken Methoden in Betrieb nehmen.
Und um die Sache nicht noch weiter zu verkomplizieren ist es wenig
sinnvoll ihm "neumodische" Methoden zu empfehlen, die er überhaupt nicht
versteht.
rhf
Roland F. schrieb:> Das Problem ist Günters unkoordinierte Vorgehensweise und seine> beharrliche Weigerung auf die bisher erfolgte Hilfe einzugehen.
Zuersteinmal ein Dankeschön!
Doch, doch, - die Hilfe schlage ich -nicht ganz- aus, - denn
- ich weiß, dass wie im Jahre 2025 leben, heute am 01.06. .
Was man damals für Hürden nehmen musste, um doch noch
etwas Assemblerartiges hinzubekommen, ist erstaunlich.
Liebe Grüße
Günter K.
(ENK)
:-)
Roland F. schrieb:> Günter möchte nun mal antike Technik> mit antiken Methoden in Betrieb nehmen
Und ich dachte, er möchte etwas Programmieren lernen.
Habe ich mich wohl getäuscht.
Günter K. schrieb:> Roland F. schrieb:>> Das Problem ist Günters unkoordinierte Vorgehensweise und seine>> beharrliche Weigerung auf die bisher erfolgte Hilfe einzugehen.>> Zuersteinmal ein Dankeschön!> Doch, doch, - die Hilfe schlage ich -nicht ganz- aus, - denn> - ich weiß, dass wie im Jahre 2025 leben, heute am 01.06. .
Almost but not quite completely wrong.
> Was man damals für Hürden nehmen musste, um doch noch> etwas Assemblerartiges hinzubekommen, ist erstaunlich.
Daher verstehe ich nicht, warum Du Dir das so antust: Jetzt faellt Dir
Dein Rechner noch auseinander und Du hast jetzt gesehen, wie muehsam das
Assembler-programmieren war.
Arduino F. schrieb:> Konzentriere dich auf die Fakten.
Denn der Taster prellt nicht!
Und das der Taster zu lange als geschlossen gilt, ist Fakt,
(Hoffendlich kein NMI)
denn wenn der IRQ, -die Matrix- nicht mehr freigibt,
kann auch kein weiteres Zeichen eingelesen werden.
Dann ist das so genannte "Prellen" weg.
Liebe Grüße
Günter K.
(ENK)
:-)
Günter K. schrieb:> Und das der Taster zu lange als geschlossen gilt, ist Fakt,
Ein Fakt ist eine durch Messungen oder Beobachtungen belegte und
beweisbare Tatsache. Wie kommst du denn konkret zu der obigen Aussage?
Hast Du mit einem Oszilloskop die Zeit gemessen, während der der Taster
geschlossen war? Mit einem Logic Analyzer? Oder eher durch Überlegen mit
einem Kamillentee in der Hand? "Und was ich mir überlegt (oder besser,
bei Deiner Art des Überlegens und Anwendung der deutschen Sprache:
zusammengesponnen) habe, MUSS ganz einfach identisch mit einem Fakt
sein..."
Günter K. schrieb:> Jedoch das sog. Tastenprellen, ist gar kein Tastenprellen,> sondern, das Zeitfenster, wo die Tasten eingelesen werden> liegt irgendwie falsch; folglich ruft der MONITOR> über die CPU den IRQ falsch auf. Das Zeitfenster steht zu lange offen.> Wenn es mir gelingt, die Taste, so geschickt anzutippen,> dass der Schließer früh genug öffnet, prellt die Taste nicht!
Du hast doch das Junior Computer II-Buch wiedergefunden? Wenn Du in dem
Buch Seite 99 anguckst, findest Du eine Erklaerung wie die Tastatur und
das Display angesteuert wird. Es ist sogar auf Seite 127 erklaert, wie
die Entprellung realisiert wurde.
Hint: Bei der Basisplatine wird der Interrupt nicht benutzt, der wird
erst bei der Verwendung der seriellen Schnittstelle (Input PA7)
verwendet.
Hallo liebe Leute,
Arduino F. schrieb:> Ein Programmierer könnte das.> Würde er/sie/es allerdings nicht tun, da das eine der dümmsten Ideen> ist, die es gibt.
Das glaube ich nicht! - Vielen Dank für die Nachricht.
Liebe Grüße
Günter K.
(ENK)
:-)
Günter K. schrieb:> Das glaube ich nicht!
Dazu gibt es auch keine Notwendigkeit.
Du darfst so lange in deinen Irrtümern und Verwirrungen stecken bleiben,
wie du möchtest.
Ist nur schon fast schmerzhaft, dir dabei zuzuschauen.
Thomas W. schrieb:> Du hast doch das Junior Computer II-Buch wiedergefunden?
- Ja Dank Falk!
> Wenn Du in dem> Buch Seite 99 anguckst, findest Du eine Erklaerung wie die Tastatur und> das Display angesteuert wird. Es ist sogar auf Seite 127 erklaert, wie> die Entprellung realisiert wurde.>> Hint: Bei der Basisplatine wird der Interrupt nicht benutzt, der wird> erst bei der Verwendung der seriellen Schnittstelle (Input PA7)> verwendet.
Vielen, vielen DANK!
Erstaunlich(!), -ohne Interrupt- ich bin gespannt.
Ja, die serielle Schnittstelle interessiert mich sehr.
Denn ich möchte den JC erweitern..
Aber ich kann noch nicht einmal die ganzen Befehle auswendig.
Wenn ich wenigstens die Befehle ausgeschrieben in Englisch hätte.
Die Abkürzungen sind mir zu wenig. - Zum auswendig lernen sind sie ja
gut,
doch ich möchte verstehen, was sie bedeuten:
Zum Beispiel: BCC, BRANCH ON C=0, Also BRANCH IF CARRY=0 ?
D.h.: Wenn das "C"-Flag aus ist, dann verzweige (BRANCH).
Das aber für alle Befehle.
Nochmals vielen Dank,
Liebe Grüße
Günter K.
(ENK)
:-)
Günter K. schrieb:> Wenn ich wenigstens die Befehle ausgeschrieben in Englisch hätte.> Die Abkürzungen sind mir zu wenig. - Zum auswendig lernen sind sie ja
sag mal ist das dein Ernst? Du lässt dir hier alles vorkauen bist selbst
aber zu faul mal Google zu benutzen? ** Seit gut 5 Monaten ist kein
Fortschritt erkennbar und deine Ideenwerden immer wilder...
**
https://www.masswerk.at/6502/6502_instruction_set.html
Moin,
Günter K. schrieb:> Wenn ich wenigstens die Befehle ausgeschrieben in Englisch hätte.> Die Abkürzungen sind mir zu wenig. - Zum auswendig lernen sind sie ja> gut,> doch ich möchte verstehen, was sie bedeuten:> Zum Beispiel: BCC, BRANCH ON C=0, Also BRANCH IF CARRY=0 ?> D.h.: Wenn das "C"-Flag aus ist, dann verzweige (BRANCH).> Das aber für alle Befehle.
Da empfehle ich das Buch "Programmierung des 6502" (oh wunder).
Da steht z.b. bei meiner deutschen Ausgabe auf Seite 113:
branch on carry clear
Verzweigen bei geloeschtem Uebertrag
...
Testet die Uebertragsflagge C. Ist C=0, dann verzweigt die
Abarbeitung...blablupp...
Damals schon gut angelegte DM 44.-- :-)
Gruss
WK
Thomas Z. schrieb:> sag mal ist das dein Ernst?
Natürlich ist es sein Ernst.
Anstatt einfach mal ein paar simple Programme mit Hilfe eines
Online-Assemblers https://www.masswerk.at/6502/assembler.html und des
zugehörigen Emulators auszuprobieren - das kostet beim ersten Programm
vielleicht 5 Minuten, danach jeweils ein paar Sekunden wenn man was dran
ändern will - tippt er lieber stundenlang in einen völlig ungeeigneten
JC Hex-Zahlen ein, ärgert sich über defekte RAMs, eine kaputte Tastatur,
Tippfehler, nicht abspeicherbare Programme, und vieles mehr.
Jeder normale Mensch ist froh, dass diese Zeiten seit beinahe 50 Jahren
vorbei sind. Außer Günter, der ist Masochist und lässt sich gerne
foltern.
Klaus schrieb:> Dergute W. schrieb:>> Testet die Uebertragsflagge>> Sowas passiert halt, wenn man zwanghaft alles übersetzen möchte.
Hat mich damals deutlich weniger gestoert als Jahre spaeter der aehnlich
fies uebersetzte Kernighan/Ritchie mit Uebersetzer, Binder und Vektoren
(Compiler, Linker, Arrays).
Gruss
WK
Thomas Z. schrieb:> aber zu faul mal Google zu benutzen? ** Seit gut 5 Monaten ist kein> Fortschritt erkennbar und deine Ideenwerden immer wilder...>> **> https://www.masswerk.at/6502/6502_instruction_set.html
Ja, DANKE, - und ich habe so viele Bücher, wo es nicht drin seht.
Und wieder DANKE, erst jetzt hab' ichs richtig vor Augen!
Liebe Grüße
Günter K.
(ENK)
:-)
Auch wenn ich das Richtige noch nicht gefunden habe, ich gebe nicht
auf!!
Das hat mit Faulheit oder ähnlichem nichts zu tun,
Selbst beim GOOGELN kommen nicht die richtigen Antworten!
Günter K. schrieb:> ... ... erst jetzt hab' ichs richtig vor Augen!
so meinte ich!
Ich muss leider wieder Abwarten!!
Liebe Grüße
Günter K.
(ENK)
:-)
Günter K. schrieb:> Auch wenn ich das Richtige noch nicht gefunden habe, ich gebe nicht> auf!!
Was ist denn deiner Meinung nach "das Richtige"?
> Das hat mit Faulheit oder ähnlichem nichts zu tun,
Nein, mit Faulheit hat das ganz sicher nichts zu tun, sondern mit der
Unfähigkeit, seine Gedanken zu strukturieren und zu ordnen.
> Selbst beim GOOGELN kommen nicht die richtigen Antworten!
Natürlich nicht, wenn man nicht die richtigen Fragen stellt.
Versuch's mal mit KI:
> Erkläre einem 5-jährigen, wie der Assembler-Befehl "BCC"> in der 6502 CPU funktioniert
ChatGPT:
Okay! Stell dir vor, du spielst ein Spiel mit einem kleinen Roboter, der
Schritte macht und dabei immer wieder entscheidet, wohin er als Nächstes
gehen soll.
Jetzt kommt der BCC-Befehl ins Spiel. Das steht für "Branch if Carry
Clear" – aber wir sagen einfach mal: "Geh woanders hin, wenn du keinen
Ball trägst."
Eine einfache Geschichte:
Stell dir vor:
Der Roboter macht Mathe, z. B. er zählt Dinge zusammen.
Wenn dabei zu viel rauskommt, sodass er es nicht mehr in seinen Kopf
(den Speicher) passt, dann trägt er einen Ball (das nennt man "Carry").
Wenn alles gut passt, trägt er keinen Ball.
Jetzt sagt ihm der BCC-Befehl:
"Wenn du keinen Ball trägst, dann geh bitte zu einer anderen Stelle im
Spiel weiter!"
Günter K. schrieb:>> Aber ich kann noch nicht einmal die ganzen Befehle auswendig.> Wenn ich wenigstens die Befehle ausgeschrieben in Englisch hätte.> Die Abkürzungen sind mir zu wenig. - Zum auswendig lernen sind sie ja> gut,> doch ich möchte verstehen, was sie bedeuten:> Zum Beispiel: BCC, BRANCH ON C=0, Also BRANCH IF CARRY=0 ?> D.h.: Wenn das "C"-Flag aus ist, dann verzweige (BRANCH).
Dann benutze doch die deutsche Version von Zaks, Programmierung des
6502, Sybex. Die dritte Auflage findest Du bei archive.org:
https://archive.org/details/programmierung-des-6502-sybex
Die fuer Dich gewuenschte Seite:
https://archive.org/details/programmierung-des-6502-sybex/page/113/mode/2up
Klaus schrieb:> Dergute W. schrieb:>> Testet die Uebertragsflagge>> Sowas passiert halt, wenn man zwanghaft alles übersetzen möchte.
Irgendwo gibt es noch das rot-weiße Datenbuch vom Siemens zum 8080.
Da ist der Kellerspeicherzeiger beschrieben.
Klaus schrieb:> ... ... "Wenn du keinen Ball trägst,> dann geh bitte zu einer anderen Stelle im Spiel weiter!"
Wie auch immer es sein soll, - die Erklärung ist gut!
Liebe Grüße
Günter K.
(ENK)
😊
Günter K. schrieb:> Erstaunlich(!), -ohne Interrupt- ich bin gespannt.
Der Rechner muss ja nur auf einen Menschen warten.
> Ja, die serielle Schnittstelle interessiert mich sehr.> Denn ich möchte den JC erweitern..
Dann bist Du ca. 40 Jahre zu spaet. Die serielle Schnittstelle war
(damals) sehr einfach mit mit einem BC547 und einem LM311 gemacht.
Maximal Geschwindigkeit 1200Baud. Und Du brauchtest latuernich ± 12V.
Kassetteninterface war (ca. 1980) schon mit einer PLL geloest (kannst Du
alles in Junior Computer 3
[http://retro.hansotten.nl/uploads/junior/books/de/JuniorComputer_book_03.pdf],
p12f nachlesen)
Speicher erweitern geht auch ein wenig: Du kannst Speicher von 0x0400 -
0x17FF fuellen (im Original RAM, Terminal Monitor und Tape Monitor,
siehe
https://www.mikrocontroller.net/attachment/671626/Junior_Memory_Map.pdf).
Da Du aber keinen permanenten Massenspeicher hast, ist das vergebene
Liebesmueh.
Du merkst ja jetzt schon, dass der Junior Beschraenkungen hat die nicht
mehr zu heilen sind (mit vernuenftigem Aufwand).
Normalerweise wuerde ich Dir sagen (Du weisst jetzt ungefaehr, wie die
Programmierung von Mikrocomputer ablaeuft, Z80, 6502, 68000, das ist
alles das gleiche):
Besorge Dir z.B.
https://shop.mcjohn.it/en/home/90-z80-mbc2-black-edition.html (das ist
eine Z80-Maschine mit 64kB): Ist sehr angenehm, Betruebssystem CP/M (DDT
ist der Debugger), Du hast z.B. Turbo-Pascal und sehr viel Dokumentation
(CP/M ist sehr gut dokumentiert und Pascal ist eine Sprache fuer die
Ausbildung [von Wirth, ETHZ, meiner Alma Mater], Basic [von MS] ist auch
dabei, und wenn Du Dich weiter quaelen willst: Assembler M80).
Oder ohne monetaeren Einsatz: TurboPascal 3 in einer DosBox. Ich habe
mit TP3 ein komplettes Warenwirtschaftsystem geschrieben.
Du musst wirklich sehen: Es war damals wirklich muehsam mit der
Composterei.
So, Thomas hat jetzt genug von den guten alten Zeiten verzaehlt.
Klaus F. schrieb:> Irgendwo gibt es noch das rot-weiße Datenbuch vom Siemens zum 8080.> Da ist der Kellerspeicherzeiger beschrieben.
Irgendwo auf dem Speicher, müsste ich noch einen 8080 liegen haben.
Der hatte auch E-PROMs drin! Es ist eigentümlich mit dem
Kellerspeicher,
erst wenn die Daten, wieder herausgeholt werden, liegen sie richtig.
Nun ja, das muss man hinnehmen wie es ist.
Liebe Grüße
Günter K.
(ENK)
😊
Hallo Leute,
Zunaechst mal DANKESCHOEN lieber Thomas W.!
Thomas W. schrieb:> Da Du aber keinen permanenten Massenspeicher hast, ist das vergebene> Liebesmueh.>> Du merkst ja jetzt schon, dass der Junior Beschraenkungen hat die nicht> mehr zu heilen sind (mit vernuenftigem Aufwand).>> Normalerweise wuerde ich Dir sagen (Du weisst jetzt ungefaehr, wie die> Programmierung von Mikrocomputer ablaeuft, Z80, 6502, 68000, das ist> alles das gleiche):>> Besorge Dir z.B.> https://shop.mcjohn.it/en/home/90-z80-mbc2-black-edition.html (das ist> eine Z80-Maschine mit 64kB): Ist sehr angenehm, Betruebssystem CP/M (DDT> ist der Debugger),
Nun ja, den Z80, hab' ich ja, wie Ihr wisst. Den MicroProfessor.
Und für die Assembler-Lehrgaenge, wird darauf hingewiesen,
dass an sich den OP-Code nicht auswendig lernen soll,
es wird aber wohl darauf hingewiesen, dass man sich mit mehreren
Prozessoren beschaeftigen soll; - ich moechte aber
die Beziehung zum Opcode haben.
Das Rodnay Zaks-Buch hatte ich mir geliehen.
Aber damit, kam ich ueberhaupt nicht klar,
im Internet fand ich verbesserte Buch-Versionen.
Aber, wenn auf einer Seite für einen Befehl
mehrere Opcodes erscheinen, dann muss ich passen. :-(
Und dennoch, das reizt mich auch, - das zu koennen.
Zu jener Zeit die folgt, hatte ich noch keinen Beruf.
Doch noch in den 60er Jahren, begann ich mit IBM 360/20.
Ich lernte aber nur den Schulstoff, auch Assembler, - ...,
die Daten wurden noch auf Lochkarte übertragen.
Eine kaufmännische Programmiersprache war auch dabei,
sie nannte sich RPG, das hatte ich gekonnt; - doch davon habe
ich -alles- vergessen. - Die nächste Programmiersprache
wäre COBOL gewesen. Ich weiß nur, dass sie heute noch angewendet wird.
Ich habe erfahren, die IBM-360er Reihe, heute noch gebaut werden.
Das war mindestens eine Halle mit Maschinen!
Der Drucker war (oder ist) 2 Meter breit,
die Anschlag-Buchstaben lagen auf Ketten.
Ich möchte eine Ziellinie anvisieren und das ist eine:
"Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
Das 6-Toene-Lied, schreibe ich noch, habs schon auf Exel übertragen.
Ja, und ich weiss jetzt noch nicht, ob es funktionieren wird.
Irgendwie, laechelt mich der Junior-Computer an: :-)
Liebe Gruesse
Günter K.
(ENK)
:-)
Günter K. schrieb:> ich moechte aber> die Beziehung zum Opcode haben.
Strebe doch erst mal eine Beziehung mit Logik, Vernunft und Realität an.
Denn so viel steht fest: Ihr habt euch echt heftig auseinandergelebt.
> Ich habe erfahren, die IBM-360er Reihe, heute noch gebaut werden.
Das Problem: Dein "heute" unterscheidet sich fundamental von unserem
"heute".
Christoph M. schrieb:> ... TYA transfer Y to accumulator
Oh ja! Vielen, vielen Dank, das freut mich!
Denn die zuvor von mir geladene Liste,
hatte sehr viele Übertragungsfehler.
Es sind eben so viele Posten.
Liebe Grüße
Günter K.
(ENK)
😊
Günter K. schrieb:> Der Drucker war (oder ist) 2 Meter breit,> die Anschlag-Buchstaben lagen auf Ketten.
Wenn das der ist, den ich auch noch kenne, dann war der für damalige
Verhältnisse verdammt schnell.
Der war bei uns Anfang der 90er noch in Betrieb, als ich meine
Ausbildung begann.
Thomas S. schrieb:> Der war bei uns Anfang der 90er noch in Betrieb, als ich meine> Ausbildung begann.
Vielen Dank, für Deinen Beitrag,
Wolfgang R. wird das sicherlich auch interessieren, der einen Beitrag
im Internet über den IBM-Koffer gemacht hat.
Zu meiner Zeit, da war das gegen Ende der 60er Jahre.
Zu dieser Zeit, hatte ich noch gar keinen Beruf und ich was ca. 25.
Es ist doch sehr erfreulich, so etwas erleben zu erleben.
Viele Grüße
Günter K
ENK
:-)
Man könnte ja dem SRAM einen Goldcap spendieren, dann bleiben die Daten
länger erhalten. Noch ein Supervisor (ADM691) für /Reset,
VCC-Umschaltung und /CE-Verriegelung macht die Sache perfekt.
Peter D. schrieb:> Man könnte ja dem SRAM einen Goldcap spendieren, dann bleiben die Daten> länger erhalten. Noch ein Supervisor (ADM691) für /Reset,> VCC-Umschaltung und /CE-Verriegelung macht die Sache perfekt.
Jo, DAS wäre doch mal ein adäquates Projekt für ihn... ;-)
Thilo L. schrieb:> Wie kommst du denn konkret zu der obigen Aussage?> Hast Du mit einem Oszilloskop die Zeit gemessen, während der der Taster> geschlossen war? Mit einem Logic Analyzer?
Danke für Deinen Beitrag! Das ist sehr gut und ehrlich gemeint von mir.
Dann wird es Zeit, das zu tun. ... Mein Skop kann das leider nicht,
dann muss ich irgendwo hin, wo so ein Skop ist der das kann.
Leider ist es so, dass ich eine festgelegte Schaltung nicht ändern kann.
Ich las irgendwo hier im Thread: Ein Programmierer kann das,
doch er würde es nicht tun. - Müsste für ihn aber auch schwierig sein. -
.
Leider verstehe ich zu wenig, wie aus ROM-Daten Flexible Daten werden.
Erstmal analytische Gedanken mit einer Tasse Kamillentee:
Jedenfalls, muss bestimmt werden, wann begonnen wird, die Taste zu
lesen.
Weil das -immer- stimmt, - immer das richtige Zeichen erscheint, dann
stimmt der Anfang. Aber das: "ENDE" der Eingabe wird zu spät gesperrt.
Ich muss erst noch in den Büchern nachlesen, ob man überhaupt
soweit eingreifen kann, ohne Hardware zu ändern.
Die Lösung für jetzt:
Das habe ich von einem Musik-Lehrer, fürs Trommelschlagen.
Er schlug vor, die Trommel -so-, zu schlagen,
als wäre es eine Heiße Herdplatte (schnell genug zurück!)
Wenn ich den Taster -so-(s.o.) drücke,
und mich auf das "Zurückziehen" konzentriere,
dann prellt die Taste nicht!
Liebe Grüße
Günter K.
(ENK)
:-)
PS.:
Aber das Assembler vom JC - ????!
Da nehme ich doch lieber den Euren!
Peter D. schrieb:> Man könnte ja dem SRAM einen Goldcap spendieren, dann bleiben die Daten> länger erhalten. Noch ein Supervisor (ADM691) für /Reset,> VCC-Umschaltung und /CE-Verriegelung macht die Sache perfekt.
Peter, -
almost but not quite: Der 2114 (4Bit * 1K RAM) zieht im "Standby" (also
nicht selected) freundliche 40 - 60 mA pro Chip. Das waere etwas zuviel
fuer den Goldcap. Fuer das ganze Kilo sind das ca. 100mA.
Was machbar waere (mit relativ wenig Aufwand): Der Junior-Computer hat
einen 1-8-Decoder (74ls145, OpenCollector). Entferne die beiden
RAM-Module, mache ein OR aus K0 - K5 (ein 74LS30 und ein LS01, gibt Dir
6kB RAM) und flansche ein 6264 an (Stromverbrauch 30-40mA active,
Standby bei 0.3mA).
Unter keinen Umstaenden die Sinnfrage stellen.
Thomas W. schrieb:> Was machbar waere (mit relativ wenig Aufwand): Der Junior-Computer hat> einen 1-8-Decoder (74ls145, OpenCollector). Entferne die beiden> RAM-Module, mache ein OR aus K0 - K5 (ein 74LS30 und ein LS01, gibt Dir> 6kB RAM) und flansche ein 6264 an (Stromverbrauch 30-40mA active,> Standby bei 0.3mA).>> Unter keinen Umstaenden die Sinnfrage stellen
Auf jeden Fall, schon mal ein großes Dankeschoen!
Viele Gruesse
Guenter K.
(ENK)
:-)
Thomas W. schrieb:> Was machbar waere
... aber sicher nicht für unseren Günter.
Der Thread läuft jetzt 9 Monate, und bisher hat er noch nicht geschafft
seine 6 geplanten "Musik" Taster zu verdrahten --- falls das überhaupt
noch sein Plan ist.
Die Idee mit EINEM Ram, batteriegebuffert, mit /CS Sperre, ist natürlich
auch Quark: Hexadezimal ekngetippte Testprogramme haben oft Fehler, bei
Stackfehler wird gerne das Ram zugepushed. /CS Sperre geht nicht, weil
der Betriebsmonitor dann nimmer arbeitet.
Zweites, separates Ram wäre angesagt. Dann muss man jedoch Programm und
Daten sauber in die beiden Adressbereiche trennen.
Das wird nix bei Günter.
Klaus F. schrieb:> Thomas W. schrieb:>> Was machbar waere> Die Idee mit EINEM Ram, batteriegebuffert, mit /CS Sperre, ist natürlich> auch Quark: Hexadezimal ekngetippte Testprogramme haben oft Fehler, bei> Stackfehler wird gerne das Ram zugepushed. /CS Sperre geht nicht, weil> der Betriebsmonitor dann nimmer arbeitet.
Dann benutze K1 - K5 (sind sogar auf dem din41612-Stecker angelegt) und
benutze nur 5K (von 0x0400 - 0x17ff). Der Rest von meinem Geschreibsel
(74LS30 + 1/6 LS01 als /CE) ist weiterhin gueltig.
P.S.: Stack-Crash geht ganz einfach, die 256 Bytes des Stacks sind schon
knapp (Hanoi geht wohl, zumindest mit drei Scheiben
[https://rosettacode.org/wiki/Towers_of_Hanoi#6502_Assembly])
Thomas W. schrieb:> almost but not quite: Der 2114 (4Bit * 1K RAM) zieht im "Standby" (also> nicht selected) freundliche 40 - 60 mA pro Chip. Das waere etwas zuviel> fuer den Goldcap. Fuer das ganze Kilo sind das ca. 100mA.
Ups, daran hatte ich ja gar nicht mehr gedacht, daß die ersten
Computer-ICs alle noch NMOS waren.
Noch zu DDR-Zeiten gab es CMOS-SRAM (U6516) im Bastlerladen. Damit habe
ich dann später AT89C51 erweitert. Der 6516 hatte das nötige Adreßlatch
ja schon eingebaut.
Günter K. schrieb:> Leider ist es so, dass ich eine festgelegte Schaltung nicht ändern kann.> Ich las irgendwo hier im Thread: Ein Programmierer kann das,> doch er würde es nicht tun.
Falsch verstanden!
In ISR baut man üblicher Weise keine Verzögerungen ein, wenn man bei
klarem Verstand ist.
Unabhängig davon, ob man das kann, oder ob das schwierig ist.
Arduino F. schrieb:> Günter K. schrieb:>> Leider ist es so, dass ich eine festgelegte Schaltung nicht ändern kann.>> Ich las irgendwo hier im Thread: Ein Programmierer kann das,>> doch er würde es nicht tun.>> Falsch verstanden!> In ISR baut man üblicher Weise keine Verzögerungen ein, wenn man bei> klarem Verstand ist.> Unabhängig davon, ob man das kann, oder ob das schwierig ist.
Der Monitor im Junior-Computer benutzt keine Interrupts. Alles ist
schoen gepollt.
Die Interrupt-Verarbeitung der 6502 ist so oder so nicht so prall (nix
Vektoren pro Quelle, nix Prioritaeten).
Arduino F. schrieb:
Ich las, darum setze ich: ""
> "Ein Programmierer kann das, ..."Arduino F. schrieb:> Falsch verstanden!> In ISR baut man üblicher Weise keine Verzögerungen ein, wenn man bei> klarem Verstand ist.> Unabhängig davon, ob man das kann, oder ob das schwierig ist.
Lieber Arduino F.
Es geht um ein Zeitfenster nach dem der Taster gedrückt wird.
Bitte sage mir: Was ist ein ISR?
Mit lieben Grüßen
Günter K.
😊
Günter K. schrieb:> Bitte sage mir: Was ist ein ISR?
Die nächste Ablenkung.
Dein Hirn ist ja selbst für ein primitives Assemblerprogramm zu klein,
warum stellst du immer neue Fragen, die dich keinen Schritt
weiterbringen?
Analogie:
Du willst einen 50m Lauf absolvieren, schön geradeaus.
Leider kannst du noch nicht gehen oder laufen, nur Krabbeln. Deshalb
dauert das eh schon ewig. Aber du biegst alle 2 Krabbelschritte links
oder rechts ab und kommst deinem Ziel keinen Millimeter näher, im
Gegenteil.
Günter K. schrieb:> Bitte sage mir: Was ist ein ISR?
Eine InterruptServiceRoutine.
In eine solche ISR wolltest du eine Verzögerung einbauen.
Obwohl es sowas offensichtlich bei deiner Platine bisher gar nicht gibt.
Moin,
Klaus schrieb:> Analogie:> Du willst einen 50m Lauf absolvieren, schön geradeaus.
Woher weisst du was ENK will?
> Leider kannst du noch nicht gehen oder laufen, nur Krabbeln. Deshalb> dauert das eh schon ewig. Aber du biegst alle 2 Krabbelschritte links> oder rechts ab und kommst deinem Ziel keinen Millimeter näher, im> Gegenteil.
Und wenn der Weg das Ziel ist? Also kein 50m Lauf, sondern eher ein
Spaziergang?
Umwege erhoehen die Ortskenntnis.
scnr,
WK
Klaus schrieb:> ... nur Krabbeln. Deshalb> dauert das eh schon ewig. Aber du biegst alle 2 Krabbelschritte links> oder rechts ab ... .
Günter K. schrieb an Arduino F. bzw. alle, im Beitrag #7901788:
> Bitte sage mir: Was ist ein ISR?
Vielleicht: Die Interrupt Service Routine? - Ja ist es das?
Wie sehe ich dann, - ob diese Routine eingreift,
doch, so wie ich gelesen habe: "... gar nicht".
Selbstverständlich, bringt mich das weiter,
ich vermute jetzt schon, das ich für die Analyse am Scop,
keine "Unterbrechng" für das Zeitfentser finden werde.
Aber Klaus, ich gehe noch auf andere Bemerkungen von Dir ein.
Liebe Grüße
Günter K.
(ENK)
:-)
Dergute W. schrieb:> Und wenn der Weg das Ziel ist? Also kein 50m Lauf, sondern eher ein> Spaziergang?> Umwege erhoehen die Ortskenntnis.
DANKESCHOEN!
Liebe Gruesse
Guenter K.
😊
Thomas W. schrieb:> Der Monitor im Junior-Computer benutzt keine Interrupts. Alles ist> schoen gepollt.>> Die Interrupt-Verarbeitung der 6502 ist so oder so nicht so prall (nix> Vektoren pro Quelle, nix Prioritaeten).
Ja, Dankeschoen.
Rein theoretisch ist es aber moeglich,
die scheinbare "Prellung" zu unterbinden.
Das muss nur 16 mal, je Tastendruck erfolgen.
Dazu braucht der Monitor auch nicht geaendert zu werden.
Das Einzige was sich aendert ist das Zeitfenster,
d.h.: die Eingabe des Tasters - ist nach wie vor,
der Multiplexer laeuft nach wie vor, das Einzige
was sich dann dabei ergibt, das wirklich nur 1 Zeichen hinein kann.
Weil aber, die manuelle Geschicklichkeit, das Problem auch loest
(heisse Herdplatte), verschiebe ich Solches auf später.
Liebe Gruesse
Guenter K.
(ENK)
😊
Günter K. schrieb:> und Du, zu dem was ich schrieb?
Du meinst diesen Kauderwelsch:
Günter K. schrieb:> Das muss nur 16 mal, je Tastendruck erfolgen.> Dazu braucht der Monitor auch nicht geaendert zu werden.> Das Einzige was sich aendert ist das Zeitfenster,> d.h.: die Eingabe des Tasters - ist nach wie vor,> der Multiplexer laeuft nach wie vor, das Einzige> was sich dann dabei ergibt, das wirklich nur 1 Zeichen hinein kann.
Du schaffst es einfach nicht, deine Gedanken zu strukturieren und
auszudrücken. Außerdem nimmst Du Dinge als gegeben an ("Jedoch das sog.
Tastenprellen, ist gar kein Tastenprellen,"), die schlicht nicht
stimmen. Da kann dann nur Mist rauskommen.
Oder hast Du dir die weiter oben von Thomas verlinkte Entprellroutine
des JC angschaut und versucht zu verstehen? Ich wette nicht. Trotzdem
glaubst Du, das Problem lösen zu können (ich könnte es nicht). Total
irre.
Übung für dich: Schreibe ein Programm, dass beim jedem Tastendruck (eine
deiner externen Tasten) den Wert in einer Speicherstelle um eins erhöht.
Ganz simpel, völlig ohne Entprellung. Ich wette nicht mal das bekommst
Du hin.
Du kannst noch so viele Bücher lesen (und wieder verlieren), ohne EIGENE
Übungen wirst Du es nicht lernen. Programmieren lernt man nicht in dem
man Bücher liest.
Klaus F. schrieb:> Der Thread läuft jetzt 9 Monate, und bisher hat er noch nicht geschafft> seine 6 geplanten "Musik" Taster zu verdrahten --- falls das überhaupt> noch sein Plan ist.
Lieber Klaus F.
1. das habe ich schon laengst gemacht
und u.a. auf Durchgang durchgemessen.
Das war da, wo ich las, ich könne keine Musik-Noten lesen.
Die Tastatur ist auf einem kleinen Arduino-Bredboard gesteckt.
2. Klaus schrieb:> Oder hast Du dir die weiter oben von Thomas verlinkte Entprellroutine> des JC angschaut und versucht zu verstehen? Ich wette nicht. Trotzdem> glaubst Du, das Problem lösen zu können (ich könnte es nicht). Total> irre.
Bitte -zeige- es mir noch mal, ich habe es nicht gefunden.
(Ich las so etwas mal in einem anderen Buch.)
Ja wenn, da würde ich auch nur abschreiben.
Wie ich die Entprellung letztendlich -manuell- (heiße Herdplatte)
gelöst habe. DAS IST GELÖST!!
===
Klaus schrieb:> Übung für dich: Schreibe ein Programm, dass beim jedem Tastendruck (eine> deiner externen Tasten) den Wert in einer Speicherstelle um eins erhöht.> Ganz simpel, völlig ohne Entprellung. Ich wette nicht mal das bekommst> Du hin.
Stimmt! Ich habe noch nie eine externe Taste angeschlossen.
Am besten in den Programm-Counter, nach jedem 2. Tastendruck.
Allerdings wäre das, schon mehr als eine Speicherstelle,
denn dann, bräuchte ich die "+"-Taste
nicht(nicht immer) mehr betätigen.
Allerdings kriege ich das, auch -noch- nicht hin.
Zur Zeit lerne ich noch die Befehle, dazu,
kommen aber noch die Adressierungsarten;
ja, das ist für mich schon etwas schwierig.
Liebe Grüße
Günter K.
(ENK)
Ich hatte mal einem Kunden am Telefon gesagt, er solle "die Taste kurz
drücken". Bei ihm waren aber auch über 3s kurz. Das interpretierte das
Gerät aber schon als langen Tastendruck.
Was ist bei dir :
Günter K. schrieb:> Weil aber, die manuelle Geschicklichkeit, das Problem auch loest> (heisse Herdplatte)
?
ChatGPT:
> ein verwirrter Mensch hat das geschrieben, kannst du es verständlich machen?
"Rein theoretisch ist es aber moeglich,
die scheinbare "Prellung" zu unterbinden.
Das muss nur 16 mal, je Tastendruck erfolgen.
Dazu braucht der Monitor auch nicht geaendert zu werden.
Das Einzige was sich aendert ist das Zeitfenster,
d.h.: die Eingabe des Tasters - ist nach wie vor,
der Multiplexer laeuft nach wie vor, das Einzige
was sich dann dabei ergibt, das wirklich nur 1 Zeichen hinein kann."
Antwort:
Verständliche Version:
"Theoretisch lässt sich das sogenannte Prellen eines Tasters verhindern.
Dazu muss man pro Tastendruck 16 Mal abfragen (entprellen).
Am Monitor oder Display muss dafür nichts geändert werden.
Einzige Änderung ist das Zeitfenster:
Die Tasteingabe funktioniert weiterhin wie gewohnt, ebenso der
Multiplexer.
Aber durch die Abfrage innerhalb dieses Zeitfensters wird
sichergestellt,
dass pro Tastendruck wirklich nur ein Zeichen verarbeitet wird."
@enk:
Konntest du früher einmal Sätze mit halbwegs korrekter Grammatik
schreiben oder hattest du damit schon immer Probleme?
Günter K. schrieb:> Klaus schrieb:>> Übung für dich: Schreibe ein Programm, dass beim jedem Tastendruck (eine>> deiner externen Tasten) den Wert in einer Speicherstelle um eins erhöht.>> Ganz simpel, völlig ohne Entprellung. Ich wette nicht mal das bekommst>> Du hin.> Stimmt! Ich habe noch nie eine externe Taste angeschlossen.
Tja, aber stattdessen träumst Du gleich von 5 Tasten, mit denen Du auch
noch eine Melodie spielen willst.
Wenn man eine neue Fremdsprache lernt, beginnt man auch mit einfachsten
Sätzen, und nicht damit, einen Roman zu übersetzen.
> Allerdings wäre das, schon mehr als eine Speicherstelle,> denn dann, bräuchte ich die "+"-Taste> nicht(nicht immer) mehr betätigen.
Und wieder vollkommen wirres Zeug.
Die Abfrage einer externen Taste hat nichts mit deiner JC-Tastatur zu
tun.
Günter K. schrieb:> Zur Zeit lerne ich noch die Befehle, dazu,> kommen aber noch die Adressierungsarten;> ja, das ist für mich schon etwas schwierig.
Nochmal: Lernen tut man, in dem man versucht, eine gestellte Aufgabe zu
lösen. Nicht in dem man Bücher liest.
Ich sehe aber, dass selbst die Abfrage einer Taste für dich noch
unüberwindlich ist.
Dann fange doch nochmal ganz von vorne an und programmiere (selber, ohne
Abschreiben!) eine Blink-Schaltung. Und zwar ohne Excel. Den Link auf
Online-Assembler hast Du bereits 15-mal bekommen, aber noch kein
einziges mal angeschaut.
Obelix X. schrieb:> Ich hatte mal einem Kunden am Telefon gesagt, er solle "die Taste kurz> drücken". Bei ihm waren aber auch über 3s kurz. Das interpretierte das> Gerät aber schon als langen Tastendruck.>> Was ist bei dir :
Lieber Obelix X.
ich schätze 0,1s und blitzschnell weg; unmittelbar sofort.
Ich werde das mal mit einem Gerät messen.
Im Morse-Funk ist "kurz" ein "E" und "lang" ein "T".
Am Morse-Gerät würde ich das, so -kurz- wie das "T"
nicht hinbekommen. Hier bei der Tastatur geht das so kurz.
Danke für Dein Interesse,
liebe Grüße
Günter K.
(ENK)
😊
Cyblord -. schrieb:
Der Chatbot schrieb:
> Dazu muss man pro Tastendruck 16 Mal abfragen (entprellen).
Nur der Chatbot kennt das Problem nicht.
Änderung der Korrektur der Aussage des Chatbots folgt demnächst:
Und der Ursprungs-Satz ist von mir auch falsch aufgesetzt,
und hatte auch irgendwie das Gefühl das es falsch war
mir fiel leider nichts anderes ein. Jedenfalls ist der Satz
des Chatbots auch falsch, man muss bedenken,
das es hier um eine Matrix-Abfrage geht.
Bei der es z.B. um jede einzelne Taste geht.
Also nenne mich bitte nicht: "ein verwirrter Mensch".
Es mag durchaus sein, dass ich mich nicht klar genug ausgedrückt habe.
(Beziehen wir uns einmal nur auf die 16 Tasten [es sind mehr].)
Also jede -einzelne- Taste wird durch die Matrix abgefragt.
Ausschnitt: einer Aussage des Chatbots:
Cyblord -. schrieb:> Dazu muss man pro Tastendruck 16 Mal abfragen (entprellen).
Entprellen ist nicht gemeint, sondern um das Ausschließen,
einer Testen-Einlesung die Ungewollt ungewollt durch die Matrix erfolgt.
Liebe Grüße
Günter K.
(ENK)
😊
Lieber Klaus,
Klaus schrieb:> ... aber noch kein> einziges mal angeschaut.
Günter K. schreibt: Das stimmt auch nicht.
Ich muss die Zusammenhänge erst verstehen, bevor ich sie anwende.
Liebe Grüße
Günter K.
(ENK)
😊
Cyblord -. schrieb:> Ändert aber am mechanischen Prellen der Kontakte nichts.
Tatsächlich -nicht-, denn der Schalter prellt ja nicht;
durch das kurze Einlesen, hat der Multiplexer keine Zeit
für ein Zweit-Einlesen,
(was sich -scheinbar- wie ein "Prellen" auswirkt).
Was aber durchaus verständlich ist,
dass man dann ein "Prellen" annimmt;
das dachte ich selber ja auch!
Doch Thomas W. schrieb:> almost but not quite: ...
Lieber Thomas W.
Ich werde Deine Vorschläge überdenken,
und evtl. ausführen. - Wahrscheinlich ja.
Wie man sieht, bin ich ja nicht so fit.
Ja Klaus F., Danke für Deine Anfrage, - ich weiß tatsächlich nicht,
wie man ein externes Bit eingibt usw., wie?
Sage mir bitte wie.
Tatsächlich habe ich aber irgendwo geschrieben,
dass ich auf einem Arduino-Bredbroard 6 Taster gesteckt habe
(Mehr passen seitlich nebeneinander nicht auf dem Bredboard drauf.)
und diese auch durchgemessen habe.
Das Lied habe ich deshalb nicht abgeschickt,
weil ich Deinen Rat befolgen will.
Sage mir bitte, wie lege ich Adressen für eine neue Tastatur fest.
Denn die Tastatur von "Buch 2" ist ja schon vergeben.
Wie, weise ich neue Adressen zu(?), um entsprechend
immediatly zu incrementieren; danach setze ich ein BRK,
um nachzusehen, ob das auch stimmt?
Natürlich muss ich die Speicherstelle
in einen brauchbaren Zustand versetzen werden.
Liebe Grüße,
Günter K.
(ENK)
:-)
Thomas W. schrieb:> Du hast doch das Junior Computer II-Buch wiedergefunden? Wenn Du in dem> Buch Seite 99 anguckst, findest Du eine Erklaerung wie die Tastatur und> das Display angesteuert wird. Es ist sogar auf Seite 127 erklaert, wie> die Entprellung realisiert wurde.>> Hint: Bei der Basisplatine wird der Interrupt nicht benutzt, der wird> erst bei der Verwendung der seriellen Schnittstelle (Input PA7)> verwendet.
Das lese ich nochmal durch.
Übrigens, der alte PET hatte solche Fehler auch,
nur noch schlimmer; manchmal fehlte auch Buchstaben,
oder auch doppelt, eben durch die MATRIX für die Tastatur.
Nur der 1. PC, machte diese Fehler nicht.
Liebe Grüße
Günter K.
(ENK)
:-)
Günter K. schrieb:> denn der Schalter prellt ja nicht;
Vermutlich ist dein Schalter, der einzige mechanische Schalter, der
nicht prellt.
Ich beschäftige mich seit Jahrzehnten mit Schaltern und Tastern.
Aber einer der nicht prellt, ist mir (soweit ich weiß) noch nie
begegnet.
Kann man nicht mal den Thread dicht machen? Die Katze beißt sich ja
schon lange in Schwanz.
Dem Günter kann man nicht helfen, da er völlig beratungsresisdent ist.
Am Anfang konnte man ja noch über das eine oder andere schmunzeln, aber
mittlerweile bereitet das Lesen ja eher Schmerzen.
Lieber Hans,
Hans schrieb:> Kann man nicht mal den Thread dicht machen? Die Katze beißt sich ja> schon lange in Schwanz.
Bitte lass das sein, bitte!
Liebe Grüße
Günter K.
(ENK)
PS.:
Auf ganz bestimmte Tipps gehe ich schon ein.
Nur eben nicht auf jeden,
der nur mit einer Klage beginnt!
Der Stil, des Redens
manch eines Anderen, ist auch nicht immer positiv.
Also BITTE!
Günter K. schrieb:> Der Stil, des Redens> manch eines Anderen, ist auch nicht immer positiv.> Also BITTE!
Dem entnehme ich, dass dir die/meine Kritik zu deinem nicht prellendem
Schalter nicht schmeckt.
Du sie lieber als persönlichen Angriff auffassen möchtest.
Arduino F. schrieb:> Dem entnehme ich, dass dir die/meine Kritik zu deinem nicht prellendem> Schalter nicht schmeckt.
Eher weiß er weder was Prellen überhaupt ist, noch wie es sich in seinem
System auswirkt.
H. H. schrieb:> "Gestern standen wir kurz vor dem Abgrund, heute sind wir einen> gewaltigen Schritt weiter!"
Passt nicht so Recht der Spruch. Maximale Fallhöhe ist 0,0m.
Günter K. schrieb:> Tatsächlich -nicht-, denn der Schalter prellt ja nicht;> durch das kurze Einlesen, hat der Multiplexer keine Zeit> für ein Zweit-Einlesen,
Das ist schlichtweg Quatsch, jeder mechanische Kontakt prellt.
Und wenn man die Taste nur kurz antippen darf, damit das Prellen weniger
wird, dann ist die Entprellfunktion Rotte bzw. nicht vorhanden.
Minimal sieht man eine 2-fach Abtastung vor, d.h. 2 Einlesungen in
aufeinanderfolgenden Intervallen müssen identisch sein. Und danach muß
natürlich noch eine Flankenerkennung erfolgen, d.h. nur beim Wechsel von
Losgelassen nach Gedrückt, darf der Tastendruck verarbeitet werden, d.h.
genau eine und nur eine Aktion erfolgen.
Lieber Arduino F.,
ich schrieb an Dir, in: ">>":
Arduino F. schrieb:>> ...>> manch eines Anderen, ist auch nicht immer positiv.>> Also BITTE!> Dem entnehme ich, dass dir die/meine Kritik zu deinem nicht prellendem> Schalter nicht schmeckt.> Du sie lieber als persönlichen Angriff auffassen möchtest.
NEIN! - Ich las auch Texte von: Thomas W. s.u. und weitere seiner Texte
dazu. - Mehr dazu folgt *. Ich las auch:
Arduino F. schrieb:> In eine solche ISR wolltest du eine Verzögerung einbauen.> Obwohl es sowas offensichtlich bei deiner Platine bisher gar nicht gibt.
(Der Multiplexer braucht ja auch seine Zeiten.)
Günter K. schrieb:> Doch Thomas W. schrieb:>> almost but not quite: ...
find ich gut, zu anderem Thema*, mit weitern guten Vorschlägen,
worauf ich auch eingehe, habe auch die entsprechenden Seiten
im JC-Buch 2 gelesen, das bedeutet, Du hast durchaus Recht.
Ich danke Dir auch für Deine Hinweise.
Liebe Grüße
Günter K.
(ENK)
😊
Hiermit will ich aber schließen, sonst wird es, zu viel Text.
Lieber Peter D.
Peter D. schrieb:> ... jeder mechanische Kontakt prellt.
Das sehe ich so gesehen, inzwischen ein.
Peter D. schrieb weiter im Beitrag #7903596:
> Und wenn man die Taste nur kurz antippen darf, damit das Prellen weniger> wird, dann ist die Entprellfunktion Rotte bzw. nicht vorhanden.>> Minimal sieht man eine 2-fach Abtastung vor, d.h. 2 Einlesungen in> aufeinanderfolgenden Intervallen müssen identisch sein. Und danach muß> natürlich noch eine Flankenerkennung erfolgen, d.h. nur beim Wechsel von> Losgelassen nach Gedrückt, darf der Tastendruck verarbeitet werden, d.h.> genau eine und nur eine Aktion erfolgen.> Tastenbit: 0 - 0 - 1 - 1 - 0 - 1 - 1 - 0 - 0 - 1 - 1> Aktion: 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 1
Das habe ich leider noch nicht ganz verstanden,
vom Text her, in etwa - aber vom BITMUSTER her, - nicht.
Also erst wenn die negative Flankenerkennung erfolgte, ...
Peter D. schrieb:> d.h. nur beim Wechsel von> Losgelassen nach Gedrückt, darf der Tastendruck verarbeitet werden, d.h.> genau eine und nur eine Aktion erfolgen.
Lieber Peter D.
Schön wär‘s. - Man müsste Ort und Zeit sehen können, -
und DANKE für Deinen Beitrag.
Liebe Grüße
Günter K.
(ENK)
😊
Klaus schrieb:> H. H. schrieb:>> "Gestern standen wir kurz vor dem Abgrund, heute sind wir einen>> gewaltigen Schritt weiter!">> Passt nicht so Recht der Spruch. Maximale Fallhöhe ist 0,0m.
Hallo lieber Klaus,
der Segelflieger fällt immer, er braucht Aufwind. :-)
Liebe Grüße
Günter K.
(ENK)
:-)
Günter K. schrieb:> der Segelflieger fällt immer, er braucht Aufwind
Dazu müsste er aber erst mal abheben, und leider klappt das trotz
vielfacher Hilfe beim Windenstart bisher überhaupt nicht.
Hallo liebe Leute,
Günter K. schrieb:> Günter K. schrieb:>> 😊>> Hiermit will ich aber schließen, sonst wird es, zu viel Text.
Natürlich geht geht es weiter,
ich habe ja neuerlich gute Anstöße bekommen.
Liebe Grüße
Günter K.
(ENK)
😊
PS.:
Speziell A: von Klaus (feelfree) 07.07.2025 12:50
Lieber Klaus (feelfree)
eben, wegen Deiner Art, an Dir stelle ich noch spezielle Fragen.
Liebe Grüße
Günter K.
(ENK)
😊
Klaus schrieb:> Ich kann es kaum erwarten von dich gefragt zu werden!
Lieber Klaus:
DANKE für Deine Antwort, Du meinst wohl:
"Ich kann es kaum erwarten von Dir gefragt zu werden!"
Liebe Grüße
Günter K
(ENK)
😊
KeinerLachtOhneHoden schrieb:> gibts Neuigkeiten
Du darfst nicht auf den Tageszähler im Datum schauen, sondern maximal
auf den Monatszähler. ==> Keine Zeit vergangen seit den letzten
Postings, also auch keine Neuigkeiten.
Ja, es gibt neues....
Habe meinen RP2040 mit CP/M mal wieder rausgekramt.
Fürchterlich alter C Compiler
Historisches Pascal
Nutzbarer Assembler.
DDT macht was, aber nicht so wie ich will. Vielleicht meine Dummheit.
Vielleicht auch Probleme mit der Emulation.
Und schnell alles wieder in die Ecke geworfen.
Fühlte sich ein bisschen an, als würde man in einem Jahre lang
abgestandenen Wäschekorb ungewaschener Socken und Unterhosen wühlen.
Keine echte Wonne!
Arduino F. schrieb:> Und schnell alles wieder in die Ecke geworfen.> Fühlte sich ein bisschen an, als würde man in einem Jahre lang> abgestandenen Wäschekorb ungewaschener Socken und Unterhosen wühlen.> Keine echte Wonne!
Ein herrliches Bild für Unangenehmes :D
Klaus schrieb:> KeinerLachtOhneHoden schrieb:>> gibts Neuigkeiten
Hallo liebe Leute,
wir haben schönes Wetter und ich bin noch da.
Ich sitze gerade an dem Manuellen Musik-Programm :))
Der JC, wird vermutlich z.Z. nicht mehr lange mitmachen.
Doch die 2 großen ICs werde ich austauschen.
Das ist die CPU und die PIA für das* was jetzt dazugehört
und vermute, dass der Quarz noch ok. ist,
weil der "Tongenerator" immer ohne Probleme lief,
den Elektrolytkondensator C2 hab ich mal einfach so ausgetauscht,
aber ich glaube und glaubte nicht, dass er Probleme bereitete.
Nach dem Einschalten meldet er sich meistens mit: "39E939".
Nach der Eingabe (ADr) von 0000, steht er auf: "000000".
Günter K. schrieb:> Doch Thomas W. schrieb:>> almost but not quite: ...>> Lieber Thomas W.>> Ich werde Deine Vorschläge überdenken,> und evtl. ausführen. - Wahrscheinlich ja.> Wie man sieht, bin ich ja nicht so fit.
Ja, das IC, und eine Leiterplatte, zur
"Port-bzw. Speicher-Erweiterung" habe ich gekauft.
Die muss ich aber noch zwichen 4 Kunststoff-Schienen* setzen,
denn die obere Platine ist etwas breiter, (mit den Stehbolzen*)
auf dieser Platine soll das neue IC kommen und ne' kleine Batterie.
Was ich aber noch nicht verstanden habe, ist die Adresszuweisung
für die neuen Adressplätze; dann habe ich noch eine Frage zum OR-Gatter?
Wenn der Daten-Port an anderer Stelle
auf den selben Datenport belegt ist,
kann doch der alte Chipplatz leer bleiben?
Oder war das für den Flasch-Platz so gedacht.
Das habe ich auch noch nicht ganz verstanden.
Wenn das so gemeint war, wäre diese Lösung deshalb eleganter,
weil der Platz dazu mit samt der Stehbolzen* ausreichend ist.
Mir ist allerdings klar, dass ich mit einer weiteren Platine
neue Induktivitäten und Kapazitäten ausbilden.
Probieren geht über studieren, doch s.u. - .
Lieber Thomas W. und Alle,
in Buch 3 Seite 36, JC-Buch 3, habe ich so etwas ähnliches gelesen,
was aber einem ganz anderen Zweck (ein Druckerinterface) dienen soll.
Ineressant ist, was auf Seite 11 zu lesen ist.
Den gesamten Zusammenhang zwischen Adressen, Adressdekoder
und Signalen K0 ... K7 habe ich noch nicht verstanden.
Was CS d.h. Chip Selekt heißt weiß ich wohl, - aber nicht
denn Zusammenhang mit der gesamten Adressierung. Als Beispiel
ist hier eine "Art Drehwähler" auf S. 17 JC-Buch 3 gezeigt.
Verstanden, hab' ichs noch nicht. - Jede Adresse
hat seinen Platz.
Liebe Grüße
Günter K.
(ENK)
😊
😉 PS.: Wolfgang R., hat ja die schöne Memory-Mapp geschickt. Sehr gut!
Günter K. schrieb:> "Port-bzw. Speicher-Erweiterung" habe ich gekauft.
Es ist immer eine gute Idee, mehr Hardware zu kaufen, wenn man die, die
man schon besitzt, noch nicht mal ansatzweise verstanden hat.
Wenn ich beim Mathelernen mit dem Einmaleins nicht zurechtkomme,
überspringe ich das einfach und mach beim Dividieren, Wurzelziehen oder
gleich mit Differentialrechnung weiter. Wer braucht schon Grundlagen,
das ist doch nur was für Anfänger.
Günter K. schrieb:> Ja, das IC, und eine Leiterplatte, zur> "Port-bzw. Speicher-Erweiterung" habe ich gekauft.> Die muss ich aber noch zwichen 4 Kunststoff-Schienen* setzen,> denn die obere Platine ist etwas breiter, (mit den Stehbolzen*)> auf dieser Platine soll das neue IC kommen und ne' kleine Batterie.>> Was ich aber noch nicht verstanden habe, ist die Adresszuweisung> für die neuen Adressplätze; dann habe ich noch eine Frage zum OR-Gatter?
Ich nehme mal ein du hast die Interface Karte wie im Buch3 beschrieben
gekauft. Dir ist klar dass du dafür ein Prom brauchst? (IC17) Ohne
diesen programmierten Baustein ist das Teil vollkommen nutzlos. Diese
Proms sind nicht mehr so einfach zu bekommen und du brauchst auch ein
passendes Programmiergerät dafür.
Auf der karte gibt es auch kein OR Gatter weshalb dir da niemand helfen
kann.
von Thomas Z. (usbman) schrieb am: 18.07.2025 01:55,
Peda und Thomas W. (Datenreisender) auch. Danke für Eure Beiträge.
Günter K. schrieb am 17.07.2025 23:22:
> Ja, das IC, und eine Leiterplatte, zur> "Port-bzw. Speicher-Erweiterung" habe ich gekauft.
Nein, nicht die Spezielle, sondern nur eine Streifenrasterplatte.
Und scheinbar, habe ich meine weiteren Möglichkeiten unterschätzt.
Ich denke, die Portverlängerung wird ja wirken, aber auch die Probleme
damit. Denn von einer weiteren Möglichkeiten ist die Rede. Hier steht in
JC-Buch 3, S. 9: "Auf diese Weise entsteht ein Computersystem
mit fast unbegrenzten Einsatzmöglichkeiten."
und weiter: "... und damit auch das äußere Maß der Platine,
welche Möglichkeiten der 'JC' letztendlich bietet ...
...
Dieser Grenzen ... mit vertretbaren Aufwand
meistens nicht weiter hinausschieben."
Lieber Thomas W.
Deinen Beitrag hatte ich als stromsparende Speicher-Erweiterung
verstanden und so meinte, es im Ansatz verstanden zu haben.
Ja, das meinte ich, hab's aber doch nicht verstanden.
Nun habe ich mal nach den ICs im Internet nachgeguckt,
leider verstehe ich das, als Speicher-Erweiterung nicht mehr.
Ich hatte nicht vor den Monitor zu erweitern.
Ich freue mich über die Hilfeversuche.
Liebe Grüße
Günter K.
(ENK)
😊
Günter K. schrieb:> Und scheinbar, habe ich meine weiteren Möglichkeiten unterschätzt.
Nein, du hast deine Möglichkeiten überschätzt,
sie sind geringer.
Klaus F. schrieb: 18.07.2025 16:51
> Günter K. schrieb:>> Und scheinbar, habe ich meine weiteren Möglichkeiten unterschätzt.>> Nein, du hast deine Möglichkeiten überschätzt,> sie sind geringer.
Lieber Klaus F. und liebe Leute,
ich vermute sehr stark, dass da noch Möglichkeiten sind.
Liebe Grüße,
Günter K.
(ENK)
😊
Günter K. schrieb:> ich vermute sehr stark, dass da noch Möglichkeiten sind.
Die Möglichkeit, dass Du eines Tages selber einsiehst, dass das alles
nix für dich ist und Du heillos überfordert bist, die halte ich für
extrem gering, aber die Möglichkeit ist da.
Hey Günter, vielleicht lese ich in diesem langen Fred nicht gründlich
genug mit, aber könntest du nicht mal bitte den letzten funktionierenden
Schritt deiner Arbeit hier präsentieren und in klaren Worten den
nächsten gewünschten Fortschritt nennen?
Weil mir wird nicht klar, was du eigentlich machst und willst.
Danke!
Günter K. schrieb:> Das ist die CPU und die PIA für das* was jetzt dazugehört> und vermute, dass der Quarz noch ok.
Was haben die 2 IC's verbrochen, das sie nun raus müssen? Und was ist ne
PIA - kenne ich nicht. Kann man gut als Hundename nehmen, weil "Pia
sitz" ist kurz und knackig.
Ich denke das Problem ist nicht der JC, sondern das Problem sitzt vor
dem JC. Deine Äußerungen werden immer kruder und entfernen sich immer
weiter vom ursprünglichen Thema.
Du trittst seit 10 Monaten auf der Stelle und bist seitdem keinen
Schritt voran gekommen. Akzeptiere endlich mal, daß auf dem Holzweg bist
und nimm die (gut gemeinten) Ratschläge, die Dir hier einige schon lange
gegeben haben an. So wie Du das machst ist der Lerneffekt gleich Null.
Niemand programmiert mit Opcodes. Das Programm schreibt man in Assembler
und nur wenn es keinen passenden Assembler gibt, welcher das Programm in
Maschinencode übersetzen kann, dann muß man notgedrungen die Opcocodes
hinter die Assembleranweisungen schreiben und diese anschließend
irgendenwie in den Computer bekommen. Hat man früher beim Z80 so
gemacht, damit das Teil überhaupt erst mal lauffähig war. Aber auch
diese Programme wurden zunächst in Assemblersprache geschrieben, weil
die Opcodes für den Menschen eigenlich völlig unverständlich sind.
Ich kenne nur einen einzigen der direkt mit Opcodes hantiert hat, das
war 40 Jahren und der Typ war auch leicht neben der Spur, um es mal
vorsichtig auszudrücken. Der hat gedacht und geredet wie ein Computer,
ein normales Gespräch war mit dem eigentlich nicht möglich. Das ist
jetzt alles nicht abwertend gemeint, der Typ war hoch intelligent aber
hat eben in seiner eigenen Welt gelebt - war halt ne Ausnahme.
Hans schrieb:> Das Ding hieß bei uns, wenn ich mich richtig entsinne, PIO, also> "Parallel Input Output". Wer's lieber seriell mag, für den gab ers auch> noch eine SIO
Bist du in der Z80 Welt?
Hier sind wir bei 6502
Arduino F. schrieb:> Hier sind wir bei 6502
...und da kam nach der PIA (6520) die VIA (6522). Und einen RIOT (6532)
gab es auch. Den müsste man heutzutage politisch korrekt vermutlich
umbenennen, so wie Raider für den internationalen Markt zu Twix wurde.
Hey Gunnar F.,
Ich bin 80 Jahre alt, aber interessiert.
Und inzwischen sehe ich, dass auch noch andere Leute
Fragen richtig beantwortet haben.
Diese Fragen z.B. von Hans sind o.k.;
ich würde es unter Umständen auch nicht wissen.
Zum Beispiel: PIA: Port-Eingang-Ausgang, siehe unten.
Ja, der letzte funktionierende Schritt ... kommt auch noch,
dazu muss ich erst nochmal mit klaren Worten sagen, was ich
machen möchte, um der Reihe nach, eine Vorstellung davon haben.
Also es geht um:
"Einer einfachen CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
Zusammenfassung: Mir fiel von einer Bekannten
ein Z80-Rechner in die Hände; es war der Mikro-Professor(siehe oben).
Weil aber in einem Buch für den Z80 mehrere OP-codes erschienen,
(ist klar, es könnte für verschiedene Adressierungsarten gewesen sein,)
damit konnte ich aber nicht richtig was anfangen, obwohl ich mich
besonders für den OP-code interessiere, weiß ich bisher trozdem
allgemein zu wenig von solchen Dingen. Von daher möchte ich den
Maschinen-OP-code
nicht draus lassen. - Das heißt aber auch, das der Z80, ja sogar der
X86,
von Interesse bleibt; - doch so entschied ich mich für den 6502.
Der lag noch zwischen anderen Pröll auf dem Speicher.
Den hatte ich mal als "ganzes (fertig gebaut)" gekauft.
Da war auch mal ein Buch bei, was ich bis heute nicht mehr fand.
Vermutlich ein anderes Buch als das ORIGINALE. Denn das Buch war
schmaler.
Ebenso schmal wie der Computer selbst. Las aber in einem anderen Buch,
dem 1. von JC selbst, von 12 Volt, +5 Volt und -5 Volt.
Der JC zog irgendwie zu-viel Strom. ...
JC = Junior-Computer von der Fa. Elektor.
Ich saß davor und dachte: Wenn du (also ich) noch mehr machst
dann geht noch mehr kaputt, immerhin ist die Schaltung über 50 Jahre
alt!
Wolfgang R. hat ihn erfolgreich, sauber u. gründlich bearbeitet.
Hier sei nochmal ausdrücklich DANKESCHÖN dafür gesagt! :-))
Doch in den alten Teilen steckt keiner drin u. die alten Teile
verschleißen
auch, wie z.B. die CPU und der Timer mit der PIA(Port Input Output).
Diese 2 ICs werden neu eingesetzt.
Was wurde bisher damit (dem JC) gemacht?
Einen Tongenerator geschrieben jeweils
für das Kammerton A und das G darunter.
Zum Lernen einige diverse Rechenprogramme in Hex.
Noch nicht gezeigt habe ich eine kleine Tastatur für sechs Töne.
Das 1. Programm ist noch für Tasten, für 2 bestimmte Lieder.
das 2. soll alleine laufen. Das Tonsignal mit Eingabe und Ausgabe
kommt vom Port (PIA) bzw, PIO besser (Port Input Output.)
Der Text, Kinderlied-artig und einem Scherzlied. Damit halte ich noch
zurück, die Texte sind für "Schleifen" gedacht.
Die Programme sind noch nicht fertig.
Mit der Tastatur werden 6(evtl. mehr) Eingänge auf Masse gezogen.
Einer wird als Ausgangs-Port gebraucht.
Das Ziel ein Rechner zum einfachen Rechnen, Schreiben u. Lesen.
In weiter Ferne: Vielleicht noch mit Anschluss an BTX bzw. Video-Text,
unproportionale Schriftzeichen Norm: 96 pro Zeile, usw.
Das letzte war die 6-Ton-Tastatur für Musik, sie ist durchgemessen.
Nur auf einem kleinen Arduino-Board.
Evtl. schick ich noch ein Bild.
Ich arbeite aber auch ein einer anderen Tastatur für 3 Oktaven
mit Halbtönen. - Und anderes.
An Klaus (Feelfree):
Ob eine solche 6er-Tastatur als Erhöhung von 1 Bit als Erhöhung gilt,
weiß ich nicht? Ist so etwas incrementiert? (Ich glaube 'nicht?'*)?
Denn eine gedrückte Taste ist als "1" um "1" höher als "0" :-) ;-).
(*Nicht) wenn ich sie(die Taste) loslasse ist sie wieder NULL.
Liebe Grüße
Günter K.
(ENK)
😊
Soul E. schrieb:> so wie Raider für den internationalen Markt zu Twix wurde.
Warum eigentlich? Was war der Stein des Anstoßes beim Raider?
PIA kann alternativ übrigens für Psychatrische Institusambulanz stehen
oder Praxisintegrierte Ausbildung. Und bestimmt gibs auch noch aus
anderen Bereichen passende Langformen für die Abkürzung PIA.
Passender zum Thema flackert gerade der Programmable Impedance Amplifier
im Kopf auf. Da weiß ich aber spontan nicht, obs den wirklich gibt oder
mein Gehirn sich den nur ausgedacht hat.
Hallo von Soul E. (soul_eye) 21.07.2025 13:49
PIA kann auch: Patienten-Institut-Ambulanz heißen,
das ist das, bei dem Deutschen AKüFi ist das
so; oder Port-INPUT/OUTPUT.
6532P für Timer mit Portangelegenheit
6502 Prozessor.
Ach ja: D.AKüFi Deutscher Abkürzungsfimmel.
Liebe Grüße
Günter
:-)
Günter K. schrieb:> Vielleicht noch mit Anschluss an BTX bzw. Video-Text,
Immer wenn man denkt, noch unrealistischer geht's gar nicht, kommt
Günter daher und beweist das Gegenteil.
Dein erreichter Stand ist, so wie ich es verstanden habe:
Du hast ein Programm geschrieben, dass einen Ton auf einem Port ausgibt.
Ob Du überhaupt einen Lautsprecher angeschlossen hast und den Ton
wirklich gehört hast, entzieht sich meiner Kenntnis.
Der nächste Schritt für dich (wie für jeden lernenden Anfänger) wäre, 2
Töne abwechselnd hintereinander abzuspielen.
Nach meiner Kenntnis hast Du das bisher noch nicht geschafft.
Und damit sind ALLE anderen Schritte zum Scheitern verurteilt.
Da ist es auch einfacher von BTX zu träumen, das gibt's nämlich seit
gefühlten 30 Jahren nicht mehr.
Günter K. schrieb:> Ich arbeite aber auch ein einer anderen Tastatur für 3 Oktaven> mit Halbtönen. - Und anderes.
Du "arbeitest" sicher an allem möglichen, und erreichst immer das
Gleiche: Nichts.
Günter K. schrieb:> Las aber in einem anderen Buch,> dem 1. von JC selbst, von 12 Volt, +5 Volt und -5 Volt.
Der Junior Computer mit originalem EPROM 2708 benötigt diese drei
Spannungen. Bei deinem Junior ist ein 2758 EPROM eingesetzt, welches mit
nur einer Betriebsspannung 5V auskommt. Somit viel einfacher
anzuschließen!
Günter K. schrieb:> Wolfgang R. hat ihn erfolgreich, sauber u. gründlich bearbeitet.> Hier sei nochmal ausdrücklich DANKESCHÖN dafür gesagt! :-))
Gerne geschehen, vielen Dank auch für das Päckchen von vor einiger Zeit!
Günter K. schrieb:> z.B. die CPU und der Timer mit der PIA(Port Input Output).> Diese 2 ICs werden neu eingesetzt.
Es wundert mich, dass diese Bausteine kaputt gegangen sein sollten -
wenn das wirklich passiert ist, tippe ich eher auf Kurzschlüsse beim
Rumprobieren!
Günter K. schrieb:> In weiter Ferne: Vielleicht noch mit Anschluss an BTX bzw. Video-Text,> unproportionale Schriftzeichen Norm: 96 pro Zeile, usw.
Dieses Projekt ist völlig unrealistisch - das BTX Format will sich
niemand antun. Und die Zusatzkarten für den Junior auf der externen
Backplane sind auch nicht so einfach zu realisieren, weil das dafür
benötigte "EX"-Signal auch erst umgelötet und angepasst werden muss. Tip
von mir: lebe mit der blanken Junior-Basisplatine und versuche, darauf
Programme zu schreiben. Das ist komplex genug.
LG,
Wolfgang
Wolfgang R. schrieb:> lebe mit der blanken Junior-Basisplatine und versuche, darauf> Programme zu schreiben. Das ist komplex genug.>> LG,> Wolfgang
Hallo lieber Wolfgang R.
das ist Ok, ich dachte nur, man könne die Speichererweiterung
so wie es Thomas W. schrieb.
> Lieber Thomas W.>> Ich werde Deine Vorschläge überdenken,> und evtl. ausführen. - Wahrscheinlich ja.> Wie man sieht, bin ich ja nicht so fit.
Ich habe das auch noch nicht ganz verstanden.
Wie ist das mit dem OR-Gatter gemeint?
Deinen Vorschlag, lieber Thomas, atte ich realistisch aufgefasst.
Das klang meinem Wissen nach als brauchbar.
Und Du hattest ja auch die geringen Ströme beschrieben die dann fließen.
Das Ic habe ich gekauft ...
Das JC-Buch schreibt über solche Probleme beschrieben,
die bei Deiner Speichererweiterung auftreten.
Aber da sehe ich noch ein ganz anderes Problem,
und dieses Problem geht -nicht- an Dich lieber Wolfgang!
Um mal ein umgekehrtes Beispiel zu nennen,
ach ich nenne das nicht oder doch
[Eben kam ich aus versehen an die Strg-Taste u.
noch eine verm. "n" danach war vieles weg!]:
Mein damals neuer Tochiba war noch in der Garatiezeit kapput gegangen.
Nur in Dortmund konnte er gemacht werden.
Werbung darf und will ich auch hier nicht machen.
Das führte zu erfreulichen Erlebnissen. Es war Sommer.
Kostenlose Reparatur! - Der Altchef kam rein,
und schenkte Streichhözer und Bleistifte.
Er sagte: "Zum Weihnachtkerzen anzünden u. mehreeé
Das war richtige Freundlichkeit! Keinerlei meckern im Gegeteil!
Nachher treffe ich mich mit Kirchenbesuchern
und gehen dann in eine Eis-Café, alles gut!
Nein es liegt ein menschliche Problem vor; - mehr sag. ich nicht.
Hallo Klaus, Frage:
Wie erhöht man ein externes Bit? Bitte sag's mir!
Nein Dumm bist Du nicht, (aber ungehobelt?)
Aus BTX wurde Vidiotext.
Ohne Farbe ist es fast(nur ähnlich) wie beim PET.
Ich weiß was ich kann, u. was ich nicht kann.
Liebe Grüße
Günter K.
(ENK) :-)
PS.:
Was habe ich gemacht:
Ich habe addiert, subtraahiert, Interessant besonders das Logische.
Den Tongenerator mit mehreren Tönen,
Erfolgreiches Spiel mit dem Diplay,
Ziel: "Einfacher Computer etc."
Und wie man sieht, auch Fachleute können irren,
wie z.B. PIA, was wohl besser PIO hieße.
Günter K. schrieb:> Hey Gunnar F.,
Hey Günter! Im Grunde genommen machst du auf mich einen sympathischen
Eindruck und das was du da versuchst, kann ich nachvollziehen.
Aber wenn ich dir einen Tip geben darf: (Es gibt viele andere,
vielleicht bessere, aber das ist meiner, weil ich so angefangen habe)
Nimm einen AT89C51ED2 (8051-Derivat mit Flash, ich schenke ihn dir!),
dazu Notepad++ und den ASEM5113 (schick ich dir wenn du ihn nicht
findest!). Mit der Konfiguration und einem billigen USB-Seriell-Adapter
sowie FLIP (frei zum Download) kannst du den in Assembler programmieren.
Das Handbuch ist überschaubar und die wichtigsten paar Befehle sind
schnell gelernt. Die Lernkurve ist steil, versprochen! (Okay, Englisch
ist erforderlich). Ruck-Zuck hast du was am Blinken und Piepsen. Flashen
ist eine Sache von 20s. Um dir derartige Hilfe anzubieten, habe ich dich
schon vor langer Zeit mal gefragt wo du wohnst. Übersehen oder kein
Interesse?
Mensch Günter,
tu uns doch wenigstens den einen Gefallen und lies Deine literarischen
Ergüsse nochmal durch, bevor Du sie absendest. Sie strotzen geradezu von
Halbsätzen ohne Aussage ("das ist Ok, ich dachte nur, man könne die
Speichererweiterung so wie es Thomas W. schrieb."), enthalten ganz
offensichtlicen Unfug ("Wie erhöht man ein externes Bit?") oder sind
allgemein unverständlich.
Dieses Korrekturlesen hilft evtl. auch Dir, Deine Gedanken mal etwas zu
ordnen, und mal so ganz nebenbei: Niemanden (ok, das ist anmaßend, da
ich jetzt für Alle spreche) interessiert es, was mit Deinem Toshiba
passiert ist oder welche Tasten Du aus Versehen gedrückt hast.
Versuch doch einfach mal, nur exakt einen Gedanken zu diskutieren und
nicht jedesmal ein buntes Kauderwelsch von Begriffen, die Du irgendwo
mal aufgeschnappt hast, an den Mann zu bringen. Du hast ganz
offensichtlich grundlegende Probleme mit Begrifflichkeiten, und
Ratschläge, die man Dir gibt, übersteigen entweder Dein Begriffsvermögen
oder werden ganz einfach mit neuen Absurditäten überbügelt.
Ja, Du bist schon ein älteres Semester, aber wenn Du Dir vorgenommen
hast, in dem Alter noch die Interna eines historischen Computers zu
erlernen, dann musst Du Dir auch die Kritik an einem solchen Vorhaben
anhören.
Günter K. schrieb:> Ich weiß was ich kann, u. was ich nicht kann.
Nein, das weißt du ganz offensichtlich nicht.
Günter K. schrieb:> Wie erhöht man ein externes Bit? Bitte sag's mir!
Du nimmst eine Flasche aus dem Bitburger-Kasten und stellst sie ganz
oben ins Regal.
Klaus schrieb:> Du nimmst eine Flasche aus dem Bitburger-Kasten und stellst sie ganz> oben ins Regal
Er fragte nach einem externen Bit. Das wäre dann eine Flasche, die noch
im Getränkehandel steht...
Cyblord -. schrieb:> Denkst du das haben hier andere vor dir nicht auch versucht?
Doch, es ist mir bewußt. Aber auch wenn das Ganze nervt, wenn er
bereitwillig für Vorschläge ist, würde ich ihm gerne helfen. Für mich
war das damals ein super Erfolgserlebnis und so wirklich schrecklich
fand ich Assembler nicht. Nur heute entwickel ich Firm- und Software
auch professionell und da bin ich halt schon lange zu Hochsprachen
übergegangen, weil das schneller und viel effektiver ist. Aus dem
Nähkästchen: Der erste 8032-Controller brauchte EPROMS und einen
Programmer konnte ich mir nicht leisten, als baute ich einen. Der
brauchte Software, also schrieb ich mir eine. Die sah (für meine
bescheidenen Verhältnisse) sogar ganz gut aus. Habe unter DOS "Fenster"
emuliert, mit Titelzeile etc. War schön, aber damals hatte ich auch noch
mehr Zeit zum verschwenden. Gebracht hat es mir ja dann letztendlich
doch etwas, auch wenn das von damals gelernte heute ganz tief hinten und
unten im Hirn liegt.
Hallo liebe Leute,
Günter K. schrieb:> Das JC-Buch schreibt über solche Probleme beschrieben,> die bei Deiner Speichererweiterung auftreten.
Fehler mit einer Verbesserung(ein Wort war zuviel!):
Günter K. schrieb:
- Das JC-Buch schreibt über solche Probleme,
- die bei Deiner Speichererweiterung auftreten.
Ganze Verbesserung:
Im JC-Buch 3 sind solche Probleme beschrieben,
die bei einer Speichererweiterung auftreten.
Übrigens, ich weiß was ich kann
und was ich nicht kann; beides ist wichtig!
Und von dem ersteren, lasse ich mir nichts nehmen.
Liebe Grüße
Günter K.
(ENK)
Klaus schrieb:> So ein Satz wird auch durch ständige Wiederholung nicht richtiger.
Ich denke, bei so ziemlich jedem ausser Günter ist angekommen, dass du
ihn für unfähig hältst.
Bei Günter scheint es nicht anzukommen, oder es scheint ihn nicht zu
interessieren.
Ich kann nicht für die anderen sprechen, aber mich für meinen Teil
interessiert es überhaupt nicht, für wie fähig du Günter hältst.
Also verzichte doch zukünftig auf deine drölfzigste "Günter ist
unfähig"-Bekundung, sie bringt nichts neues zutage und lässt auch dich
in schlechtem Licht dastehen.
Cyblord -. schrieb:> Gunnar F. schrieb:>> wenn er>> bereitwillig für Vorschläge ist, würde ich ihm gerne helfen.>> Ist er aber nicht.
Das würde ich so nicht sagen. Er ist nur nicht in der Lage, zwischen
zielführenden Tipps und allen möglichen Nebenschauplätzen zu
unterscheiden.
Und dann tauscht er wieder planlos Chips, will Speicher erweitern und
anderes krudes Zeug.
Cyblord -. schrieb:> Bisher hat er noch keinen Tipp bezüglich einer anderen Plattform auch> nur in Erwägung gezogen.
Und genauso ignoriert er jeden Tipp bzgl. schrittweisem Vorgehen,
step-for-step, wie ich es zuletzt gestern in meinem Beitrag von 14:50
vorgeschlagen habe.
Moin,
Klaus schrieb:> Und genauso ignoriert er jeden Tipp bzgl. schrittweisem Vorgehen,> step-for-step, wie ich es zuletzt gestern in meinem Beitrag von 14:50> vorgeschlagen habe.
Und warum tut er das?
Weil er es kann.
Und mit was tut er das?
Mit Recht. :-)
scnr,
WK
Cyblord -. schrieb:> ....
Ach, lass den Günter K. (enk) doch machen, was er will.
Er scheint harmlos zu sein.
Ich finde den Thread aus Küchenpsychologischer Sicht recht interessant.
Es zeigen sich interessante Verhaltensweisen....
Ins besondere die Frustration einiger, die selber dem Günter sein
Problem nicht zu haben scheinen.
Hallo lieber Hans
Hans schrieb:> Der hat gedacht und geredet wie ein Computer,> ein normales Gespräch war mit dem eigentlich nicht möglich. Das ist> jetzt alles nicht abwertend gemeint, der Typ war hoch intelligent aber> hat eben in seiner eigenen Welt gelebt - war halt ne Ausnahme.
Hallo lieber Hans,
ja, kann ich ihn auch noch kennen lernen?
Darum ist das auch nicht abwertend, weil hoch intelligent ist!
Prima!
LG. Günter K.
(ENK)
:-)
Hallo Christoph M.,
Christoph M. schrieb:> https://de.wikipedia.org/wiki/Intel_8255>> Während der Timer in der PIA oder RIOT extrem nützlich ist:> Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen,> Erfahrung?" 06.05.2025 11:56
Dankeschön!
LG Günter K.
(ENK) :-)
Gunnar F. schrieb:> Übersehen oder kein> Interesse?
Lieber Gunnar F.
ich hab's vergessen ja, und ich erinnere mich.
Ehrlich gesagt, weil viele(bestimmt micht alle)
so negativ kritisch sind, bin ich vorsichtig.
Ich habe Deine Nachricht verloren,
hab' gesucht und nicht gefunden.
Demnächst kopiere ich Datum u. Uhrzeit mit.
LG. Günter K.
(ENK)
:-)
Lieber Thilo und alle!
Es schrieb von Thilo L. (bc107) am 22.07.2025 08:42
Mensch Günter,
tu uns doch wenigstens den einen Gefallen und lies ...
... ...
Ja, ich werd's versuchen, denn das ist ja
nicht nur mein Problem; - das erkläre ich jetzt nicht extra.
Liebe Grüße
Günter K. :-)
Hallo Leute,
mit allen Elektronik-Instrumenten vor mir
(Frequenzzähler, Lautsprecher etc.,
mit der 6-Tasten-Konstuktion und den JC)
schreibe ich das Musikprogramm.
Hallo Klaus:
Eine externe Speicherstelle erhöhe
ich mit dem Befehl: INK ABS.
Mit lieben Grüßen
Günter K.
(ENK)
:-)
Günter K. schrieb:> Hallo Klaus:> Eine externe Speicherstelle erhöhe> ich mit dem Befehl: INK ABS.
Gut dass du mir das sagst. Ich hätte zwar eher INC $addr genommen, aber
dein Excel-Assembler ist da zum Glück sehr fehlertolerant.
Klaus (feelfree) schrieb im Beitrag #7912358 vom: 23.07.2025 22:51
> eher INC $addr
schriebst Du ja, Danke Dir, zusammen mit: "EEnnNN" merke ich mir das.
Hoffentlich behalte ich das, mit meinem zu kleinen Hirn.
Du fragtest als -Aufgabe- für mich ja freundlicherweise danach.
Ich weiß man soll nicht statt
INC $addr, EEnnNN merken,
INC $addr ist mir nun wichtiger. :-))
Leider ist die externe in der Memory-Mapp, die Wolfgang R
freundlicherweise
zusammengestellt hat, noch nicht belegt. Das Hirn ist eben zu klein
dafür;
hoffentlich lässt sich das noch irgendwie, - vielleicht auch irgendwie
ganz anders ändern. - Den netten kleinen JUNIOR behalte ich ja. - .
Mit lieben Grüßen,
Günter K.
(ENK)
😊
Günter K. schrieb:> Leider ist die externe in der Memory-Mapp, die Wolfgang R> freundlicherweise> zusammengestellt hat, noch nicht belegt
Du hast es leider nicht verstanden, mal wieder....
Wenn du Daten in deinem Programm im RAM abspeichern willst, kannst du
eine beliebige Adresse im RAM nehmen, die nicht anderweitig belegt
ist.
Günter K. schrieb:> EEnnNN
Was soll das sein?
Edit: Ah, hab's kapiert, du hast mal wieder deinen manuellen Assembler
angeworfen.
Günter schau dir mal dieses Video an, da kommt die Programmierung des
Junior-Computers drinnen vor und könnte dir beim Verständnis des
Assemblers helfen:
https://www.youtube.com/watch?v=-s6dttMAt9w
Klaus schrieb: 24.07.2025 19:18, dass
> Christoph M. schrieb:>> dieses Video>> ist "zufällig" von Wolfgang R. ...
- also Klaus (feelfree) schrieb im Beitrag: s.o.
Du meinst vermutlich: "derjenige, ... ?"
> der Günter's Junior Computer restauriert hat ....
Ja, und zwar sehr erfolgreich! Und das ist sehr erfreulich!
--
Eben hatte ich mir den Film angeschaut, den Christoph M. schickte;
denn hören, kann ich leider nicht mehr gut, (es geht mit Untertitel).
In diesem Assembler-Teil, lehrt er* genau das, was ich wissen möchte!
Die Filme von *Wolfgang R. gefallen mir sehr gut.
wie ich es schonmal schrieb, dass ich nach dem Buch 1 rechnete,
so rechnete ich auch mit der ALU.
Mit lieben Grüßen
Günter K.
(ENK)
😊
Hallo liebe Leute,
Schreibverbesserung bei mir, vom vorigen Beitrag:
Wie ich es schonmal schrieb, dass ich nach dem Buch 1 rechnete,
so rechnete ich danach auch mit der ALU,
also nur mit logischen Befehlen.
Mit lieben Grüßen
Günter K.
(ENK)
😊
Günter K. schrieb:> dass ich nach dem Buch 1 rechnete,> so rechnete ich danach auch mit der ALU,> also nur mit logischen Befehlen.
Dann rechne ich weiterhin mit großen Fortschritten und nenne weiterhin
Weihnachten als Ziel für das 6-Tasten/Töne-Programm.
Nur das Jahr steht noch in den Sternen.
Günter K. schrieb:> so rechnete ich danach auch mit der ALU,> also nur mit logischen Befehlen.
Wenn du nur mit logischen Befehlen rechnen wuerdest, braeuchtest du ja
nur eine LU und keine ALU. Dann haetten die ja das A ganz umsonst da
reingebaut.
Gruss
WK
-2345678-1-2345678-2-2345678-3-2345678-4-2345678-5-2345678-6-2345678-7-2
3456
von: Dergute W. (derguteweka)schrieb: 25.07.2025
19:31
Günter K. schrieb:
>> also nur mit logischen Befehlen.>> Wenn du nur mit logischen Befehlen rechnen wuerdest, braeuchtest du ja> nur eine LU und keine ALU. Dann haetten die ja das A ganz umsonst da> reingebaut.>> Gruss> WK
Lieber Dergute W.(derguteweka),
Deine Anmerkungen sind berechtigt. Denn AlU heisst ja:
Arithmetische Logische Einheit.
Auf den Seiten 65 - 66 im JC-Buch1, absolvierte ich eben nur diese
Aufgaben. Und fand es interessant, dass das geht. Davon war ich so
begeistert;
und auch wie Wolfgang R. das so wunderschoen zeigt. - Natuerlich
kann der JC vollwertig Dezimal rechnen.
Und jetzt hole ich aus Jux und guter Laune den Rechner vor und gebe
diese Daten wieder ein. (Im anderen Fall, machte ich das mit Exel
selber.)
Vielen Dank, für die Anfrage. Liebe Gruesse Guenter K. (ENK) 😉
PS.: Kopiert fürs Englisch, mal sehen ob es automatisch geht.
In Englisch ist das fuer ein anderes Forum gedacht.
Bradward B. schrieb:> von Bradward B. (Firma: Starfleet) (ltjg_boimler) 14.10.2024 09:06
Bradward B.
Monk schrieb:> 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.
von Peter D. (peda) 14.10.2024 08:41
Außerdem gibt es für den jede Menge Schulbildungskompatible
Dokumentation.
Hallo liebe Leute!
Leider geht es mir im Moment wirklich nicht gut.
Ich bin jetzt hier, weil ich mich dann besser fühle;
muss mich aber leider um wichtigere Dinge kümmern.
Ich melde mich aber nochmal wieder.
Vielen Dank für Eure Tipps.
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.>> 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
Aber jetzt sind leider andere Dinge dran, die nichts mit dem Thema zu
tuen haben.
Liebe Leute,
ich melde mich nochmal.
J. T. schrieb:> Gute Besserung, lass dich nicht kleinkriegen
Dankeschön, freut mich, ich bin gerührt.
Liebe Grüße
Günter K.
(ENK)
Ich finde es zwar befremdlich, dass man gerade ins Microcontrollerforum
geht, um sich besser zu fühlen, aber ich wünsche dir von Herzen alles
Gute!
Wolfgang
Ich habe in der letzten Ausgabe des Raspberry Pi Official Magazine eine
kleine Besprechung des "Picocomputer 6502" gelesen: Eine 65C02, eine
65C22 und 128kB RAM. Getrieben wird die Maschine von einem Raspberry
Pico (oder W, wenn WLAN gewuenscht ist). Der USB-Anschluss des Picos
bietet den Anschluss von Tastatur, Maus, Gamepad und Upload an.
Der zweite Pico bietet ein VGA-Interface an, so dass man einen
VGA-Monitor anschliessen kann. Da die 6502 nur 64kB addressieren kann,
wird die zweite Haelfte des Speicherchips als Framebuffer benutzt.
Der Anreisser von der magpi:
https://magazine.raspberrypi.com/articles/picocomputer-6502
Der Autor hat ein kleines Video ueber den Rechner gemacht:
https://rpimag.co/PicoComputer
Die komplette Dokumentation des Projektes:
https://picocomputer.github.io/
Thomas W. schrieb:> Picocomputer 6502
Ich habe irgendwie den Sinn noch nicht verstanden:
Es ist ja kein echtes Retro-Projekt, weil es ja nichts Altes nachbildet
oder emuliert, sondern lediglich eine uralte CPU mit modernerer
Peripherie verbindet.
Die Frage die sich mir stellt: Warum? Der Pico wäre ja alleine in der
Lage, die 6502 zu emulieren.
> Der Pico wäre ja alleine in der Lage, die 6502 zu emulieren.
nicht "wäre", er "ist":
Beitrag "6502 Emulator PiPico"
.. aber ich denke auch noch darüber nach, ob das Ganz sinnvoll ist.
Christoph M. schrieb:>> Der Pico wäre ja alleine in der Lage, die 6502 zu emulieren.> nicht "wäre", er "ist":> Beitrag "6502 Emulator PiPico">> .. aber ich denke auch noch darüber nach, ob das Ganz sinnvoll ist.
Ah, don't shoot the messenger! Und da das so oder so Hobby oder so ist,
stellt sich die Sinnfrage nicht. Und wenn Rumbledethumps (der Autor) ein
paar Jahre Spass hatte ist doch gut.
Hallo liebe Leute,
vielen Dank, für Deine Eure Beiträge:
Thomas W. schrieb:>> .. aber ich denke auch noch darüber nach, ob das Ganz sinnvoll ist.
Nun, ich habe nichts gegen das Löten, ich kann auch löten
Doch die 2xPico-Platine, sieht ja -etwas- elegant aus.
Obschon inzwischen mein Herz an den JC hängt.
1. Die Frage ist, was kostet das Ganze?
2. Ob das Ganz sinnvoll ist?
denn, gut wäre, wenn die Schaltung auch ganz ersichtlich ist.
Dazu unter anderem wäre es auch interessant,
mal selber eine Tastatur zu entwickeln
und sei es nur für 4 Bit = 2 x 2 nur als Logik-Schaltung.
Logik mit high-1/2-Nibble (und)oder low-1/2-Nibble
(und)oder high-Bit (und)oder low-Bit. Es wird keine Matrix gebraucht
sondern nur indirekt eben durch die Logik mit der Oder-Logik.
Man muss dann zwar TTL-Logik-Bausteine setzen. (Ohne Speicher)
Für das Programm INPUT, anschließend in ein Buffer legen lassen,
so dass es sich der Prozessor zur rechten Zeit nehmen kann.
Wenn das klappt, - dann später auch, mit 8 Bit (und mehr),
(dann aber, dem Speicher geholt). [Mit ortografischer Tataturanordnug.]
Das sind nur Überlegungen.
Liebe Grüße
Günter K
(ENK)
😊
PS.:
Im Moment habe ich leider ganz andere richtige Sorgen,
die gehören nicht hierher.
Hallo liebe Leute,
Inzwischen hatte ich mal ein Musik-Prg. für Tastatur abgeschrieben,
(noch nicht ausprobiert).
Es gefällt mir aber nicht, weil ich einen eigenen Programmierstil
entwickeln möchte; es sollte modular sein. Weil es Überschaubarer ist.
Liebe Grüße
Günter K.
(ENK)
Günter K. schrieb:> Inzwischen hatte ich mal ein Musik-Prg. für Tastatur abgeschrieben,> (noch nicht ausprobiert).
Wieso schreibt man ein Programm ab, um es dann nicht auszuprobieren?
Gibt es noch sinnlosere Tätigkeiten?
Günter K. schrieb:> Dazu unter anderem wäre es auch interessant,> mal selber eine Tastatur zu entwickeln> und sei es nur für 4 Bit = 2 x 2 nur als Logik-Schaltung.
Auch wenn das nicht ganz utopisch klingt, fang bitte noch kleiner an:
Nimm einen Port als Eingang, einen anderen als Augang.
Am Eingang wird ein Taster angeschlossen gegen GND, mit PullUp.
Am Ausgang eine LED mit Vorwiderstand, ggf. mit Transistor als
Treiberstufe.
Und dann schreibst Du ein Programm, das die eine Taste abfrägt und bei
Betätigung die LED ein/bzw. ausschaltet.
Erst wenn Du das geschafft hast, denk über mehr nach.
Glaub' mir es einfach, nur mit solchen kleinen Schritten kommt man
voran.
Bislang bist du nämlich noch exakt bei Null.
Hallo Leute,
Am 23.08.2025 um 13:50 Uhr,
von Klaus (feelfree) schrieb: ... ...
> Und dann schreibst Du ein Programm, das die eine Taste abfrägt und bei> Betätigung die LED ein/bzw. ausschaltet. ... .
In meiner Schaltung wird zum Anfang, noch gar kein Programm gestartet.
Mit einer LED was anzeigen ist schon gut, doch den Rest macht die Logik.
Die LED zeigt z.B. nur an, dass z.Z., keine Taste gedrückt wird.
Das darauffolgende Programm heißt: INPUT.asm
Das, natürlich mit Operations-Code
und Schaltungs-Erklärung.
Liebe Grüße
Günter K.
(ENK)
😊
Günter K. schrieb:> In meiner Schaltung wird zum Anfang, noch gar kein Programm gestartet.
Ja, wenn man den Sinn und die Vorteile von Mikrocontrollern und deren
Programmierbarkeit nicht versteht, dann neigt man halt dazu, diskrete
Schaltungen zu entwickeln. In den 70ern hat man das ja auch so gemacht.
Es lebe der Fortschritt!
Klaus schrieb:> dann neigt man halt dazu, diskrete> Schaltungen zu entwickeln. In den 70ern hat man das ja auch so gemacht.
Es hat aber auch Vorteile, - dort hinein, können sich keine Programme
hineinverschlittern.
Mal abwarten wenn es so weit ist. - Aber ich sehe, Du hast mich
verstanden,
auch wenn Du mir oft auf die Nerven gehst, ich versuche es mit Humor
hinzunehmen. Du bist mit Sicherheit intelligent! - Später kannst Du mir
vielleicht hier und da mal beibringen,
modular zu programmieren.
Liebe Grüße
Günter K.
😊
Hallo Leute,
Thomas W. schrieb:> Ah, don't shoot the messenger! Und da das so oder so Hobby oder so ist,> stellt sich die Sinnfrage nicht. Und wenn Rumbledethumps (der Autor) ein> paar Jahre Spass hatte ist doch gut.
Ob man den Computer günstig kaufen kann?
Natürlich hängt mein Herz noch am JC.
Liebe Grüße
Günter K.
(ENK)
😊
Günter K. schrieb:> Thomas W. schrieb:>> Ah, don't shoot the messenger! Und da das so oder so Hobby oder so ist,>> stellt sich die Sinnfrage nicht. Und wenn Rumbledethumps (der Autor) ein>> paar Jahre Spass hatte ist doch gut.>> Ob man den Computer günstig kaufen kann?
Nun ja: Dia Platine ca. 20EUR (JLCPCB, fuenf Platinen, Leadfree,
EuroPacket), CPU + VIA (reichelt, ca. 20EUR beide), die Raspi Pico (ca
12EUR sowohl ein RP2040 und einen RP2040W), Ram 128k, 3v3: 6,00EUR,
Huehnerfutter: 10Eur = 65EUR (wenn man bedenken tut, dass der Junior
1980 450DEM(*) gekostet hat bekommt man Pippi im Auge).
Das ist kein Bausatz, Eigenverantwortung ist angesagt, aber so teuer ist
nicht.
P.S.: vom Elektor-Verlag
https://www.elektormagazine.de/magazine/elektor-198005/46018
Günter K. schrieb:> Es hat aber auch Vorteile, - dort hinein, können sich keine Programme> hineinverschlittern.
Genau das meinte ich. Wer die Vorteile der Programmierbarkeit nicht
verstanden hat, nimmt halt Hardware, mit allen Nachteilen: Teurer,
Fehler im Feld praktisch nicht korrigierbar, Verhalten nicht anpassbar.
Günter K. schrieb:> Später kannst Du mir> vielleicht hier und da mal beibringen,
Klar. Löse die Aufgabe mit Taster einlesen und LED toggeln, dann machen
wir da 2 modulare Softwarebausteine daraus.
Hallo Leute, hallo Klaus.
Klaus schrieb:> nimmt halt Hardware, mit allen Nachteilen: Teurer,> Fehler im Feld praktisch nicht korrigierbar, Verhalten nicht anpassbar.
Stimmt! (vielleicht nicht immer.).
> Günter K. schrieb: im Beitrag: s.o.:>> Später kannst Du mir>> vielleicht hier und da mal beibringen,
Ich meinte, modulares programmieren.
Um aber Dir erst mal eine Antwort zu geben: Das werde ich es tun.
Denn leider, ist das abgeschriebene *Musikprogramm, nicht so modular.
Selbst wenn es funktioniert, habe ich es noch lange nicht verstanden;
und ich denke, das könnte man ändern. Schwieriger fände, ich dieses
*Programm, richtig zu analysieren.
Natürlich möchte ich nicht bei solch kleinen Schritten bleiben.
Tatsächlich ist es so, dass viel Hardware in einem Baustein beschaltet
werden kann, z.B.: Widerstände, Kondensatoren, Spulen; allerdings wenn
den Festwert kennt, könnte man dessen Festwert integrieren. Z.B.: Beim
Fernsehen machte man das auch mit Kapazitäts-Dioden.
Ich versuchte mal ein Buch über FPGA zu kaufen, und ich las auf den
ersten Seiten, dass man nicht nach logischen Schaltungen suchen sollte;
(ja, das Buch war auch noch sehr dick.) wegen der Aussage, kaufte ich
das Buch nicht.
Zurzeit, habe ich den JC an einem anderen Ort. - Aber den Z80 hab' ich
noch hier, nur der hat wieder andere OP-Codes mehrere auf einer Seite
für einen Befehl. leider sind damit die Adressierungsarten auch nicht zu
erkennen. Beim JC, kann ich mindestens Nachschlagen. - Die Portadressen
müsste ich auch neu raussuchen. Nun morgen stehen wieder andere Aufgaben
an.
Eben noch sah ich den Film:
Planet Wissen, Vorfahre Null | Die Suche nach dem Ursprung des Lebens.
https://www.planet-wissen.de/video-vorfahre-null--die-suche-nach-dem-ursprung-des-lebens-100.html
Und ich denke, dass das auch mit Computerzahlen zu tun hat.
Hierbei geht es u.a. um die Zahlenbasis 20.
Das wäre aber nur ein Ausschnitt.
Also, ich melde mich nochmal.
Mit lieben Grüßen
Günter K.
(ENK)
😊
Günter K. schrieb:> Naja, Begleitinformationen und sei es in Englisch,> würden mich interessieren.
Den Link hat Thomas in seinem Beitrag mitgeliefert.
Ich dachte du kannst kaum / nicht so gut Englisch?
Alles in allem mal wieder ein typischer "enk":
Du bist mit deinem JC noch keinen Millimeter weitergekommen, aber du
denkst schon wieder über das nächste Projekt nach.
Du liebst es wohl zu scheitern.
Günter K. schrieb:> Ich versuchte mal ein Buch über FPGA zu kaufen, und ich las auf den> ersten Seiten, dass man nicht nach logischen Schaltungen suchen sollte;> (ja, das Buch war auch noch sehr dick.) wegen der Aussage, kaufte ich> das Buch nicht.
Das zeigt einmal mehr, dass ich deine Gedankengänge Null Komma gar nicht
nachvollziehen kann.
Cyblord -. schrieb:> Allein die letzten 5 Posts des TE sind für mich nicht mehr verständlich.> In welchem geistigen Zustand befindet er sich?
Seit mehr als 1000 Posts im Zustand des genüsslichen
Gruppen-Verarschens.
Cyblord -. schrieb:> In welchem geistigen Zustand befindet er sich?
Mit Sicherheit weit jenseits von Allem, was wir hier irgendwie
verständlich für ihn kommentieren könnten. Ich hoffe nur, er fühlt sich
wohl in seiner Verwirrtheit.
Was mich aber wirklich wundert, ist seine grenzenlose Renitenz gegenüber
Allem, was hier so an teilweise hilfreichen Tipps oder Erklärungen
gegeben wurde. Nicht mal das versteht er...
Günter K. schrieb:> Zurzeit, habe ich den JC an einem anderen Ort.
Der JC macht wohl grade Urlaub...
> - Aber den Z80 hab' ich> noch hier, nur der hat wieder andere OP-Codes mehrere auf einer Seite> für einen Befehl. leider sind damit die Adressierungsarten auch nicht zu> erkennen. Beim JC, kann ich mindestens Nachschlagen.
Natürlich, natürlich. Für den Z80 gibt es absolut keine Infos im Netz.
Ist ja auch son Nischending das niemand je benutzt hat.
Cyblord -. schrieb:> Günter K. schrieb:>> - Aber den Z80 hab' ich>> noch hier, nur der hat wieder andere OP-Codes mehrere auf einer Seite>> für einen Befehl. leider sind damit die Adressierungsarten auch nicht zu>> erkennen. Beim JC, kann ich mindestens Nachschlagen.>> Natürlich, natürlich. Für den Z80 gibt es absolut keine Infos im Netz.> Ist ja auch son Nischending das niemand je benutzt hat.
Das hatte Guenter ja schon eingeraeumt: Die Z80 ist ihm zu kompliziert.
Ich habe ja ein paar Z80-MBC2 (https://github.com/SuperFabius/Z80-MBC2).
Das Ding ist overclocked auf 8MHz und als Massenspeicher wird eine
SD-Card verwendet.
Waren die Maschinen damals wirklich so langsam? Die Compile-Orgien unter
CP/M dauern ja ellenlang (15 Zeilen Quellcode und zwei Minuten Compile
und Link). Wenn ich wirklich etwas machen will, benutze ich eine
z80pack-Instanz (https://github.com/udo-munk/z80pack) die mir eine Z80
mit ca. 450MHz emuliert.
Klaus schrieb:> Den Link hat Thomas in seinem Beitrag mitgeliefert.> Ich dachte du kannst kaum / nicht so gut Englisch?
(Das kann ich noch abschreiben und übersetzen.)
Hallo Klaus,
guten Morgen.
Stimmt, ich kann nicht so gut Englisch.
Mit 48 begann ich Englisch zu lernen, Englisch II. Teil,
im September wo ich 49 war, begann der Tinnitus.
Weil aber zuvor noch mit 49 der T' noch nicht da war,
meldete ich mich bei der VHS zum IV. Teil an.
Die dortige Lehrerin als Kanadierin, 'kaute' Amerikanisch;
ich verstand fast nichts d.h. so gut wie nichts.
Ich hörte mit der Schule auf - das Geld dafür war weg.
Mein "Englisch" ist wirklich schlecht.
Doch wenig später traf ich mal zufällig einen Kanadier.
Und der Kanadier sprach so deutliches Englisch,
dass ich ihn verstehen konnte. Zufall sind auch, die Wahl der Worte.
Ich las noch Kurzgeschichten von James Joys, Katrin Mainfields,
Oskar Wilde z.B.: "The Happy Prince and other Stories".
Mit und mit, wurde der Tinnitus immer stärker! - Ich trage Hörgeräte.
Jetzt verstehe ich kaum mehr Deutsch!
Mein Englisch ist wirklich sehr schlecht!
Ich muss aber auch meinen Haushalt machen, Küche putzen, Einkaufen usw.
.
In Deinem Falle für Deinen Vorschlag,
werde ich sogar das Datenblatt für den Transistor einbeziehen. ;-))
Liebe Grüße
Günter K.
(ENK)
😊
PS.:
So, jetzt muss ich den Haushalt weiter machen,
Du weißt, ich bin nicht der Schnellste.
Hallo liebe Leute,
Thilo L. schrieb:> Ich hoffe nur, er fühlt sich> wohl in seiner Verwirrtheit.
Bitte lass(t) das - mit solchen Äußerungen!
Auch, wenn es so erscheint.
Wenn es Euch Spaß macht, - mir nicht!
Das gilt nicht für Sachen, die ich gut finde,
wie z.B. von Thomas W. u. anderes, das ist ok!
Mit lieben Grüßen
Günter K.
(ENK)
:-)
Hallo liebe Leute,
Günter K. schrieb:> Das gilt nicht für Sachen, die ich gut finde,> wie z.B. von Thomas W. u. anderes, das ist ok!
und selbst dann, wenn es andere (wie eben gesagt) so empfinden.
Bitte lass(t) ... das!
Liebe Grüße
Günter K.
(ENK)
:-)
Günter K. schrieb:> Hallo liebe Leute,>> Thilo L. schrieb:>> Ich hoffe nur, er fühlt sich>> wohl in seiner Verwirrtheit.>> Bitte lass(t) das - mit solchen Äußerungen!> Auch, wenn es so erscheint.> Wenn es Euch Spaß macht, - mir nicht!>> Das gilt nicht für Sachen, die ich gut finde,> wie z.B. von Thomas W. u. anderes, das ist ok!>> Mit lieben Grüßen> Günter K.> (ENK)> :-)
Günter,
nur zur Klarstellung: meine obige Hoffnung war keinesfalls
despektierlich oder abwertend gemeint. Aber sieh es bitte ein: Deine
Äußerungen über Monate hinweg haben schlichtweg Nichts, aber auch
garnichts, mit logischem Überlegen, gezielter Fehlersuche, methodischem
Lernen, ja nicht mal mit gesundem Menschenverstand zu tun. Das bezeichne
ich als Verwirrtheit. Das ist einfach nur eine Feststellung aufgrund
Deiner Außendarstellung, und ich denke, ein Großteil der Mitleser hier
schätzt Dich ähnlich ein. Und das mag so auch ok sein, denn schließlich
kennen wir Deine Lebensumstände auch nicht.
Wenn ich dann hoffe, dass Du Dich in Deiner Situation (deinem geistigen
Zustand) wohlfühlst, dann ist das ein einigermaßen positiv besetzter
Wunsch, dass Du damit irgendwie klar kommst. Aber versuche bitte nicht,
uns davon zu überzeugen, dass irgendetwas, was Du mit Technik im
Allgemeinen, oder Computern im Speziellen tust, auf Logik und
Ursache=>Wirkung basiert. Das tut es nicht. Es sind wilde
Gedankenfetzen, die Du über Deine Finger und die Tastatur publik machst.
Und es funktioniert auch erwiesenermaßen nicht in die andere Richtung:
Nichts von dem, was Du hier über lange Monate hinweg an Erklärungen,
Hilfen, Richtigstellungen, Ratschlägen etc. erhalten hast, scheint bei
Dir tatsächlich in dem Sinne angekommen zu sein, dass Du die Info auch
nutzt, um einen angefangenen Gedanken von Dir sinnbringend
weiterzuführen.
Thilo L. schrieb:>>> Ich hoffe nur, er fühlt sich>>> wohl in seiner Verwirrtheit.
Diese Äußerung ist überflüssig.
> Aber versuche bitte nicht,> uns davon zu überzeugen, dass irgendetwas, was Du mit Technik im> Allgemeinen, oder Computern im Speziellen tust, auf Logik und> Ursache=>Wirkung basiert. Das tut es nicht.
Lieber Thilo L.
Das hat nichts mit überzeugen und meinen Fingern zu tun.
Ich habe wirklich keine Lust, mich darum zu streiten.
Die Logik ist in sich, eine Antwort die ich verstehe;
allerdings bei jeden anderen der es richtig gelernt hat auch.
Dann kann da, gar kein anders Ergebnis herauskommen.
Thilo L. schrieb:> Äußerungen über Monate hinweg haben schlichtweg Nichts, aber auch> garnichts, mit logischem Überlegen, gezielter Fehlersuche, methodischem> Lernen, ja nicht mal mit gesundem Menschenverstand zu tun.
Schluss damit! Das lasse ich mir nicht sagen!
Dies zwei Sätze gelten nicht für alle.
Ich werde auch nicht anfangen, etwas zu zerpflücken.
Die Hinweise und freundliche Angebote finde ich ja auch gut, :-)
aber versteht bitte, meine andere Angehensweise.
Ich möchte aber niemanden von etwas überzeugen,
was nicht von ihm verstanden wird.
Bitte keine derartigen Bemerkungen mehr. Es reicht.
Thilo L. schrieb:> Günter,>> nur zur Klarstellung: meine obige Hoffnung war keinesfalls> despektierlich oder abwertend gemeint.
Ich glaube schon, das es gut gemeint ist.
Bitte raubt mir nicht den Mut.
Liebe Grüße
Günter K.
(ENK)
:-)
PS.: Tatsächlich habe ich auch andere Sachen zu tun.
Und wenn ich noch mit anderen Problemen anfangen würde,
(die passen zum Glück nicht nach hier)
würden jene welche, hier auch noch eingreifen.
Zur Entlastung *derjenigen die merken wie versucht wird mich zu
v'a'.
sag ich zu Kaus, ich bin kein kleines Kind, auch wenn ich schon
heringefallen war. Die Bemerkungen *denjenigen waren schon ein
guter
Tip. Danke dafür.
Günter K. schrieb:> Zur Entlastung *derjenigen die merken wie versucht wird mich zu v'a'.> sag ich zu Kaus, ich bin kein kleines Kind, auch wenn ich schon> heringefallen war. Die Bemerkungen *denjenigen waren schon ein guter> Tip. Danke dafür.
Verstehst du den Kauderwelsch eigentlich selbst?
Günter K. schrieb:> Die Logik ist in sich, eine Antwort die ich verstehe;
Günter,
Du könntest allenfalls als Poet durchgehen. Was soll denn dieser
hanebüchene Satz schon wieder bedeuten?
Das meine ich mit fehlender Logik: da existiert ein Lichtjahre-großer
Abstand zwischen Deinen Gedanken und dem, was so durch Deine Finger zur
Außenwelt dringt. Es macht einfach keinen Sinn, was Du so absonderst.
Nein, tut es nicht.
Lies Dir doch mal 5 Minuten nach einem deiner Posts durch, was Du gerade
geschrieben hast, vielleicht wirst Du dann feststellen, dass das weder
ganze Sätze, noch von Verstand getriebene Äußerungen, noch von normal
denkenden Menschen nachvollziehbare Subjekt-Verb-Objekt-Konstrukte sind.
Das sind eher Traumfetzen, die es irgendwie in eine Tastatur geschafft
haben...
Günter K. schrieb:> auch wenn ich schon heringefallen war.
Ist das ein besonderes Event? "Heringefallen" im Sinne von
"Barschestürzen", oder "Walestolpern", oder "Aaleknoten", oder
"Lachsehumpeln"?
Thomas W.
>Es hat nicht so richtig mit dem Thread zu tun (OK, es geht um die 6502),>aber Microsoft den Original-M6502-Basic Interpreter veroeffentlicht>(https://github.com/microsoft/BASIC-M6502), sogar mit einer sehr>grosszuegigen Lizenz (defacto Public Domain).
Mit welchem Assembler kann man das assemblieren? Ich vermute AS65 geht
nicht.
Christoph M. schrieb:> Thomas W.>>Es hat nicht so richtig mit dem Thread zu tun (OK, es geht um die 6502),>>aber Microsoft den Original-M6502-Basic Interpreter veroeffentlicht>>(https://github.com/microsoft/BASIC-M6502), sogar mit einer sehr>>grosszuegigen Lizenz (defacto Public Domain).>> Mit welchem Assembler kann man das assemblieren? Ich vermute AS65 geht> nicht.
Ich nehme mal an, fuer diesen Quellcode brauchst Du einen Assembler auf
der PDP-10, vermutlich TOPS-10 oder TOPS-20 (vor meiner Zeit).
In Zeile 2 ("SEARCH M6502") wird eine Library/Header-File M6502.UNV (so
eine Art vorkompilierte Header-File) eingebunden, die leider fehlt. Das
sind die Makros fuer die 6502-Opcodes.
Es gibt aber ein Projekt (https://github.com/mist64/msbasic) der die
vorhandenen (ausgelieferten) Binaries (aus der Disco-Zeit) disassembled
und einen Satz Sources erstellt hat, die mit dem CC65 kompiliert werden
kann.
Warme Worte findest Du unter https://www.pagetable.com/?p=46 , die
Sources findest Du unter https://github.com/mist64/msbasic, den Compiler
findest Du bei https://cc65.github.io/
Viel Spass!
Thilo L. schrieb:> Günter K. schrieb:>> Die Logik ist in sich, eine Antwort die ich verstehe;>> Günter,>> Du könntest allenfalls als Poet durchgehen. Was soll denn dieser> hanebüchene Satz schon wieder bedeuten?
Du bist auch Einer, der es IMMER noch nicht verstanden hat. Günther ist
80 und nicht mehr so ganz fit. Das ist aber egal. Solange ER Spaß bei
der Sache hat ist alles OK, egal wie unlogisch und sinnlos sie für die
Außenwelt auch scheinen mag. Wer glaubt, Günter noch zu einem fitten
Programmierer machen zu können, irrt.
Laßt den Günter einfach sein Ding machen und gut. Blöde Kommentare und
unsinnige Rettungsversuche gab es schon genug.
An Klaus und alle:
Schreiberichtigung.
Günter K. schrieb:> Zur Entlastung *derjenigen die merken wie versucht wird, mich zu> ver'ars'.> Also sag ich zu Kaus, ich bin kein kleines Kind, auch wenn ich schon> hereingefallen war. Die Bemerkungen *denjenigen waren schon ein> guter Tip. Danke dafür.
Ja, es stimmt, ich habe nicht Euer Niveau.
Es sollte ja eine betreffs:
"Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
sein.
Ich denke gerade nochmal über Dich, Gunter nach.
Ich wollte es ja -einfach- haben.
Hallo Hi Gunter!
Ich hatte nochmal nach Deinem Namen gesucht, auch gefunden,
Aber unter anderen Beiträgen.
Bitte melde Dich nochmal.
Liebe Grüße an alle.
Günter K.
(ENK)
:-)
Thomas W. schrieb:> Es hat nicht so richtig mit dem Thread zu tun (OK, es geht um die 6502),> aber Microsoft den Original-M6502-Basic Interpreter veroeffentlicht> (https://github.com/microsoft/BASIC-M6502), sogar mit einer sehr> grosszuegigen Lizenz (defacto Public Domain).
Veröffentlicht haben sie es schon vor gut 10 Jahren, die Datei
"M6502.MAC" findet man an einigen Stellen im Netz. Neu ist das
Github-Repository mit der eindeutigen Lizenzregelung. Mit der MIT-Lizenz
ist mehr oder weniger alles erlaubt -- ganz anders als bei den von Apple
freigegebenen Quellcodes für Apple II und Lisa.
Thomas W. schrieb:
>Warme Worte findest Du unter https://www.pagetable.com/?p=46 , die>Sources findest Du unter https://github.com/mist64/msbasic, den Compiler>findest Du bei https://cc65.github.io/
Danke. Ich hatte überlegt, ob es eine einfache Möglichkeit gibt, die I/O
auf einen seriellen Port umzumappen, dann könnte man das Microsoft-Basic
auf einem PiPico laufen lassen.
Christoph M. schrieb:> Thomas W. schrieb:>>Warme Worte findest Du unter https://www.pagetable.com/?p=46 , die>>Sources findest Du unter https://github.com/mist64/msbasic, den Compiler>>findest Du bei https://cc65.github.io/> Danke. Ich hatte überlegt, ob es eine einfache Möglichkeit gibt, die I/O> auf einen seriellen Port umzumappen, dann könnte man das Microsoft-Basic> auf einem PiPico laufen lassen.
Das sollte nicht so schwierig sein, denn der AIM65 hatte nur ein
kleines, 20 Zeichen grosses Display (also kein Memory-Mapped-Screen wie
CBM oder Apple][). Gucke mal in die Definitionen von AIM-65-Basic oder
sogar SYM-1. Und wenn Du z.B. die Definitionen fuer den KIM-1
(https://github.com/mist64/msbasic/blob/master/defines_kim.s) anguckst
brauchst Du nur zwei Monitor-Funktionen.
Editieren einer Programmzeile war so oder so manchmal schwierig: Wenn
eine Programmzeile eingegeben wurde (z.B. 100 PRINT "ABC" : PRINT "DEF")
wurde Zeile sofort tokenisiert umd im Speicher landete "100 <TOKEN
PRINT> "ABC" : <TOKEN PRINT> "DEF". Der Vorteil war natuerlich, dass Du
vier Bytes pro Print-Statement sparen kannst.
Beim Edit und List natuerlich die Gegenrichtung und da konnte es
passieren, dass der Input-Buffer ueberlaeuft. Es gab auch
Basic-Dialekte, die nicht-signifikate Leerstellen einfach unterdrueckt
haben (d.h. Einruecken der Programm-Struktur war nicht, man hat sich mit
Doppelpunkten [Kommandotrenner] beholfen). Ob das bei 6502-Basic so war,
weiss ich nicht mehr (45 Jahre her).
Thilo L. schrieb:> Günter K. schrieb:>> Die Logik ist in sich, eine Antwort die ich verstehe;>> Günter,>> Du könntest allenfalls als Poet durchgehen. Was soll denn dieser> hanebüchene Satz schon wieder bedeuten?
Als hanebüchen, (von mittelhochdeutsch,) bezeichnet man im heutigen
Deutsch, Ideen oder Handlungen, um sie als abwegig, haarsträubend oder
empörend zu bewerten. - Das ist Zynismus.
(... wirklich von Dir Tilo?)
Denn es bleibt dabei:
Die Logik ist in sich, eine Antwort die ich verstehe.
Die lieben anderen Leute die gut sprechen,
bei denen bedanke ich mich.
Hallo Gunter F.,
meine letzten funktionierenden Progrämmchen, waren nur,
einzelne verschiedene bestimmte Rechtecktöne vom Port des
Junior-Computers.
Was mein Ziel ist fragtest Du:
Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?
So, dass man per Tastatur Zeichen auf den Bildschirm bringen kann,
und verstehen, was der Operationscode mit dem Computer bzw. CPU macht.
Und dass man natürlich auch damit rechnen kann, aber nur in Assembler
bzw. Maschinensprache.
So habe ich mir gestern Abend alte Bücher
aus den 60er Jahren vorgenommen; - und siehe da,
schon damals gab es 64-Bit-Rechneroperationen (vermutlich ~ 1968).
(Ich könnte an dieser Stelle zu obigem noch mehr schreiben,
... doch das gäbe dann wieder mögliche Angriffspunkte.)
Hallo Gunter F.
Über den Administrator
kannst Du Gunter F. mich anonym per E-Mail anschreiben.
Du wärst nicht der 1. der mich aus dem Forum angeschrieben hat.
Aber bitte gebe meine E-Mailadresse u. ä. nicht weiter.
Vielleicht verstehst Du dann, selbst wenn es schwierig ist,
die Art meines Denkens. (Das hat Gründe.)
Liebe Grüße
Günter K.
(ENK)
😊
Hallo liebe Leute,
damit ich es nicht vergesse,
ich wünsche allen ein gesegnetes Weihnachtsfest,
alles Gute und einen guten Rutsch ins neue Jahr.
Liebe Grüße
Günter K.
(enk) ;-) :-)
WORD meldet sich (gegen Fehler) nicht mehr!
-------------------------------------------------------------------
Hallo Leute,
ich hatte, u. a. wegen anderer Probleme, lange nichts mehr daran
gemacht.
Ich muss mich hier auch um den Haushalt und um andere Sachen kümmern.
Inzwischen las ich, dass es auch beim Öffnen ein Tastenprellen gibt.
Wichtig ist mir, dass ich sagen kann,
dass die Restaurierung der Tastur, eine große Meister-Leistung ist!
Nochmals DANKE lieber Wolfgang!
Die richtige Antwort wegen Tastenprellen ist ok.
Inzwichen habe ich mehr über Tiefpass und Schmittrigger erfahren,
die das Tastenprellen aufhebt.
Ich habe vor, -einfach- neu zu bauen.
Vor allen Dingen aber, die Prozesse selbst zu verstehen,
d. h. nicht nur den Prozess selbst,
sondern auch was bei dem Prozess mitspielt,
z. B. im Status-Register, Akku, Stak und anderes,
die entsprechenden Plätze im RAM/ROM-Bereich kennen und was sich dort
abspielt.
Habe einen neuen Prozessor gekauft und will neu bauen.
Euch Allen, auch Erfolg in den Familien besonders an Feiertagen.
Liebe Grüße
Günter
(ENK)
All das. was du seit Monaten schreibst, geht so: "Ich will ich will ich
will!" "Ich will so klug sein!" Das erinnert mich an eine Episode aus
Star Trek TNG: "Wir sammeln Sachen! Wir sind jetzt stark!"
Wenn du hier nur getätschelt werden willst für das, was du hier so von
dir gibst, dann bleib so! Wenn du aber wirklich was lernen willst... Im
Ernst, ich schreibe mit einem erwachsenen Mann? Dann LERNE! Und ja,
Lernen ist ANSTRENGEND! Niemand hier wird dir alle eine Fragen
beantworten können (und meist auch nicht wollen), wenn du nicht ENDLICH
mal das selbst lernst, was du zur Beantwortung deiner Fragen selbst zum
Verstehen brauchst! Dein "ich will nur genau dies und das" ist einfach
unbrauchbar, vor allem dann, wenn dir schon zig Leute hier gesagt haben,
dass du auch noch dies und das wissen solltest, um dein dies und das zu
verstehen! Du benimmst dich wie ein 20-jähriger, der heimlich in einem
Forum fragt, wie er die ersten 2 Mathe-Sieb-Klausuren ohne Lernen
überstehen kann. Ich sage euch beiden: Gar nicht, und genau dafür sind
sie da!
Im Ernst, wie soll man anfangen? |␀| = 1? ^^
Carsten P. schrieb:> Im Ernst, wie soll man anfangen? |␀| = 1? ^^
Hast du die LANGE Diskussion komplett gelesen? Und verstanden? Eher
nicht.
Der OP ist 80 und nicht mehr so ganz fit. Laß ihm seine Illusionen und
Träumereien. Solange ER damit Freude hat, ist alles in Ordnung.
Günter K. schrieb:> Hallo liebe Leute,>> Prosit Neu Jahr!> Alles Gute zum neuen Jahr!> Liebe Grüße> ENK
Hallo Günter,
Danke für die freundlichen Grüße! Dir auch alles Gute für 2026 - lass
dich nicht unterkriegen!
Wolfgang