Hippelhaxe schrieb: > Ich vermisse meinen LC80. > Mit dem hätte ich das Problem schon lange gelöst... Faustkeile waren auch sehr vielfältig nutzbar! ;-)
Sherlock 🕵🏽♂️ schrieb: > Den Z80 und die zugehörigen I/O Bausteine kann man (bei seriösen > Händlern) nicht mehr kaufen. Angesichts des Angebots und des Alters der Bausteine, die ich da schon mal bekam, habe ich den Eindruck, dass Kessler seit Anbeginn der Zeiten noch nie das Lager ausfegte. Und abverkauft wird, was seit Jahrzehnten Staub ansetzt. https://www.kessler-electronic.de/de/Article?s=z80
:
Bearbeitet durch User
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.pdf Gerhard O. schrieb: > C ist ohnehin nur einen Katzensprung von ASM > entfernt Früher, mag das mal ein Makroassembler gewesen sein. Heute optimiert das soweit, dass man manchmal erstaunlich wenig des C im Maschinencode wiederfindet. Oder deutlich umsortiert. Rbx schrieb: > Zu mindestens sollte man den Unterschied zwischen CISC und RISC kennen. > Letzteres ist ja beim ARM dominierend und so auch eher > Programmiertechniken wichtig. Hmmm... Wenn ich mich richtig erinnere, hatte man bei CISC ein strengeres Auge auf Menschenfreundlichen ASM/Maschinen Code. RISC Dialekte sind eher auf Compiler ausgerichtet. Wenige ASM Statements, aber dafür rasante Ausführung.
:
Bearbeitet durch User
(prx) A. K. schrieb: > https://www.kessler-electronic.de/de/Article?s=z80 Falk B. schrieb: > Z85C3008PSC Z80-SCC CMOS 8MHz DIP40 11,50 € Das ist aber kein Z80, sondern eine serielle Schnittstelle. Eine Z80-CPU haben die nicht mehr im Programm. Mouser, Digikey, Reichelt, Conrad auch nicht. Dort gibt es noch welche: https://www.mos-electronic-shop.de/z80z84-c-33_106_281.html https://pinball-parts.shop/detail/index/sArticle/32760
:
Bearbeitet durch User
Arduino F. (Firma: Gast) (arduinof) 22.10.2024 16:01 >So absolut ist das falsch >https://www.greenarraychips.com/home/documents/greg/PB003-110412-F18A.pdf Nö, es ist absolut auch da richtig.
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.
Christoph M. schrieb: > ist absolut auch da richtig 1. Forth ist eine Hochsprache 2. Es gibt keinen Assembler, und keine Assembler Sprache dafür.
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.
:
Bearbeitet durch User
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
:
Bearbeitet durch User
Das führt alles zu nichts. Versuch dir mal das hier reinzuziehen: https://www.youtube.com/playlist?list=PLeGPdggHFfEO0YsZf8LkKmtumaAwrRXvH Die Folgen 6 und 7 sind am nächsten am Thema. Aber ich empfehle dir, alle Folgen anzuschauen. Und wenn du was nicht verstehst, hier konkret nachzufragen.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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!
:
Bearbeitet durch User
Günter K. schrieb: > Pascal ist ja eine Mathematisch orientierte Hochsprache. Das ist eine mathematisch orientierte Hochspache! life ← {⊃1 ⍵ ∨.∧ 3 4 = +/ +⌿ ¯1 0 1 ∘.⊖ ¯1 0 1 ⌽¨ ⊂⍵} (APL, Game of life als Einzeiler)
:
Bearbeitet durch User
(prx) A. K. schrieb: > (prx) A. K. schrieb: >> Dennoch gibt es Forth-Systeme, bei denen man in Forth in >> Assembler-Befehlen schreiben kann, ohne auf externe Assembler >> zurückgreifen zu müssen. > > Und sogar strukturiert. Sieht halt etwas ungewohnt aus. Forth-Stil eben. Aber es fehlt das Dictionary, denn LDA und STA sind nicht Standard-Token (DEC, BEGIN und UNTIL sehr wohl). Das Konzept des Dictionaries ist schon genial. Ich hatte mal eine kleine SUN die einen FORTH-Interpreter in der Konsole hatte. Aber wenn schon: Hello_World in Brainfuck, eine Turing-vollstaendige Sprache (https://de.wikipedia.org/wiki/Brainfuck):
1 | ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. |
Ich habe eine Diplom-Pruefung in formalen Sprachen ablegen muessen, das hat Schaeden hinterlassen. P.S.: Hast Du eine APL-Tastatur?
Günter K. schrieb: > Der 6502 wird die CPU werden. Ich verstehe nicht, was hier abläuft. Du hast schon einen funktionierenden Z80 Lerncomputer vorliegen. Eine alte Möhre, aber geeignet und bestens dokumentiert. Ich könnte verstehen, wenn du etwas moderneres anschauen willst, aber warum zur Hölle nun ausgerechnet den 6502? Der ist doch ebenso ein ausgestorbenes Fossil der 80er Jahre, dazu noch ein weniger verbreitetes. Um zu Programmieren muss man vor allem eins können: Strukturiert schrittweise auf das Ziel hin arbeiten. Davon sehe ich hier wenig.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
(prx) A. K. schrieb: > Ich habe zwar in APL mit Programmierung angefangen, aber seit ~40 Jahren > praktisch nichts mehr damit gemacht. J ist wohl ein aktueller Nachfolger: https://code.jsoftware.com/wiki/Main_Page
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.
:
Bearbeitet durch User
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
Moin, Logo: Wenn der Bauer nicht schwimmen kann, liegts an der Badehose - daher: Wenn der Enk nicht programmieren kann, liegts am Prozessor. scnr, WK
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.
:
Bearbeitet durch User
(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.
>Also Dankeschön an alle >Die Fragen sind als 1. beantwortet >Mein 1. Programm wird eine Eieruhr sein. Hier hat einer eine Eieruhr mit der TPS gemacht: https://www.elektronik-labor.de/Lernpakete/TPS/TPS17.html#b13 So programmiert man eine TPS: https://www.youtube.com/watch?v=Jo7aX1WqtD8 Die virtuelle TPS kann man auf dem Arduino laufen lassen: https://github.com/willie68/Arduino_TPS
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!
Christoph M. schrieb: > Hier hat einer eine Eieruhr mit der TPS gemacht: > https://www.elektronik-labor.de/Lernpakete/TPS/TPS17.html#b13 Ich denke mal auch, die TPS ist, für einen blutigen Laien wie hier, eine gute Idee zum Einsteig in die Programmierung.
:
Bearbeitet durch User
>> 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ß.
Beitrag #7760632 wurde vom Autor gelöscht.
Egal was, aber einfach mal anfangen wär schon was...
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
So sah mein LC80 Nachbau aus, mit 1510/1520 Busverbindung. MfG alterknacker
:
Bearbeitet durch User
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.
Hi Günter, Ich hab dir noch eine PN gesendet mit meiner Mailadresse. Du musst mir eine Mail senden. Dann kann ich direkt antworten.
Gibt ihm doch den Link (Erster Band Junior deutsch): http://retro.hansotten.nl/uploads/junior/books/de/ElektorJuniorComputerBuchDE1.pdf Und den zweiten Band, deutsch: http://retro.hansotten.nl/uploads/junior/books/de/JuniorComputer_book_02.pdf
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.
Thomas W. schrieb: > Gibt ihm doch den Link (Erster Band Junior deutsch): > > http://retro.hansotten.nl/uploads/junior/books/de/ElektorJuniorComputerBuchDE1.pdf > > Und den zweiten Band, deutsch: > > http://retro.hansotten.nl/uploads/junior/books/de/JuniorComputer_book_02.pdf Hallo Thomas W. ein vielfaches DANKESCHÖN! Es hat mich sehr gefreut. Ich habe auch Deine vielen Sachen bewundert, das ist wirklich erstaunlich. Diese guck ich mir noch einmal an, vielleicht auch nur, um mein Wissen ein klein wenig zu erweitern. LG. Enk alias Günter K.
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…)
:
Bearbeitet durch User
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.
Günter K. schrieb: > Leider ist mein Juniorcomputer ist defekt. Der Z80 zu Komplex. > Ich möchte in kleinen Schritten, vorwärts kommen. Hoffnungslos.
Günter K. schrieb: > Leider ist mein Juniorcomputer ist defekt. Lässt sich leicht reparieren. Wenn du Hilfe brauchst, schreib mich an.
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 ; Fill up the display buffer |
3 | LDY #$00 |
4 | |
5 | FILBUF
|
6 | LDA (CURADL),Y ; Start filling at OPCode |
7 | STA INH,X |
8 | INY
|
9 | DEX
|
10 | BPL FILBUF |
11 | JSR OPLEN ; Store instruction length in bytes |
12 | SCANA
|
13 | JSR SCANDS ; Display current instruction |
14 | BNE SCANA ; Key released ? |
15 | SCANB
|
16 | JSR SCANDS ; Display current instruction |
17 | BEQ SCANB ; Any key pressed |
18 | JSR SCANDS ; Display current instruction |
19 | BEQ SCANB ; Any key still pressed ? |
20 | JSR GETKEY ; If yes, return with key in ACC |
21 | RTS
|
Vielleicht wuerde man die Entprellung heute anders machen, aber am Anfang der Sourcedatei findet man:
1 | ;---------------------------------------------------------------------------- |
2 | ;
|
3 | ; SOURCE LISTING OF ELEKTOR'S JUNIOR COMPUTER |
4 | ;
|
5 | ; WRITTEN BY A. NACHTMANN |
6 | ;
|
7 | ; DATE: 7 FEB. 1980 |
8 | ;
|
9 | ; THE FEATURES OF JUNIOR'S MONITOR ARE: |
10 | ;
|
11 | ; HEX ADDRESS DATA DISPLAY (ENTRY VIA RST) |
12 | ; HEX EDITOR (START ADDRESS $1CB5) |
13 | ; HEX ASSEMBLER (START ADDRESS $1F51) |
14 | ;
|
15 | ;---------------------------------------------------------------------------- |
Mit den Moeglichkeiten die man damals (1980!) hatte war das schon eine gute Leistung des Elektor-Verlages.
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.
An die Kontakte kommt man gut ran. Ist etwas mühsam, aber es geht.
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)
Herzlichen Glückwunsch zum Ehrentag!
Wolfgang R. schrieb: > Herzlichen Glückwunsch zum Ehrentag! Der hier? https://de.wikipedia.org/wiki/Tag_der_Nationalen_Volksarmee Ein Ständchen darf auch nicht fehlen. Das konnte ich mal auswendig! 8-0 https://www.youtube.com/watch?v=NntcUxo__eY (Ein Freund von mir hat heute auch Geburtstag, darum hab ich den Unfug im Kopf)
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!
:
Bearbeitet durch User
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)
Wenn ich Neurologe oder Psychiologe wäre, könnte ich hier eine "schöne" (Fern)diagnose stellen . . .
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.
J. T. schrieb: > Einfach "JLCPCB" bei Google eingeben. ... oder hier auf mikrocontroller.net im Artikel Platinenhersteller nach JLCPCB schauen https://www.mikrocontroller.net/articles/Platinenhersteller#JLCPCB Durch scrollen siehst Du dann gleich welche Anbieter es sonst noch gibt.
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.
:
Bearbeitet durch User
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).
:
Bearbeitet durch User
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.
Falk B. schrieb: > Jaja, ein "Netter". Nett ist die kleine Schwester von Scheiße. und dein Auftreten hier ist halt der Vater von Scheiße.
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
:
Bearbeitet durch User
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)
:
Bearbeitet durch User
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)
:
Bearbeitet durch User
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)
Günter K. schrieb: > Ja, ich weiß wirklich nicht, ob es ein: "CBM 8032" ist. Auf dieser wikipedia Seite wird der CBM 8032 beschrieben: https://de.wikipedia.org/wiki/CBM_8032 und auch hier https://www.zock.com/8-Bit/D_CBM8032.HTML und hier http://wolfgangrobel.de/commodore/8032sk.htm
:
Bearbeitet durch User
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)
Günter K. schrieb: > Ich suche jetzt wieder das Buch: JUNIOR-COMPUTER von "hansotten" o.ä.. > um die Speicherbelegung zu finden. Falls Du das Buch zuhause nicht findest, gibt es diese Seite im Internet: http://retro.hansotten.nl/6502-sbc/elektuur-junior/elektor-junior-literature/junior-deutsch/
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)
:
Bearbeitet durch User
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?
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.
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)
:
Bearbeitet durch User
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)
:
Bearbeitet durch User
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)
:
Bearbeitet durch User
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.pdf Günter K. schrieb: > Welchen Pin oder wie, kann ich diesen Pin 'ansprechen' - ? Im Junior Buch 1 ist der Schaltplan. Die Pins der PIO (RIOT) sind auf der Oberseite am goldenen Stecker rausgeführt. Günter K. schrieb: > Ich habe zwar noch Data-Setten oder > Cass'-Rekorder Die Abspeichermöglichkeit beim Junior wurde erst mit der Schnittstellenkarte geboten, die hast Du aber nicht. Das gab dann so ein Sandwich: https://www.wolfgangrobel.de/sbc/junior2.htm
Hallo Leute, damit ich es nicht vergesse, wünsche ich jetzt schon mal allen frohe Ostertage! Nun habe ich Neuigkeiten und Fragen. Neuigkeit: Hallo Wolfgang und alle, Das Display-Programm welches unter anderem auch " | _ " |_| |_| | | | |_| | , u. ä. schreiben kann, hat funktioniert! [Nun ja, hier im Eingabefeld stehen die Segmente noch richtig.] Nun wollte ich noch versuchen, erst mal ein HF-Rechteck-Signal zu erzeugen. Zu Hause habe ich das Oszilloskop auf PIN 3 gelegt. Und siehe da, es liegt ein Signal auf PIN 3. Es hat eine Frequenz von ca. 1,2 bis 1,45 kHz. Bei mir zu Hause bleibt das Signal stabil und bleibt stehen, wenn der Trigger-Modus auf: "Line" gestellt ist. Hier bin ich jetzt an einem fremden Oszilloskop, welches genauer ist und obige Frequenzen anzeigt. Für das HF-Rechteck-Signal, habe ich ein Programm geschrieben, in dem zum einen das Daten-Richtungs-Register auf Ausgang gestellt werden muss, zum anderen den Port selbst. Leider habe ich im Junior-Buch noch nichts gefunden. Folgendes Programm habe ich geschrieben. Am liebsten schreibe ich die Programme, so, wie es auf dem Junior-Display zu lesen ist, und schreibe die Assembler-Befehle dazu; auf dem Wege habe ich mehr Zeilen für die REM-Befehle zur Verfügung. Ich trage die Daten trage ich in eine Excel-Tabelle ein. Als I/O-PORT-Register, hatte ich: "0117" probiert. Für den PORT-B selber, hatte ich: "0017" probiert. Folglich muss es zu diesem Zweck der Ports, 4 Adressen geben. Es müssen ja fest Adressen (Je nach Computer) sein. Als erstes stelle ich erstmal, nur diese Fragen: Bitte, wie lauten diese 4 Adressen? Liebe Grüße Günter K. (ENK)
:
Bearbeitet durch User
Günter K. schrieb: > Als I/O-PORT-Register, hatte ich: "0117" probiert. > Für den PORT-B selber, hatte ich: "0017" probiert. Ich hatte Dir die Elektor-Buecher in Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?" rausgesucht. Hier noch einmal zum nachgucken: http://retro.hansotten.nl/uploads/junior/books/de/ElektorJuniorComputerBuchDE1.pdf Und den zweiten Band, deutsch: http://retro.hansotten.nl/uploads/junior/books/de/JuniorComputer_book_02.pdf In Band 2 findest Du ab Seite 33 bis 98 die Beschreibung fuer die 6532, die gewuenschten Informationen findest Du auf Seite 34:
1 | PAD .EQU $1A80 ; DATA REGISTER OF PORT A |
2 | PADD .EQU $1A81 ; DATA DIRECTION REGISTER OF PORT A |
3 | PBD .EQU $1A82 ; DATA REGISTER OF PORT B |
4 | PBDD .EQU $1A83 ; DATA DIRECTION REGISTER OF PORT B |
Hallo Thomas W. und alle, vielen, vielen Dank! Nachher probiere ich es zuhause aus. Bis später und viele Grüße Günter K. (ENK)
Hallo liebe Leute. Zuerst wünsche ich einmal einen schönen Sonntag. Es handelt sich um eine Programm für den Junior-Computer, mit einem 6502 als Prozessor, und einem 6532. Um es nicht zu lange zu machen, schreibe ich erst mal was ich getan habe. Ich habe ein Programm im Maschinencode in den Junior-Computer getippt. Es soll ein Rechteckgenerator im Tonbereich werden. Die positive Amplitude und die Null-Amplitude sollen gleich lang sein. Aber so weit bin ich noch lange nicht. Das Port-Register macht nicht das, was ich will. Um zu sehen was passiert, habe ich einen Break also, 00 für BRK gemacht. Die Groß-Buchstaben sind Abkürzungen für die Register. Das PADD setzte ich auf "1". Das PAD regulär auch auf "1"; - weil das Prg. nicht lief,e setzte ich es auf "0", was er aber auch nicht macht. Mit dem X- u. Y-Register werden Warteschleifen in einer SR gebildet, um die Tonhöhe zu bestimmen. Bitte, was mache ich da falsch? Das Programm ist kurz, es sind nur 45 Zeilen. Ich könnte es auch schicken, aber wie? Ich schrieb es in Excel mit Assemblerangaben. Nachtrag: selbst der letzte Eintrag im A' stimmt nicht überein. Es sollte "00" drin stehen. Liebe Grüße Günter K. (ENK) Ich weiß moch nicht, wie ich am Besten einen Datei-Anhang mache. Hello everyone. First of all, I wish you a nice Sunday. This is a program for the Junior Computer, with a 6502 processor and a 6532. To keep it short, I'll first write what I did. I typed a program in machine code into the Junior Computer. It's supposed to be a square-wave generator in the tone range. The positive amplitude and the zero amplitude should be the same length. But I'm still a long way from that. The port register isn't doing what I want. To see what happens, I created a break, 00 for BRK. The capital letters are abbreviations for the registers. I set the PADD to "1". The PAD also normally to "1"; - because the program wasn't running, I set it to "0", but it doesn't do that either. The X and Y registers are used to create waiting loops in an SR to determine the pitch. Please, what am I doing wrong? The program is short, only 45 lines. I could send it, but how? I wrote it in Excel using assembly code. Addendum: Even the last entry in A' doesn't match. It should read "00." Best regards, Günter K. (ENK)
:
Bearbeitet durch User
ENK schreibt: Ich versuche gerade das 45-Zeileprogamm anzuhängen Liebe Grüße Günter K. (ENK) Der Anhang gelingt mir nicht. Liebe Grüße Günter K. (ENK) Das ist das Programm für obigen Beitrag.
:
Bearbeitet durch User
030E falsches Sprungziel 031A falsches Sprungziel 0325 Befehl nicht verstanden: PC-relativer 8-Bit Wert 0329 Befehl nicht verstanden .. statt 16-Bit absolut
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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)
Hallo liebe Leute, Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike) schrieb am 29.04.2025 11:34 u. a.: | | | | | | 0300 A0 A0 0A LDY,#0x0A -5 0xFB 0301 0A -4 0xFC > 0302 88 88 DEY -3 0xFD ** > 0303 D0 D0 FD BNE -3 -2 0xFE > 0304 FD -1 0xFF > 0305 00 00 BRK 0 0x00 > 0306 00 00 BRK +1 0x01 Ja, das verstehe ich, Prima! Das Programm zur Tonerzeugng funktioniert! DANKESCHÖN. Viele liebe Grüße Günter K. (ENK)
Gerne, freut mich, wenn es voran geht. Wenn man damit anfängt, ist alles mühsam, wenn man dann mal sein erstes Programm für die Steuerung eines IBM-Kugelkopfdruckers in den Junior getippt hat, geht es flüssig und man versteht nicht mehr, warum man es am Anfang nicht verstanden hat... ;-) Ging mir vor 39 Jahren so...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.