Christoph M. schrieb: > Da ich keine Juniorcomputer habe, versuche ich es mit einem > zusammengebastelten Simulator. Der kommt aber irgendwie auf 537.6Hz. > Ob es am Simulator liegt oder am Programm, versuche ich gerade > herauszufinden. Du hast nur die Delay-Routine beruecksichtigt: ldx 2 cyc, jsr kostet 6 cyc, STA und LDA je 4 cyc, EOR 2 cyc und der JMP kostet 3cyc -> 21 Cyc dazu (pro Durchgang loop). Bei Deiner ShortDelay-Routine sollte 5*n + 2 + 6 (5N+8) sein.
:
Bearbeitet durch User
Harald K. schrieb: >> Aber wo, werden diese gespalten in Y und X? > > 3822 = 0x0eee > > Also liegt die "Spaltung" bei 0x0e und 0xee > > 0xee kommt in das schneller herabgezählte Register, 0x0e in das andere, > das erst bei Unterlauf des schnelleren Registers herabgezählt wird. Hallo Harald K. , auf jeden Fall, DAKESCHÖN! Das ist richtig! Ja, das sehe ich genauso. Zufälliger Weise, habe ich es mit den gleichen Versuchen eingetragen. Prima, gut gemacht! Im Moment habe ich um die 30 Hz. Also, wenn Töne getroffen werden, wäre das ja auch schon gut, Natürlich versuche ich das Wohl-Temperierte-System, -; und wenn es nur die Pythagoreische wäre. [Dafür müssten dann die schwarzen Tasten gespalten werden; das ist natürlich quatsch :-)) ] Jetzt geht es nur um 8 Töne, am Besten in C-Dur. Dabei fällt mir ein, ich lege in den oberen Bereich einfach einen 2er-Faktor über FF Wie 16, 32, 64, o. ä. -. - D.h.: 01, 10, 100, o. ä. -. Als Wellenlänge sind die längeren Wellen genauer. Als Frequenz ist der obere Bereich genauer. 39 Wellen auf den Skop, für das "G" das wäre schon was. Also ich experimentiere Weiter, Liebe Grüße Günter K.
Christoph M. schrieb: > Rein rechnerisch würde ich ja sagen, dass es so stimmt. > Da ich keine Juniorcomputer habe, versuche ich es mit einem > zusammengebastelten Simulator. Der kommt aber irgendwie auf 537.6Hz. > Ob es am Simulator liegt oder am Programm, versuche ich gerade > herauszufinden. Bei einem real Junior Computer mit einem ganzen MHz bekomme ich (mit Deinem Programm) 432.5Hz lt. Logicanalysator. Wenn Du in Zeile 10 Deines Programmes LDX $DE (= 222 dec), bekommst Du 440.1Hz (lt. des Logic-Analysator) Das Prograemmle:
1 | .ORG $300 |
2 | PAD EQU $1A80 |
3 | PADD equ $1A81 |
4 | PBD equ $1A82 |
5 | PBDD equ $1A83 |
6 | |
7 | ; generate a 440 Hz square wave |
8 | |
9 | lda #$1 |
10 | sta PBDD ; set PB0 to output |
11 | loop: |
12 | ldx #222 ; 5us×222+5us |
13 | jsr shortdelay |
14 | lda PBD ; Read port B |
15 | eor #$01 ; Toggle bit 0 |
16 | sta PBD ; Write back |
17 | jmp loop |
18 | |
19 | shortdelay: |
20 | dex ; |
21 | bne shortdelay ; |
22 | rts ; |
und der Hexcode zum Selbst-in den Junior tickern:
1 | 0300: A9 01 8D 83 1A A2 DE 20 |
2 | 0308: 15 03 AD 82 1A 49 01 8D |
3 | 0310: 82 1A 4C 05 03 CA D0 FD |
4 | 0318: 60 |
Ja, das waren die alten Zeiten, und ich bin froh, dass das Geschichte ist.
:
Bearbeitet durch User
Thomas W. (datenreisender) 04.05.2025 14:30 >Bei einem real Junior Computer mit einem ganzen MHz bekomme ich (mit >Deinem Programm) 432.5Hz lt. Logicanalysator. Oh, super cool, danke :-) Ich war mir auch nicht sicher ob man den Port der PIA für das EOR zurück lesen kann. Die Frage hast Du damit gleich mit beantwortet.
Thomas W. schrieb: > Wenn Du in Zeile 10 Deines Programmes LDX $DE (= 222 dec), bekommst Du > 440.1Hz (lt. des Logic-Analysator) Was ist eigentlich mit den Interrupts für Tastatur und Display, die derzeit noch zwischenfunken und zu (aus Sicht des Hauptprogramms) unbestimmten Zeitpunkten zusätzliche erratische Verzögerungen bewirken? Ich habe den Verdacht, dass das die Pythagoreische Stimmung noch ein wenig trüben könnte. ;-) Thomas W. schrieb: > Ja, das waren die alten Zeiten, und ich bin froh, dass das Geschichte > ist. Jepp. Früher war alles besser - vor allem die Zukunft! (Lesch?) (re)
Re (r42) 04.05.2025 19:17 >Was ist eigentlich mit den Interrupts für Tastatur und Display, die >derzeit noch zwischenfunken und zu (aus Sicht des Hauptprogramms) Wer sagt denn, dass es Interrupts gibt?
Günter K. (enk) 04.05.2025 13:04 >Also, wenn Töne getroffen werden, wäre das ja auch schon gut, >Natürlich versuche ich das Wohl-Temperierte-System, -; >und wenn es nur die Pythagoreische wäre. Ich meine fast, dass auch nur 1 Byte für 8 Frequenzen reicht:
1 | ;***************************************************************************** |
2 | ; |
3 | ; erzeuge eine Tonleiter mit Rechecktönen |
4 | ; |
5 | ; Zielfrequenzen |
6 | ; f = 261.63 293.66 329.63 349.23 392.00 440.00 493.88 523.25 |
7 | ; |
8 | ; Hardware: 6502, fcpu=1MHz |
9 | ; |
10 | ;***************************************************************************** |
11 | |
12 | lda #$1 |
13 | sta PBDD ; set PB0 to output |
14 | |
15 | mainloop: |
16 | ; C |
17 | lda #200 |
18 | sta 0 ; teiler register |
19 | jsr playnote |
20 | |
21 | ; D |
22 | lda #158 |
23 | sta 0 ; teiler register |
24 | jsr playnote |
25 | |
26 | ; E |
27 | lda #121 |
28 | sta 0 ; teiler register |
29 | jsr playnote |
30 | |
31 | ; F |
32 | lda #104 |
33 | sta 0 ; teiler register |
34 | jsr playnote |
35 | |
36 | ; G |
37 | lda #73 |
38 | sta 0 ; teiler register |
39 | jsr playnote |
40 | |
41 | ; H |
42 | lda #45 |
43 | sta 0 ; teiler register |
44 | jsr playnote |
45 | |
46 | ; A |
47 | lda #20 |
48 | sta 0 ; teiler register |
49 | jsr playnote |
50 | |
51 | ; C |
52 | lda #9 |
53 | sta 0 ; teiler register |
54 | jsr playnote |
55 | |
56 | jmp mainloop |
57 | |
58 | playnote: |
59 | ldy #50 ; duration |
60 | |
61 | loop: |
62 | ; default delay |
63 | ldx #180 ; 5us×179+5us=900us |
64 | jsr shortdelay ; 6 cyles |
65 | |
66 | ; additional dela |
67 | ldx 0 ; teiler register |
68 | jsr shortdelay |
69 | |
70 | lda PBD ; Read port B |
71 | eor #$01 ; Toggle bit 0 |
72 | sta PBD ; Write back |
73 | dey |
74 | bne loop |
75 | rts |
76 | |
77 | ; Total time (in microseconds)=5N+5 |
78 | shortdelay: |
79 | dex ; 2 cyc |
80 | bne shortdelay ; 3 cyc jmp , 2 no jmp |
81 | rts ; 6 cyc |
82 | |
83 | |
84 | ; MOS6532 PIA addreses |
85 | org $1A80 |
86 | PAD: |
87 | |
88 | org $1A81 |
89 | PADD: |
90 | |
91 | org $1A82 |
92 | PBD: |
93 | |
94 | org $1A83 |
95 | PBDD: |
Im Anhang der Sound, wie er vom Emulator erzeugt über den Fernsehlautsprecher abgespielt klingt.
Christoph M. schrieb: > Re (r42) 04.05.2025 19:17 >>Was ist eigentlich mit den Interrupts für Tastatur und Display, die >>derzeit noch zwischenfunken und zu (aus Sicht des Hauptprogramms) > > Wer sagt denn, dass es Interrupts gibt? Nur so eine Vermutung: Günter K. schrieb: > Dabei geht es mir nicht darum, - das Keyboard nicht zu bauen, > sondern sich die Spielerei zu erlauben, die schon gegebene Tastatur zu > benutzen. Irgendwie muss die Tastatur ja abgefragt werden, wenn sie mal zum Spielen benutzt wird. Könnte man natürlich auch als Teil der Verzögerungsschleife machen. (re)
Re schrieb: > Irgendwie muss die Tastatur ja abgefragt werden, wenn sie mal zum > Spielen benutzt wird. Das wird dann im weiterführenden Experten-Kurs im Jahre 2027 realisiert.
Ich hatte je die Junior-Handbuecher verlinkt, dort wird auch erklaert, wie die Tastatur und das Display angesteuert wird. Hint: Keine Interrupts. Kein UART. I/O (sowohl seriell als auch Tape) im Polling. Das waren die Achtziger.
Thomas W. schrieb: >
1 | > shortdelay: |
2 | > dex ; |
3 | > bne shortdelay ; |
4 | > rts ; |
5 | > |
Wobei man beachten sollte, dass beim 6502 die Dauer des BNE davon abhängt, ob eine 256-Byte-Grenze übersprungen wird.
Klaus schrieb: > Günter K. schrieb: >> Ich weiß aber noch nicht, - was ich wo, einordnen sollte? XY oder YX > > Auch wenn ich befürchte, dass du die Analogie nicht verstehst: > > Nehmen wir an, du musst 1000 Sekunden warten, kannst aber nur bis 100 > zählen. > Ist es dann egal ob du 10 mal 100 Sekunden wartest oder 100 mal 10 > Sekunden? Ganz einfach (doch so(!) einfach ist es nicht!) Ich zähle so und sooft das Y hoch, die dann jedes Mal ebenfalls auch, so und sooft multipliziert wird, bis die passende Zahl erreicht wird. Allerdings mit dem Vorteil, dass das verbleibende X jedes Mal nur einmal vorkommt. Bis der entsprechende Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 5 Wellen dazu, dann habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert ergibt 440 Hz. Den Wert für das A4 hat mir jemand von Euch geschickt. Ich bekomme gerade Besuch, und melde mich später nochmal. Liebe Grüße Günter K. (Enk)
Günter K. schrieb: > Ganz einfach (doch so(!) einfach ist es nicht!) > Ich zähle so und sooft das Y hoch, die dann jedes Mal ebenfalls auch, so > und sooft multipliziert wird, bis die passende Zahl erreicht wird. > Allerdings mit dem Vorteil, dass das verbleibende X jedes Mal nur einmal > vorkommt. > Bis der entsprechende > Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 5 Wellen dazu, dann > habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert > ergibt 440 Hz. Gute Besserung!
Weiter oben ist ein nicht besonders gut lesbarer Schaltplan gepostet, hier gibts einen besseren. (Quelle: http://retro.hansotten.nl/wp-content/uploads/2022/10/schematic_junior_computer.jpg. Da da schon jpg, hab' ich das jetzt nicht konvertiert) Der 6532 könnte einen Interrupt auslösen, das ist der einzige Baustein, der an der /IRQ-Leitung des 6502 angeschlossen ist.
Harald K. (kirnbichler) 05.05.2025 07:44 >Der 6532 könnte einen Interrupt auslösen, das ist der einzige Baustein, >der an der /IRQ-Leitung des 6502 angeschlossen ist. Darüber hatte ich auch schon nachgedacht. Das Thomas oben erwähnte Beispielprogramm funktioniert ohne. Die Frage ist, ob die Auflösung des 6532 eine genügend granulare Frequenz für die Rechtecktonerzeugung hergibt. Die Frage ist aber auch, ob man wirklich den 6532 verwenden will. Falls man die gewonnen Erkenntnisse auf einen Apple 2 übertragen wollte, ginge das nicht, weil der diesen Chip nicht hat. Außerdem ist dieser Chip für den Bau eines echten Retro-Computers kaum zu bekommen.
Christoph M. schrieb: > Die Frage ist, ob die Auflösung des 6532 eine genügend granulare > Frequenz für die Rechtecktonerzeugung hergibt. Wenn Du über den Timerinterrupt gehen willst, ist dessen Quelltakt offensichtlich der Systemtakt (hier: 1 MHz). Als Vorteiler kann 1, 8, 64 oder 1024 verwendet werden, und der Timer selbst ist ein 8-Bit-Timer. Der steuert allerdings keinen I/O-Pin, sondern nur die Interruptleitung an, d.h. man muss für Timingbetrachtungen auch noch den Overhead eines Interruptaufrufs berücksichtigen. > Die Frage ist aber auch, ob man wirklich den 6532 verwenden will. Da der im vorliegenden Computer drinsteckt, warum nicht? Es geht dem Threadstarter darum, seine Programmierübungen auf dem Gerät zu machen, was er hat, nicht, sich Gedanken um irgendwelche anderen Computer zu machen.
Klaus schrieb: > Auch wenn ich befürchte, dass du die Analogie nicht verstehst: > > Nehmen wir an, du musst 1000 Sekunden warten, kannst aber nur bis 100 > zählen. > Ist es dann egal ob du 10 mal 100 Sekunden wartest oder 100 mal 10 > Sekunden? Hallo Klaus, hier ist es mir wichtig, ein extra Dankeschön zu sagen. Und Danke an alle. Also spielt es keine Rolle ob gerade das X- oder Y-Register herunterzählt. Inzwichen habe ich auch gelesen, dass durch Lesen eines Bytes eine ausreichende Genauigkeit erreicht werden kann. Bei einer Frequenz von 49 Hz als G und 6 Wellen dazu sind 55 Hz als A. Das entspricht ungefähr der 6er Wurzel aus 2. Das ist ein Abstand von einem ganzen Ton. Erdachte mir aber noch einen Lösungsweg. Ich fange ganz oben an abzuzählen bei eine ganz Hohe Frequenz. Dann mache ich eine Liste dieser Frequenzen, wenn die passenden "f" dabei sind wird vielfach mit dem Faktor 2 heruntergeteilt, biss ich in dem passenden Bereich bin. Übrigens, das mit G und A, gibt es auch so ähnlich, zwichen Fis und G, hierbei handelt es sich ungefähr um die 12er Wurzel aus 2. Liebe Grüße Günter K. (ENK) PS.: Ich bekomme gleich Besuch, Wenn ich die Zahlen ausgerchnet habe, komme ich auch nochmal auf das Fis und G und A zurück; hat aber nicht direkt was mit dem Herunterzälen zu tun, sondern nur indirekt. - Bis später.
Harald K. (kirnbichler) 05.05.2025 08:10
>Wenn Du über den Timerinterrupt gehen willst ..
Danke für den Hinweis.
Ich versuche gerade herauszukriegen, wie der Timer im 6532 genau
funktioniert.
Wenn ich es richtig verstehe (Anhang), sollte das Schreiben eines
Start-Bytes auf Base-Adresse + 0x17 den Vorteiler auf 1024 setzten,
Interrupts "disablen". Danach zählt der Timer vom Startwert aus
herunter.
Witzig an dieser historischen Technik ist, dass der Vorteiler über die
Adressierung gesetzt wird, dass spart ziemlich Zeit.
Liege ich mit meinen Annahmen richtig?
Günter K. schrieb: > Wenn ich die Zahlen ausgerchnet habe, Die passenden Zahlen für die Verzögerungsschleife für eine ganze Tonleiter sind bereits im Beitrag Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?" enthalten, kein Grund die neu zu berechnen.
Klaus schrieb: > Günter K. schrieb: >> Wenn ich die Zahlen ausgerchnet habe, > > Die passenden Zahlen für die Verzögerungsschleife für eine ganze > Tonleiter sind bereits im Beitrag > > Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?" > > enthalten, kein Grund die neu zu berechnen. Man findet die Werte auch in dem oben verlinkten Buch. Zusammen mit der Musterlösung zum Einlesen der Klaviatur und zur Tonerzeugung. Aber durch Abtippen lernt man nichts, da ist selbermachen sinnvoller.
Christoph M. schrieb: > Harald K. (kirnbichler) 05.05.2025 08:10 > >>Wenn Du über den Timerinterrupt gehen willst .. > > Danke für den Hinweis. > > Ich versuche gerade herauszukriegen, wie der Timer im 6532 genau > funktioniert. Wenn Du Interesse hast, das Junior Buch Band 2, hat ein komplettes Kapitel fuer die 6532. hier: http://retro.hansotten.nl/uploads/junior/books/de/JuniorComputer_book_02.pdf Seite 33 bis 99. Ich habe die vier Elektor-Buecher in den 1980'er gekauft, n-mal umgezogen (n > 5), aber so haeufig wie in den letzten zwei - drei Monaten habe ich die nie benutzt! Gruesse Th. P.S.: Interrupt war wohl fuer Elektor nicht so spannend (oder zu kompliziert), sowohl bei der 6502 als auch bei der z80 (die ein deutlich besseres Konzept hat) wurde der Interrupt nie benutzt.
:
Bearbeitet durch User
Thomas W. (datenreisender) 05.05.2025 21:06 >Wenn Du Interesse hast, das Junior Buch Band 2, hat ein komplettes >Kapitel fuer die 6532. >hier: >http://retro.hansotten.nl/uploads/junior/books/de/... >P.S.: Interrupt war wohl fuer Elektor nicht so spannend (oder zu >kompliziert), sowohl bei der 6502 als auch bei der z80 (die ein deutlich >besseres Konzept hat) wurde der Interrupt nie benutzt. Für heutige Verhältnisse scheint mir das Timer-Modul etwas umständlich erklärt. Aber ab Seite 77 hat der Autor tatsächlich Interrupts in Verwendung (Allerdings auch ziemlich aufwändig ..).
Günter K. schrieb: > Ich fange ganz oben an abzuzählen bei eine ganz Hohe Frequenz. > Dann mache ich eine Liste dieser Frequenzen, wenn die passenden "f" > dabei sind wird vielfach mit dem Faktor 2 heruntergeteilt, > biss ich in dem passenden Bereich bin. > Übrigens, das mit G und A, gibt es auch so ähnlich, zwichen Fis und G, > hierbei handelt es sich ungefähr um die 12er Wurzel aus 2. Mann kann sich natürlich alles völlig von Null erarbeiten. Dann wird man halt nie fertig bzw. kommt nie zur eigentlichen Aufgabe. Ich dachte Du willst programmieren lernen, nicht die Grundlagen einer Tonleiter herleiten. Mein Vorgehen wäre deshalb: Ich such mir die Frequenzen der Töne, die ich erzeugen will, kurz über google zusammen. Dauert 10 Sekunden. Beispiel für die Note C4: C4 = 261,626 Hz, entspricht einer Periodendauer von 1/261 = 3822us. Wir brauchen aber die halbe Periodendauer (jeweils mit Ausgang 0 bzw. 1), also 3822 = 1911 us. Solange muss man warten, bis der Ausgang umgeschaltet wird. Die einfache Verzögerungsschleife braucht 5 Taktzyklen = 5us pro Wert, also muss die Schleife 1911us/5us = 382mal durchlaufen werden. Weil 382 größer ist als 255 (die mit 8 Bit größte darstellbare Zahl), muss man sich etwas einfallen lassen. Im Progrämmchen von Christoph oben wird die Verzögerungsroutine halt 2 mal aufgerufen, einmal mit 180 und einman mit 200. Die Summe 380 ist noch exakter als meine oben berechneten 382, weil es auch noch feste Verzögerungen im Programmablauf gibt. Aber das sind Feinheiten, die am Anfang überhaupt nicht interessieren. Genausogut könnte man sich eine Verzögerungsschleife überlegen, die länger als 5us braucht, z.B. 10us. Dann muss man sie nur mit dem Wert 382/2=191 aufrufen, was wieder mit einem einfachen Zähler geht. Oder man nimmt halt eine veschachtelte Schleife mit 2 Zahlen, also 2x191, 4x95, 8x48 oder was einem beliebt und möglichst genau 382 ergbit. Das ist halt die komplizierteste Variante.
Klaus schrieb: Günter K. schrieb im folgenden Text: > Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 5 Wellen dazu, dann >> habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert >> ergibt 440 Hz. Da habe ich mich vertippt, ich meinte aber: "Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 6 Wellen dazu, dann habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert ergibt 440 Hz." von Soul E. (soul_eye)schrieb am 05.05.2025 um 19:48 : "Aber durch Abtippen lernt man nichts, da ist selbermachen sinnvoller." Günter K. schreibt: Hallo, und Danke für die Antwort. Ich muss mich noch mehr damit befassen; so, dass ich es selber machen und verstehen kann. In diesem Falle, die Werte in dem Y- und X-Register in Bezugnahme auf Wellenlänge und Frequenz. Bitte hierauf noch nicht antworten. Ich muss mich selber genug damit beschäftigen, damit ich es verstehe. - Falls ich danach, immer noch nicht verstanden habe, danach melde ich mich evtl. noch mal mit Fragen. Bis jetzt habe ich es noch nicht richtig genug verstanden. Liebe Grüße Grüße Günter Ja, (ENK)
> Nimmt man die 55 Hz mal 4 multipliziert ergibt 440 Hz." Mathematisch kommt mir das seltsam vor. Mein Taschenrechner sagt: >> 55*4 ans = 220
von Klaus (feelfree) 05.05.2025 22:38: Mann kann sich natürlich ... kommt nie zur eigentlichen Aufgabe. ... Ich dachte Du willst programmieren lernen, ... Mein Vorgehen wäre deshalb: ... C4 = 261,626 Hz, entspricht ... usw. Dazu schreibe ich: Das ist hervorragend sehr gut!! EIN VIELFACHES DANKESCHÖN!! ======================= =========================== Natürlich möchte und will ich programmieren lernen. Gibt es u. a. kurze Beispiele um so, das Verhalten des Prozessors und dem Computer zu verstehen? Aber schon bei dem Z80, Mikro-Professor, kam ich nicht zurecht, weil da viel zu viele Informationen waren, von denen ich nicht wusste, wozu sie auch gehörten. Bei dem 6502 erscheint es mir einfacher. Ich bin begeistert von Deinen sehr guten Erklärungen! Besonders auch die Idee mit den Verschachtellungen. Prima. Gibt es Programmier-Beispiele, die gleichzeitig(also hintereinander) Wenige Befehle mit Aderessierungsart vorgegeben sind, um zu sehen wie der Prozessor und der Computer reagiert? Jetzt will ich fürs Erste, mal bei dem 6502 bleiben. Zu viele Gedanken über Toleranzen, Schalt-Hysterese und dessen Interferenzen mache ich mir jetzt noch nicht, - ich freue mich ja, kleine Erfolge zu sehen. Schwierige Fragen kommen erst später. Aber dabei fällt mir ein: Bei Zahlen die > 127 sind, muss man da das N-Flag ausschalten? Ein Dankeschön, auch an alle anderen Leute hier. Selbst Deinen Beitrag, hatte ich noch nicht gelesen. Mit lieben Grüßen Günter K (ENK)
> Bei Zahlen die > 127 sind, muss man da das N-Flag ausschalten? Am besten ist es, wenn du deine Fragen hier eingibst: https://www.perplexity.ai Du solltest aber den Kontext zuerst erwähnen: 6502
Hier mal der Versuch, den Timer ohne Interrupt zu verwenden. Wenn ich es richtig verstehe, kann man den Timer wohl einfach durch das Beschreiben der entsprechenden Adresse starten. Das Programm sollte also folgendes machen: 1. Timer starten 2. Warten bis abgelaufen 3. Portpin rumdrehen 4. Jump zu 1. Das wäre dann auch eine einfache Möglichkeit, einen Ton zu erzeugen. Kann es von euch mal jemand ausprobieren? Ich habe nur eine Simulation und weiß nicht, ob sie der Realität entspricht.
1 | lda #$1 |
2 | sta PBDD ; set PB0 to output |
3 | |
4 | start: |
5 | lda #18 |
6 | sta TIMER_DIV64 ; starte timer mit prescaler 64, sollte ca. 430Hz ergeben |
7 | |
8 | wait: |
9 | lda TIMER_READ |
10 | bne wait ; Warte, bis timer 0 |
11 | |
12 | ; port B0 umschalten |
13 | lda PBD ; Read port B |
14 | eor #$01 ; Toggle bit 0 |
15 | sta PBD ; Write back |
16 | |
17 | jmp start |
18 | |
19 | ; MOS6532 PIA addreses |
20 | |
21 | |
22 | org $1A82 |
23 | PBD: |
24 | |
25 | org $1A83 |
26 | PBDD: |
27 | |
28 | org $1A84 ; timer read register |
29 | TIMER_READ: |
30 | |
31 | org $1A96 ; address to start timer prescaler 64 and no Interrupt |
32 | TIMER_DIV64: |
33 | |
34 | """ |
Christoph M. schrieb: > Das Programm sollte also folgendes machen: > 1. Timer starten > 2. Warten bis abgelaufen > 3. Portpin rumdrehen > 4. Jump zu 1. Es "gutes" Beispiel, wie man einen Timer maximal sinnlos verwenden kann. Eine Warteschleife kann die CPU auch allein. Und die IO-Register definiert man als Konstanten und nicht Labels. Auch wenn das Ergebnis das Gleiche ist. PBD = $1A82 PBDD = $1A83
:
Bearbeitet durch User
Falk B. (falk) 06.05.2025 11:58 >Es "gutes" Beispiel, wie man einen Timer maximal sinnlos verwenden kann. Nicht für jeden ergibt sich der gleiche Sinn. Das Beispiel ist dafür da, die Implementation des 6532 meines Emulators zu testen. >Und die IO-Register >definiert man als Konstanten und nicht Labels. Auch wenn das Ergebnis >das Gleiche ist. Könnte ich, wenn es mein Assembler hergäbe. Da ich den nun aber von hier habe https://github.com/dj-on-github/py6502 geht's so nicht.
1 | PBD = $1A82 |
2 | PBDD = $1A83 |
Günter K. schrieb: > Aber schon bei dem Z80, Mikro-Professor, kam ich > nicht zurecht, weil da viel zu viele Informationen waren, von denen ich > nicht wusste, wozu sie auch gehörten. Bei dem 6502 erscheint es mir > einfacher. Hmm... Wundert mich. Mir erscheint der Z80 einfacher/logischer. Und von Rodney Zaks auch perfekt und umfassend erklärt Wie auch immer: Jedem sein eigenes Himmelreich.
:
Bearbeitet durch User
Arduino F. schrieb: > Mir erscheint der Z80 einfacher/logischer. Einfach und logisch ist die 8080. Die Z80 ist etwas zu hybrid.
(prx) A. K. schrieb: > 8080 Die ASM Mnemonics sind beim Z80 einheitlicher. Aber letztendlich eine Geschmackssache, historisch, und damit heute quasi irrelevant.
:
Bearbeitet durch User
Arduino F. schrieb: > Hmm... > Wundert mich. > Mir erscheint der Z80 einfacher/logischer. Andere Leute die ich kenne, sagen das auch. > Und von Rodney Zaks auch perfekt und umfassend erklärt > > Wie auch immer: > Jedem sein eigenes Himmelreich. Nun ja, wenn ich die weiteren Bücher, die Rodney Zaks vorschlug, über das Interne des Mikroprozessors lese, würde das wohl stimmen. Den Mikro-Professor habe ich von einer guten Bekannten von mir. Wie ich las, hat er ja auch Bücher über den 6502 geschrieben. Das Lob für ihn ist wohl, wohl verdient. Nur muss ich mal versuchen mit dem, das mir einfacher erscheinende etwas zu tun. Dazu habe ich alle Befehle und Adressierungsarten auf einem Blatt. Was aber noch lange nicht heißt, dass ich sie alle verstanden habe, aber immerhin, sie stehen auf einem Blatt. :-) Liebe Grüße Günter K. (ENK) PS.: Im Grunde genommen, ist es in all diesen Fällen, ja immer logisch.
:
Bearbeitet durch User
Günter K. schrieb: > Nur muss ich mal versuchen mit dem Versuchen reicht nicht! Machen ist das Zauberwort... Es hilft auch nichts alles mal auf eine Seite zu schreiben. Statt wochenlang über wohl temperierte Klangerzeugung zu reden, die es bei einem Rechteck Signal sowieso nicht gibt, könntest du ja mal versuchshalber einfach ein 440Hz Signal generieren. Ich gehe jede Wette ein dass du noch kein funktionsfähiges Programm geschrieben hast, was zumindest einen BEEP ausgegeben hat. Beispiele wie das geht hast du ja schon einige erhalten. Die willst du aber nicht nehmen. Dagegen schurbelst du darüber wie einfach doch die Ton Erzeugung ist und verwechselt permanent Hex Zahlen mit Dezimal Zahlen. Dazu erklärst hier hier dass der Z80 so kompliziert ist und der Rodney auch ein Buch über den 6502 geschrieben hat. Du blabberst von Adressierungsarten hast aber keinen Schimmer von deren Bedeutung.
Hallo, Günter K. schrieb: > Wie ich las, hat er ja auch Bücher über den 6502 geschrieben. Ja, hat er. Und wenn ich hier so lese wie schwer du dich mit der Materie tust, rate ich dir dringend zumindest die Ausgabe "Programmierung des 6502" zu besorgen. Und im Buch "6502 Anwendungen" wird im Kapitel 5 ausführlich erklärt wie man mit Hilfe eines 6522 Töne erzeugt. rhf
Band1: https://archive.org/details/programmierung-des-6502 Band2: https://archive.org/details/6502-anwendungen/mode/2up beide in Deutsch. Ob das so weiterhilft?
Es würde schon ausreichen, die Elektor Bücher zum Junior konsequent durchzuarbeiten. Die beziehen sich immerhin direkt auf die vorhandene Hardware!
Hallo, Thomas Z. schrieb: > Ob das so weiterhilft Ich fürchte nein. Wolfgang R. schrieb: > Es würde schon ausreichen, die Elektor Bücher zum Junior konsequent > durchzuarbeiten. Die beziehen sich immerhin direkt auf die vorhandene > Hardware! Ich glaube dem steht entgegen das Günter eigene Vorstellungen davon hat wie man einen Prozessor programmiert und er mit den üblichen Unterlagen nichts rechtes anzufangen weiß. rhf
Christoph M. schrieb: >> Bei Zahlen die > 127 sind, muss man da das N-Flag ausschalten? > > Am besten ist es, wenn du deine Fragen hier eingibst: > https://www.perplexity.ai > > Du solltest aber den Kontext zuerst erwähnen: 6502 Hallo Christoph M. Danke, das geht ganz automatisch. Liebe Grüße Günter K. (ENK)
>Danke, das geht ganz automatisch. Apropos: Wenn du nicht mehr von Hand assemblieren willst, gehe auf folgende Seite: https://www.masswerk.at/6502/assembler.html Tippe dort im linken Fenster folgendes ein:
1 | .org $300 |
2 | loop: |
3 | adc #1 |
4 | jmp loop |
Drücke rechts unten auf "Assemble". Dann erscheint der Maschinencode in Hexadezimalzahlen.
Christoph M. schrieb: > Apropos: > Wenn du nicht mehr von Hand assemblieren willst, gehe auf folgende > Seite: Das haben wir schon mehrfach empfohlen. Scheint aber nicht so ganz durchgedrungen zu sein. Was aber nicht übersaschend ist . . .
Thomas Z. schrieb: > Günter K. schrieb: >> Nur muss ich mal versuchen mit dem > > Versuchen reicht nicht! Machen ist das Zauberwort... ...Statt wochenlang über wohl temperierte Klangerzeugung ... ... > sowieso nicht gibt, könntest du ja mal versuchshalber einfach ein 440Hz > Signal generieren. Günter K. schreibt: Das habe ich, aber noch nicht gezeigt; - das folgt gleich. > Ich gehe jede Wette ein dass du noch kein funktionsfähiges Programm > geschrieben hast, was zumindest einen BEEP ausgegeben hat. Günter K. schreibt: Das stimmt. Zwar habe ich das Signal erzeugt, aber nicht gehört. Habe einen kleinen Lautsprecher u. Platinen(Isolation) dazu gekauft, noch nicht eingebaut. - Aber einen Aktivlautsprecher habe ich noch andernorts. > Beispiele wie das geht hast du ja schon einige erhalten. Die willst du > aber nicht nehmen. (Weil hier nicht so sehr relevant, gehe ich hier nicht hier an dieser Stelle auf die wohl temperierte Klangerzeugung ein. Günter K. schreibt: Doch, aber damit komme ich noch nicht so gut zurecht. > Dagegen schurbelst du darüber wie einfach doch die > Ton Erzeugung ist und verwechselt permanent Hex Zahlen mit Dezimal > Zahlen. Günter K. schreibt: Wo? > Dazu erklärst hier hier dass der Z80 so kompliziert ist und der > Rodney auch ein Buch über den 6502 geschrieben hat. Ich werde es kaufen. > Du blabberst von Adressierungsarten hast aber keinen Schimmer von deren > Bedeutung. Günter K. schreibt: Tatsächlich, habe ich erst vor kurzem die R.-Adressierungsart gelernt, was Wolfgang R. -sehr gut- erklärt hat. - Mit der Adressierungsart der indiziert-indirekte und indirekt-indizierte Adressierung muss ich mich noch mit beschäftigen. Unser Lehrer sagte damals zu den eben genannten Adressierungsarten: "Ja, da stolpern Andere auch." Ich muss mich aber noch mit dem 6532 beschäftigen, sonst komme ich aus der Schleife nicht mehr raus, wenn ich weitere Programmteile einbringen will. Die 440 Hz folgen gleich. Ich habe hier an Thomas Z. geantwortet, weil mir die Formulierung in seinem Stil, etwas zu fraglich erschien. Ich bedanke mich bei Dir und ich bedanke mich bei Allen das ist sehr gut. Damit es nicht so umständlich wird, schicke ich das 440 Hz-Prg. im folgenden Beitrag. Liebe Grüße Günter K. (ENK)
Hallo Leute: Das 440 Hz-Prg. Liebe Grüße, Günter K. (ENK) PS.: Ist die Datei angehängt? 440 Hz.xlsx
Günter K. schrieb: > Ist die Datei angehängt? > 440 Hz.xlsx Ja, aber Programme schreibt man doch nicht in Excel und man speichert sie auch nicht im Excel-Format (xlsx), sondern als normale Textdatei (.S .c oder .txt). Dann kann man das Programm auch direkt im Browser anschauen.
Alexander S. schrieb: > Ja, aber Programme schreibt man doch nicht in Excel Hast du dir die Datei wenigstens mal angeschaut? Sieht nicht danach aus.
"(Und täglich grüßt das Murmeltier)" steht so in der xls Datei :-( allerdings sehe ich kein Programm. Da kann man wohl nichts mehr machen.
Alexander S. schrieb: > Günter K. schrieb: >> Ist die Datei angehängt? >> 440 Hz.xlsx > > Ja, aber Programme schreibt man doch nicht in Excel und man speichert > sie auch nicht im Excel-Format (xlsx), sondern als normale Textdatei (.S > .c oder .txt). Dann kann man das Programm auch direkt im Browser > anschauen. Details... The rub would be: kommen denn 440Hz aus irgendeinem Port raus? Oder nicht? Ist das Ding assemblierbar?
Ich habe den 6502-Eumlator mittlerweile Zyklengenau auf dem PiPico laufen. Die 6532Ports habe ich auf PORTA: GPIO2-GPIO9 und PORTB GPIO10-GPIO17 gemapped. Will es jemand aufprobieren?
Sherlock 🕵🏽♂️ schrieb: > Hast du dir die Datei wenigstens mal angeschaut? Ich habe Linux ohne LibreOffice und werde nur wegen der Datei auch nicht nach einem xslx-Viewer im Internet suchen.
Thomas W. schrieb: > Details... The rub would be: kommen denn 440Hz aus irgendeinem Port > raus? Oder nicht? Ist das Ding assemblierbar? Hallo Thomas W. Ja, wie ich schrieb. - In Spalte A, stehen dezimale Zeilennummern fürs Programm. In Zeile 3 und 8, ist zu sehen, dass es sich um Port A handelt. Hardwaremäßig ist das PIN 3 oben auf der asymmetrischen Leiste neben dem Display, welches mir Wolfgang R. freundlicherweise mitgegeben hatte. Ich kann das Programm in den Editor übertragen. Da sind sie dann aber als 1. noch im Format vom Junior-Computer-Buch. S. u. Als nächstes, muss ich die Befehle an seinen Anfang setzen. Dann kommt in der Zeile als 1. die Zeilennummer, 2. Die Marke, 3. Die Adresse 4. den Maschinen-Befehl als OP-Code, 5. der Befehl, 6. die Adressierungsart, 7. den REM-Befehl. (Das Wort habe ich vom BASIC). (Hier noch ähnlich wie in JUNIOR-BUCH.) Danach wird es wie üblich. Es gibt aber Editoren, die schreiben die Zeilennummer selber. Ich habe hier der EDITOR von WINDOWS. Ich hatte für andere Programmiersprachen den Editor von einem KOMPILER benutzt. Ich möchte aber -nicht kompilieren-, denn das Programm läuft ja. - Mir wurde auch mal WORDPAD vorgeschlagen. Damit habe ich noch nie was getan. In Excel habe ich über den Maschinen-Befehls OP-Code, einen schwarzen Balken gemacht. Liebe Grüße Günter K. (ENK) PS.: Natürlich möchte ich das Programm zu einem -einfachen- Spiele-Musik-Programm noch weiter ausarbeiten. Das "Editor"-Programm: "440 Hz", kommt als nächstes.
:
Bearbeitet durch User
Hallo liebe Leute, jetzt versuche ich den Windows-Editor hochzuschicken. Liebe Grüße Günter K. (ENK)
Alexander S. schrieb: > Ich habe Linux ohne LibreOffice und werde nur wegen der Datei auch nicht > nach einem xslx-Viewer im Internet suchen. Hallo Alexander, Werde oder habe ich gemacht, Da ich aber jede Adresse untereinader habe, weiß ich nicht, ob das für den Assembler lesbat ist. Es wurde sogar freunlicher Weise umbenannt in: 440 Hz.asm im vorigen Beitrag. Liebe Grüße Günter K. (ENK)
Günter K. schrieb: > Da ich aber jede Adresse untereinader habe, > weiß ich nicht, ob das für den Assembler lesbat ist. So sieht das bei einem richtigen Assembler aus. Die asm-Datei erstellst Du, die bin-Datei erzeugt der Assembler. Im Listing lst kann man die Arbeit kontrollieren. Rechnen brauchst Du nicht, man gibt einfach die Sprungmarken (labels) als Ziel an: "BEQ M2". Den Abstand rechnet der Assembler aus, und der warnt auch wenn es zu weit ist.
Thomas Z. schrieb: > "(Und täglich grüßt das Murmeltier)" steht so in der xls Datei :-( > > allerdings sehe ich kein Programm. Da kann man wohl nichts mehr machen. Hallo Liebe Leute; hallo Thomas Z und Thoma W! Doch: - Ja, das Programm 440Hz.asm kommt gleich im Editor von WINDOWS. Muss ich noch umschreiben. In 2 Formaten. Das 2. wird das Üebliche sein. Schreibfehler: Umlaute etc. werden rausgeholt. Frage: Welchen Editor empfehlt Ihr mir? Liebe Grüße Günter K. (ENK)
>Frage: Welchen Editor empfehlt Ihr mir?
Probier mal Notepad++
Soul E. (soul_eye) 12.05.2025 23:01 >So sieht das bei einem richtigen Assembler aus. Ich verwende momentan ca65: https://cc65.github.io/doc/ca65.html Bei der Verwendung von Assemblern gibt es das kleine Problem, dass sich jeder Assembler im Syntax ein wenig unterscheidet. Aus diesem Grunde kann ich Günter schon verstehen: wenn man sich erst mal den Ärger mit den Syntax-Problemen vom Halse halten will, kann man das Ganze auf dem Papier von Hand machen. Dann versteht man auch die Details. Das Beispiel von oben sieht für den ca65 so aus:
1 | ; https://www.mikrocontroller.net/topic/571835?page=4#7875457 |
2 | ; |
3 | ;CPU 6502 |
4 | ;PAGE 0 |
5 | |
6 | PAD =$1A80 |
7 | PADD =$1A81 |
8 | |
9 | .ORG $0300 |
10 | START: |
11 | LDA #$FF ; FF als Ausgang, für das Datenrichtungsregister |
12 | STA PADD ; Direktionsregister PADD: "OUT" |
13 | M1: |
14 | LDA #$FF ; FF als DATEN, für das Datenregister |
15 | STA PAD ; PAD: "FF" (später "00") |
16 | JSR SUB ; JumpToSubRoutine Zeitverzögerung DELAY. |
17 | |
18 | LDA #$00 ; als DATEN, für das Datenregister |
19 | STA PAD ; PAD: "00" (später "FF") |
20 | JSR SUB ; JumpToSubRoutine Zeitverzögerung DELAY. |
21 | |
22 | JMP M1 |
23 | |
24 | SUB: |
25 | LDY #$01 ; SR Beginn SUBROUTINE |
26 | M2: |
27 | LDX #$DE ; mit ZP-ADRESSIERUNGSART sind durch IM ersetzt. |
28 | M3: |
29 | DEX |
30 | BNE M3 |
31 | DEY |
32 | BNE M2 |
33 | RTS ; RETURN FROM SUBROUTINE |
Im Gegensatz zum von dir verwendeten Assembler braucht das ORG einen Punkt, alle Labels brauchen einen ':', das EQU wird zum '=' und ein 'END' wird nicht erkannt. Ich habe das Programm mal auf dem 6502PiPicoEmulator getestet. Als erstes ging es nicht. Warum? Ich dachte die Konvention sei den Lautsprecher an PB0 anzuschließen, aber in dem Programm wird der ganze PORTA 'getoggled' nicht aber PORTB0. Also in dem Fall: Lautsprecher an irgend einen Pin von PORTA anschließen. Es hat mich erstaunt, dass die Frequenz von 440Hz relativ gut getroffen wird.
Christoph M. schrieb: > wenn man sich erst mal den Ärger mit > den Syntax-Problemen vom Halse halten will, kann man das Ganze auf dem > Papier von Hand machen. Dann versteht man auch die Details. Was für ein Käse. Das was hier läuft, ist an Unfug kaum zu überbieten. Oder ein "wie mach ich es möglichst umständlich und undurchsichtig" Wettbewerb! Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?" Nützt rein gar nichts, weil der Günther gar nicht aufnahmefähig ist.
Soul E. schrieb: > von Soul E. (soul_eye) 12.05.2025 23:01 > weiß ich nicht, ob das für den Assembler lesbat ist. So sieht das bei einem richtigen Assembler aus. Die asm-Datei erstellst Du, die bin-Datei erzeugt der Assembler. Hallo von Soul E., Danke für den Beitrag. Kann den der Assembler etwas mit meiner Version anfangen? Ich habe gerne die Daten untereinander, geht das? Liebe Grüße Günter K. (ENK) PS. Die anderen Beiträge muss ich noch lesen. Hier zeige ich mal folgenden Versuch und ich vermute, dass ich Fehler reingeschrieben habe.
von Falk B. (falk) 13.05.2025 09:15 Hollo Falk B. und an alle, Du schriebst zum Beitrag: > "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?" > Nützt rein gar nichts, weil der Günther gar nicht aufnahmefähig ist. Nun, ich gebe das Programm in "HEX'" ein, und es läuft! Übersichtliche Konventionen halte ich für zweckmäßig und Die Schriftsteller vom ELEKTOR-JUNIOR-COMPUTER machen es ja so. Das heißt nicht, dass ich die Emulatoren nicht benutzen werde. Danke auch, für Deinen Emulator-Vorschlag, es ist ja auch nicht der erste. Liebe Grüße Günter K. (ENK)
:
Bearbeitet durch User
Christoph M. schrieb: > Es hat mich erstaunt, dass die Frequenz von 440Hz relativ gut getroffen > wird. Hallo Christph M. Ich werde mir Deinen Beitrag ausdrucken, damit ich das nötige Verhalten anwenden kann. Bestimmt werde ich danach immer noch kleine Fehlerchen machen. Gibt es keinen Assembler, der reines "HEX'" voraussetzt, und Dezimale gesondert anzeigt? Die passende Frequenz die ausgegeben werden kann, hängt ja von der Taktfrequenz und der passenden Byte-Gruppe ab. Danach folgen 5 weitere Töne, bevor ein Lied entsteht. Die Töne versuche ich Hexadezimal per Programm zu berechnen. Die tieferen Töne treffen leichter, weil dort mehr Schwingungen in die Wellenlänge hineinpassen. Beim Z80 würde das besser gehen, weil er eine höhere Tacktfreqenz hat. Liebe Grüße Günter K. (ENK)
Günter K. schrieb: > Gibt es keinen Assembler, der reines "HEX'" voraussetzt, und > Dezimale gesondert anzeigt? Assembler versteht kein "HEX", sondern Maschinenbefehle. LDA, STA, JMP usw. Die Hexwerte bzw den Binärcode erzeugt der Assembler. Damit Du nicht jedesmal im Buch nachsehen musst. Das wird bei längeren Programmen (8 kB Objektcode sind als Assemblerlisting über 100 DIN A4-Seiten) sonst schnell umständlich. (Wobei ich zu meinen aktiven Apple-Zeiten die 6502-Befehle tatsächlich auswendig wusste, und hexadezimal kopfrechnen ging damals auch noch) > Beim Z80 würde das besser gehen, weil er eine höhere Tacktfreqenz hat. Nein, denn die höhere Taktfrequenz wird durch vier geteilt. Ein Z80 mit 4 MHz ist so schnell wie ein 6502 mit 1 MHz. Der Z80 ist innendrin synchron aufgebaut, er braucht für jeden Vorgang eine Taktflanke ("T-State" nennt man das). Beim 6502 rutschen die Befehle asynchron durch, daher braucht er nur für jeden Speicherzugriff einen Takt.
Christoph M. schrieb: > Ich habe den 6502-Eumlator mittlerweile Zyklengenau auf dem PiPico > laufen. Die 6532Ports habe ich auf PORTA: GPIO2-GPIO9 und PORTB > GPIO10-GPIO17 gemapped. > > Will es jemand aufprobieren? Hallo Christoph M. Da will ich wenigstens mal ein Lob rüberschicken und ich finde es enorm, dass Du das geschafft hast! Liebe Grüße Günter K. (ENK) Christoph M. schrieb: > Bei der Verwendung von Assemblern gibt es das kleine Problem, dass sich > jeder Assembler im Syntax ein wenig unterscheidet. Aus diesem Grunde > kann ich Günter schon verstehen: wenn man sich erst mal den Ärger mit > den Syntax-Problemen vom Halse halten will, kann man das Ganze auf dem > Papier von Hand machen. Dann versteht man auch die Details. Lieber Christoph M., vor allen Dingen gefällt mir die Art Deines Assemblers, denn es ist in Serie! Da, fällt es mir leichter, den Maschinen-OP-Code unterzubringen. Die dazugehörigen Konventionen möchte ich noch lernen. Aber nur, bei Deiner Art von Assembler. Denn ich kann kein Assembler; - ich versuche zu wissen oder erraten was die Maschine macht. - Aber Hochsprachen sind mir zu hoch, da komme ich gar nicht mit. Der Ton wird bei mir etwas über 440 Hz gemessen, also 440,0x. Ich staune auch, wie sauber Dein Signal auf das Scop aussieht. Bei mir ist das nicht ganz so gut, aber man weiß, es ist das Kammerton A. Super! Was Du alles machst! Als nächstes kommen 5 weitere Töne dran. Das G4, H4, C5, D5 und E5. Das Ganze soll ein Lied werden. - . Die nächsten Töne können leider nicht so gut getroffen werden. Ich kann versuchen, noch NOPs also "EA"s reinzuhängen; (-EA) geht nicht. Will aber auch das Programm nicht zu groß machen. Zur Ton-Änderung wird das X- und Y-Register aus der Zero-Page geladen. Nur muss ich noch die Ton-Länge und die Pausenlänge bestimmen. Da habe ich noch keine Idee, wie ich den 3032 anspreche, um die Zeit zu bestimmen. Dann kommen noch Schleifen für den (selben)gleichen Ton hinein, wenn sich Töne mit gleichen Tonlängen, in der Melodie wiederholen. Liebe Grüße Günter K. (ENK)
Günter K. schrieb: > Denn ich kann kein Assembler Wie kommst Du denn auf die Hex-Zahlen, die Du in deinen Junior-Computer eintackerst? Lass mich raten: Du überlegst dir, was Du machen willst, also z.B. den Akkumulator mit #255 laden. Und dann schaust Du in deiner Tabelle oder irgendeinem Buch, welche Hex-Codes das sind. D.h. Du kannst nicht nur Assembler, du bist der Assembler. Denn das übersetzen von lda #255 in passende Hex-Codes IST das assenmblieren. Und das lässt man logischerweise eine Maschine machen (z.B. wie vorgeschlagen einen Online-Assembler), anstatt es selbst manuell zu machen. Oder rechnest Du die Periodendauer eines 440Hz Tons in Microsekunden um, in dem Du mit Bleistift und Papier 100000/440 rechnest?`Ich vermute, da nimmst Du ja auch das passende Werkzeug, einen Taschenrechner. Warum also um alles in der Welt willst Du keinen Assembler benutzen???
Klaus schrieb: > Warum also um alles in der Welt willst Du keinen Assembler benutzen??? Doch das will ich, aber nur zu dem Zweck, damit andere etwas damit anfangen können. Ich selber, möchte selber assemblieren; es sei denn, ich hätte die Vorteile schon gelernt; - das habe ich aber noch nicht. Was aber vor allen Dingen dazu gehört, ist der Maschinen-Code, also alles das, was die Maschine bekommt und macht. Einen sehr schönen Assembler-Code habe ich bei Christoph M. (mchris) 13.05.2025 09:09 gesehen. Wo ich selber den Maschinen-Code links beifügen kann, ähnlich dem Buche des Junior-Computers; somit verbleibt viel Platz auf der rechten Seite für Kommentare. Der Sinn, versteht sich von selbst. Ja, ich möchte sogar gerne wissen: Wann und wo was passiert, also den Prozess; darum heißt der Prozessor, ja: Prozessor. Liebe Grüße Günter K. (ENK)
Günter K. schrieb: > Der Sinn, versteht sich von selbst. Nein, das was du machst ergibt eben keinen Sinn. Günter K. schrieb: > Ich selber, möchte selber assemblieren; es sei denn, > ich hätte > die Vorteile schon gelernt Es GIBT KEINE VORTEILE wenn du selbst assemblierst. Du lernst dabei nichts sinnvolles. Die Tatsache, dass du irgendwann auswendig weißt, dass ein NOP in Hex EA übersetzt wird, ist vollkommen nutzloses Wissen.
:
Bearbeitet durch User
Klaus schrieb: > Es GIBT KEINE VORTEILE wenn du selbst assemblierst. Bei manchen Assemblern schon. Nämlich dann, wenn verschiedene Mnemonics in den selben Maschinencode übersetzt werden. Das fällt dann auf. Selber kenne ich zwar keinen solchen Assembler, aber hier im Forum habe ich davon gelesen.
Günter K. schrieb: > Doch das will ich, aber nur zu dem Zweck, damit andere etwas damit > anfangen können. Ich selber, möchte selber assemblieren; es sei denn, > ich hätte > die Vorteile schon gelernt; - das habe ich aber noch nicht. So haben wir vor 40 Jahren gearbeitet. Weil es nicht anders ging. Du kannst es heute komfortabler haben. Musst Du aber nicht. Es gibt Leute, die klettern zu Fuß auf Berge. Obwohl Hubschrauber und Seilbahn schon lange erfunden sind. > Wo ich selber den Maschinen-Code links beifügen kann, > ähnlich dem Buche des Junior-Computers; somit verbleibt > viel Platz auf der rechten Seite für Kommentare. > Der Sinn, versteht sich von selbst. Da ist Karopapier immer noch am besten. Die Befehle aufschreiben, dann die Hexwerte raussuchen und zuletzt die Branches berechnen. Hexadezimal kopfrechnen kann man dann irgendwann. Oder halt Excel, das Karopapier der Neuzeit.
Soul E. schrieb: > So haben wir vor 40 Jahren gearbeitet Nein, 1985 hatte zB der C64 schon wunderbar nutzbare Assembler. Ich erinnere mich noch an die Anfänge 1984, als ich noch kein Floppylaufwerk hatte. Editor von Datasette laden, Programm schreiben, abspeichern. Dann Assembler laden, vorher gespeichertes Programm laden, assemblieren und dann ausführen. Turn-around-Zeit sicher 10 bis 15 Minuten. Ein Jahr später, mit Floppylaufwerk, vielleicht noch 2 oder 3 Minuten. Und dann kam der Assembler (von Data Becker?) der den Quelltext direkt vom eigentlich für Basic vorgesehenen eingebauten "Editor" eingelesen hatte. Das war Luxus pur, fast so komfortabel wie man es heute auch haben könnte, wenn man nicht so stur (oder schwer von Begriff) wäre. Soul E. schrieb: > Oder halt Excel Das ist ja das Lustige: solche Moloche werden benutzt, aber ein kleiner feiner Assembler der alles besser kann wird abgelehnt.
:
Bearbeitet durch User
Soul E. schrieb: > Die asm-Datei erstellst > Du, die bin-Datei erzeugt der Assembler. Hallo Soul E. wofür ist die bin-Datei gut? was heißt: bin-Datei? Liebe Grüße Günter K. (ENK)
Günter K. schrieb: > wofür ist die bin-Datei gut? > was heißt: bin-Datei? Du brauchst keine bin Datei für deinen Junior-Computer. Du musst die Hex-Daten einzeln eintippen. Mit einem "richtigen" Computer würde die bin-Datei (oder Hex-Datei) von einem Datenträger eingelesen werden können und dann ausgeführt werden. Oder eben der Assembler lädt die bin/hex direkt ohne Umweg über eine Datei in den Speicher und führt die dann aus. Das geht alles mit deinem prähistgorischen Junior-Computer nicht.
Soul E. schrieb: > Nein, denn die höhere Taktfrequenz wird durch vier geteilt. Ein Z80 mit > 4 MHz ist so schnell wie ein 6502 mit 1 MHz. Der Z80 ist innendrin > synchron aufgebaut, er braucht für jeden Vorgang eine Taktflanke > ("T-State" nennt man das). Beim 6502 rutschen die Befehle asynchron > durch, daher braucht er nur für jeden Speicherzugriff einen Takt. Eine positive Taktflanke? Dankeschön lieber Soul E. Liebe Grüße Günter K. (ENK) PS.: Im JUNIOR-COMPUER-BUCH 2, hab' ich auch was über Taktflanken gelesen. Das muss ich aber nochmal lesen, - denn verstanden, habe ich das noch nicht. Ich weiß zwar was Flanken sind, muss aber nochmal den Zusamenhang finden.
Klaus schrieb: > Und dann kam der Assembler (von Data Becker?) der den Quelltext direkt > vom eigentlich für Basic vorgesehenen eingebauten "Editor" eingelesen > hatte. > Das war Luxus pur, fast so komfortabel wie man es heute auch haben > könnte, wenn man nicht so stur (oder schwer von Begriff) wäre. Ja, das klingt doch interessant! Wenn ich nur, die Beziehung zur Maschinensprache behalte, was ist da noch möglich? Liebe Grüße Günter K. (ENK)
:
Bearbeitet durch User
Günter K. schrieb: > ! Wenn ich nur, die Beziehung zur > Maschinensprache behalte, Die Beziehung zwischen Assemblersprache (z.b. "NOP") und Maschinensprache (z.B. Hex EA) stellt ein Assembler her. Für einen Menschen gibt es keinen Grund, das manuell machen zu wollen.
Günter K. schrieb: > ! Wenn ich nur, die Beziehung zur > Maschinensprache behalte, > von Klaus (feelfree) >Die Beziehung zwischen Assemblersprache (z.b. "NOP") und >Maschinensprache (z.B. Hex EA) stellt ein Assembler her. Und hier als praktische Übung: 1. rufe diese Seite auf: https://www.masswerk.at/6502/assembler.html 2. tippe im linken Fenster mit der Bezeichnung 'src' den Text 'nop' ein 3. drücke rechts unten auf 'Assemble' 4. drücke auf 'OK' 5. schaue das Ergebnis auf der rechten Seite im Fenster 'object code' an.
Klaus schrieb: > Für einen Menschen gibt es keinen Grund, das manuell machen zu wollen. Zum Grundlagenwissen gehört es auch, zu verstehen, was ein Assembler anstellt. Ein Programm von Hand assembliert zu haben, Sprungoffsets von Hand ausgerechnet zu haben, hilft zu verstehen, warum man sich besser von einem Programm dabei helfen lässt. Denn letztlich kann Dein "gibt es keinen Grund" auf alles angewandt werden. Warum Programme in Assembler schreiben? Für Menschen gibt es keinen Grund, das machen zu wollen, das machen Compiler aus einer für Menschen viel besser lesbaren Hochsprache ... Ohne Grundlagenwissen aber versteht auch der Hochsprachenprogrammierer nicht, was die Maschine da eigentlich anstellt. Günters Ansatz ist mühsam, keine Frage, aber ein Weg, Grundlagen zu verstehen. Ich habe vor 40 Jahren ein fehlerhaftes Programm (das sich im EPROM meines Computers befand) mit einer Art selbstgebauten Logikanalysator (jeden Buszyklus latchen und auf LEDs ausgeben, aufschreiben, und den nächsten Zyklus laufen lassen ...) analysiert. Aus dem, was auf dem Bus loswar, konnte ich den Ablauf der Maschineninstruktionen rekonstruieren (Opcode-Fetch, Operanden-Fetch etc.) und mit viel Fleißarbeit die ersten paar tausend Schritte des Programmes nachvollziehen. Und: Den Fehler beseitigen. Und damit, mit diesem mühsamen Erlernen von Grundlagen, habe ich viel mehr über Computerhardware gelernt, als Leute, die zur gleichen Zeit Space-Invaders spielten oder im C64-Basic irgendwelche Peeks und Pokes veranstalteten. Günter wird zwar recht wahrscheinlich nicht in 40 Jahren mit Stolz auf das zurückblicken können, was er sich jetzt beibringt, und natürlich hat das auch keinen "praktischen" Nutzen (wer will heute noch was mit 6502 & Co. anfangen? Heute nutzt man Multicore-ARMe mit zig Gigabyte RAM ...) -- aber es hält die Birne fit. Andere spielen Schach. Werner bringt sich 6502-Maschinencode bei. Find' ich gut.
Harald K. schrieb: > Andere spielen Schach. Werner bringt sich 6502-Maschinencode bei. Werner macht Unsinn. Aber solange ER es für sinnvoll hält und Spaß dabei hat, sei's drum. ZEN-Programmierung ;-) https://de.wikipedia.org/wiki/Zen
Harald K. schrieb: > Zum Grundlagenwissen gehört es auch, zu verstehen, was ein Assembler > anstellt. Ein Programm von Hand assembliert zu haben, Sprungoffsets von > Hand ausgerechnet zu haben, hilft zu verstehen, warum man sich besser > von einem Programm dabei helfen lässt. Richtig. Nur Günter versteht das halt nicht, trotz zahlreicher Kommentare in die Richtung.
Günter K. schrieb: > Ja, das klingt doch interessant! Wenn ich nur, die Beziehung zur > Maschinensprache behalte, was ist da noch möglich? Hab ich dir schon dreimal erzählt, du hast es aber scheinbar 4 mal ignoriert. Im List-File, welches der Assembler ausspuckt. Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?" Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?" Maschinencode schreiben nur Assembler (das Programm) Autisten Superfreaks Assembler ist die niedrigste Stufe, die man sich heute und schon seit Mitte der 1970er Jahre noch sinnvoll antut! Schrieb ich auch schon, wenn gleich mit leicht ironischem Wortlaut! "Echte Männer jagen Mammuts. Wenn's keine mehr gibt, programmieren sie in Maschinensprache. Weicheier wie ich tun sich nur Assembler an."
Klaus schrieb: > Nur Günter versteht das halt nicht Günter (den ich vorhin aus irgendeinem Grund auch mal Werner nannte) ist dem Anschein nach ein gutes Stück älter als die meisten hier, und hat deswegen ein anderes Lerntempo.
Harald K. schrieb: > Günter (den ich vorhin aus irgendeinem Grund auch mal Werner nannte) ist > dem Anschein nach ein gutes Stück älter als die meisten hier, 80 > und hat > deswegen ein anderes Lerntempo. Nicht nur deswegen. Er hat auch viel Chaos und komische Ideen im Kopf. Kann man erkennen, wenn man alle seine Beträge hier liest.
:
Bearbeitet durch User
Falk B. schrieb: > Er hat auch viel Chaos und komische Ideen im Kopf. Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren US-Präsidentendarsteller an. Da ist mir Günters Chaos deutlich lieber. Und andere sind bereit mit Eintritt in das Rentenalter nur noch schwer von weichgekochtem Broccoli zu unterscheiden. Immer dran denken: Menschen in diesem Alter muss man nicht nur ertragen, sondern man muss sich im Klaren darüber sein, daß man auch mal in das betreffende Alter kommen wird, und da sollte man sich schon überlegen, ob man als leicht wabernde Masse in einem Stuhl in einer "Betreuungseinrichtung" den Tag verbringt, oder spinnerte Ideen auslebt und sich mühsam noch was neues beibringt.
Harald K. schrieb: > Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren > US-Präsidentendarsteller an. Da ist mir Günters Chaos deutlich lieber. Biden ist ja nun weg. Klar, man wollte ihn nochmal 4 Jahre, halb mumifiziert im Oval Office sitzen lassen. Aber wurde ja dann nichts.
Cyblord -. schrieb: > Biden ist ja nun weg Ich meinte Trump. Im übrigen bist gerade DU überhaupt nicht geeignet, mentale Leistungen von Menschen über fünf Jahren zu beurteilen. Gerade DU hast in einem anderen Thread hier mal wieder ad nauseam unter Beweis gestellt, daß Du den geistigen Vorruhestand schon lange vor dem 14. Lebensjahr erreicht hattest.
Harald K. schrieb: > Ich meinte Trump. Im übrigen bist gerade DU überhaupt nicht geeignet, > mentale Leistungen von Menschen über fünf Jahren zu beurteilen. Gerade machen die Berichte die Runde wie die Dems systematisch den extrem schlechten Zustand von Biden verheimlicht haben. Leute wie du, sind darauf wohl jahrelang reingefallen. Während alle normalen Leute schon seit Jahren darauf hinweisen wie desolat Biden daherkommt. Aber klar, erst mal Trump als geistig unfit darstellen. Das ist wichtiger.
:
Bearbeitet durch User
Wer von den beiden berechenbarer ist, darüber könnte man diskutieren - wenngleich nicht hier. Aber ich bin ziemlich sicher, dass Günter keinen dieser Rechner meinte. :)
:
Bearbeitet durch User
Cyblord -. schrieb: > Gerade machen die Berichte die Runde wie die Dems systematisch den > extrem schlechten Zustand von Biden verheimlicht haben Und in ein paar Jahren werden die selben Berichte zu Trump die Runde machen. Wenn du glaubst, Trump wäre noch ganz dicht, dann bist du nicht ganz dicht.
:
Bearbeitet durch User
J. T. schrieb: > Cyblord -. schrieb: >> Gerade machen die Berichte die Runde wie die Dems systematisch den >> extrem schlechten Zustand von Biden verheimlicht haben > > Und in ein paar Jahren werden die selben Berichte zu Trump die Runde > machen. Wenn du glaubst, Trump wäre noch ganz dicht, dann bist du nicht > ganz dicht. Das ist doch nicht vergleichbar. Du bist nur anderer Meinung als Trump. Bei Biden geht es um objektive altersbedingte Probleme die ganz gezielt verheimlicht wurden. Aber peinlicherweise eben für jeden seit Jahren sichtbar.
:
Bearbeitet durch User
Cyblord -. schrieb: > Du bist nur anderer Meinung als Trump. Nein, also ja ich bin anderer Meinung als Trump, aber dennoch zeigen sich auch bei Trump ganz klare Zeichen des mentalen Verfalls.
J. T. schrieb: > Nein, also ja ich bin anderer Meinung als Trump, aber dennoch zeigen > sich auch bei Trump ganz klare Zeichen des mentalen Verfalls. Wirklich Verfall? Evt. konsistente mentale Ausfälligkeiten wie z.B. extremer Narzissmus o.ä. Aber ich bin kein Psychologe und jeder seriöse Psychologe sagt sinngemäß dass Ferndiagnosen, selbst für Fachleute, unseriös sind. Ganz im Gegensatz allerdings zu eindeutigen geistigen und körperlichen Ausfällen von Biden wie Orientierungslosigkeit, Übergriffe vor laufender Kamera (schnüffeln an den Haaren von anderen Leuten), Stolpern am laufenden Band, Ansprechen von Leuten die schon tot sind, live bei einer PK, Reden mit unsichtbaren Leuten die nicht da sind inkl. Handschlag. Dazu braucht es keine tiefsinnigen Analysen, der Mann ist einfach zu alt. Und man wollte ihn wirklich noch sehr lange Zeit mit aller Gewalt 4 Jahre weitermachen lassen. DAS ist verrückt. Übrigens ähnlich wie Mitch McConnell der einige male einfach vor laufenden Kameras eingefroren ist. Sorry da ist es halt einfach Zeit zu gehen. Allerdings ist er dann auch zügig gegangen.
:
Bearbeitet durch User
Cyblord -. schrieb: > Ganz im Gegensatz allerdings zu eindeutigen geistigen und körperlichen > Ausfällen von Biden wie Orientierungslosigkeit, Und Trump tatscht arabische Kronprinzen an, die auf keinen Fall anzutatschen sind. Also ich zumindest würde keinen offensichtlichen Hardcorenarzist als Anführer meiner Nation haben wollen.
J. T. schrieb: > Cyblord -. schrieb: >> Ganz im Gegensatz allerdings zu eindeutigen geistigen und körperlichen >> Ausfällen von Biden wie Orientierungslosigkeit, > > Und Trump tatscht arabische Kronprinzen an, die auf keinen Fall > anzutatschen sind. Also ich zumindest würde keinen offensichtlichen > Hardcorenarzist als Anführer meiner Nation haben wollen. Die Meinung darfst du haben, es ist trotzdem kein Zeichen von geistigem Verfall. Nur Verhaltensweisen die du nicht magst. Trump wird gerade gewählt weil er auf viele Konventionen nichts gibts. Das ist sein Markenkern und keineswegs Zufall, Unwissenheit, Unsicherheit oder das Alter.
:
Bearbeitet durch User
Tariffs, ach ne doch keine Tariffs. Ständig völlig sinnentleertes Gestammel. Wenn das für dich Zeichen sind, das jemand auf seiner vollen geistigen Höhe ist, erklärt das natüelich so einiges. Cyblord -. schrieb: > Das ist sein Markenkern und keineswegs Zufall, Unwissenheit, > Unsicherheit oder das Alter. Das ist DEINE Meinung, muss deshalb aber noch lange nicht stimmen.
:
Bearbeitet durch User
Leute, laßt die sinnlose Diskussion über Trump & Co. Gehört hier nicht hin! Weder in diese Diskussion noch ins Forum!
J. T. schrieb: > Das ist DEINE Meinung, muss deshalb aber noch lange nicht stimmen. Merkwürdiger Kommentar. Wir tauschen hier doch ausschließlich Meinungen aus. Ein Hinweis darauf dass es sich nicht um Verfall handelt ist die Tatsache dass er schon immer derart erratisch handelt. Er war ja auch früher wirtschaftlich nicht besonders erfolgreich mit seinen Geschäften.
:
Bearbeitet durch User
Cyblord -. schrieb: > Nur Verhaltensweisen die du nicht magst. DE Land hat schon mal einen Soziopathen gewählt. Das ist, in der Nachschau, sehr unangenehm verlaufen. Die USA ist gerade dabei diese Erfahrung zu machen. Das kann einen vergleichbar üblen Weg nehmen. Vielleicht noch übler.
Cyblord -. schrieb: > Merkwürdiger Kommentar. Wir tauschen hier doch ausschließlich Meinungen > aus. All deine Kommentare sind äusserst merkwürdig. Sie verharmlosen absolut fragwürdiges Verhalten. Arduino F. schrieb: > DE Land hat schon mal einen Soziopathen gewählt. > Das ist, in der Nachschau, sehr unangenehm verlaufen. Ich bin mir sicher, es gab den ein oder anderen, der es schon als es passierte als sehr unangenehm empfand, nicht erst im Nachgang. > Die USA ist gerade dabei diese Erfahrung zu machen. > Das kann einen vergleichbar üblen Weg nehmen. > Vielleicht noch übler. Das sieht halt nicht jeder.
:
Bearbeitet durch User
J. T. schrieb: > All deine Kommentare sind äusserst merkwürdig. Sie verharmlosen absolut > fragwürdiges Verhalten. Nein sie ordnen es ein. Das Verhalten von Trump und der Verfall von Biden haben schlicht nichts miteinander zu tun. Egal welche noch so guten Argumente du gegen Trump auffährst.
Cyblord -. schrieb: > Das Verhalten von Trump und der Verfall von > Biden haben schlicht nichts miteinander zu tun. Das behauptet auch niemand, dennoch kann auch Trump verfallen. Halt ganz unabhängig von Bidens Verfall. Allein dass du den Zusammmenhang daherphantasiert hast, lässt mich weiter an deinem geistigen Zustand zweifeln
J. T. schrieb: > Allein dass du den Zusammmenhang daherphantasiert hast, lässt mich > weiter an deinem geistigen Zustand zweifeln Der Zusammenhang kam allein von dir. ICH sprach von Biden, DU hast Trump ins Spiel gebracht und die beiden verglichen. Und sogar behauptet: > Und in ein paar Jahren werden die selben Berichte zu Trump die Runde machen.
:
Bearbeitet durch User
Kann die Moderation bitte mal den Mist hier löschen? Das hat absolut nichts mit dem Threadthema zu tun!
Cyblord -. schrieb: > , DU hast Trump > ins Spiel gebracht äh, nein. Noch ein Punkt, der Zweifel an deiner geistigen Klarheit aufkommen lässt. Harald K. schrieb: > Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren > US-Präsidentendarsteller an. Da ist mir Günters Chaos deutlich lieber. Harald K. schrieb: > Ich meinte Trump
Wolfgang R. schrieb: > Kann die Moderation bitte mal den Mist hier löschen? Das hat absolut > nichts mit dem Threadthema zu tun! Das ist richtig. Aber dieses Assembler Gestammel mit dem Internetausdrucker kann ja auch nicht euer ernst sein.
Die naheliegende Bitte an einen der Moderatoren muss ich eigentlich gar nicht ausformulieren, oder? Um Günter nicht zu überfordern oder zu verschrecken, sollten alle Beiträge ab meinem Beitrag von heute, 8:38 entsorgt werden.
Cyblord -. schrieb: > Das ist richtig. Aber dieses Assembler Gestammel mit dem > Internetausdrucker kann ja auch nicht euer ernst sein. Du bist echt unglaublich, mit einem nicht drauf eingehen wischt du zur Seite, dass ich angeblich Trump ins Spiel gebracht hätte, aber hackst weiter auf jemanden ein, der lernen möchte. Das kann ja auch nicht dein Ernst sein. Kannst die Leute nicht einmal auseinanderhalten aber weißt, das Biden kaputt ist. Sicher, dass du ihn nicht mit jemand ganz anderem verwechselt hast?
J. T. schrieb: > Du bist echt unglaublich, mit einem nicht drauf eingehen wischt du zur > Seite, dass ich angeblich Trump ins Spiel gebracht hätte Ich hatte sogar ein Zitat von dir mit Trump gepostet. Was willst du noch? Du hast ihn nicht als erstes erwähnt. Aber DU hast Trump mit Biden verglichen. Das Zitat war von dir. Da gabs keine Verwechslung. Sollte ich irgendwo etwas falsch zitiert haben oder jemanden verwechselt haben wäre ich der erste der das einräumt. Ist halt noch nie vorgekommen deshalb gibts keinen Präzedenzfall.
:
Bearbeitet durch User
J. T. schrieb: > mit einem nicht drauf eingehen wischt du zur > Seite, dass ich angeblich Trump ins Spiel gebracht hätte, Eine der am leichtesten zu identifizierbaren Eigenschaften eines extremen Egomanen, oder Narzissten, ist die Unwilligkeit Irrtümer zuzugeben. Auch sich selber gegenüber nicht. Stattdessen werden andere für alles "böse" verantwortlich gemacht. Daran erkenne sie sich auch gegenseitig.
Cyblord -. schrieb: > Ich hatte sogar ein Zitat von dir mit Trump gepostet. Was willst du > noch? Du hast ihn nicht als erstes erwähnt. Aber deine Behauptung war, ich hätte ihn aufs Tablett gebracht. Cyblord -. schrieb: > DU hast Trump ins Spiel gebracht Er wurde aber vom Kirnbichler aufs Tablett gebracht: Harald K. schrieb: > Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren > US-Präsidentendarsteller an. Du jedoch dachtest, er meinte Biden, woher auch immer du den gezogen hast: Cyblord -. schrieb: > Biden ist ja nun weg. Klar, man wollte ihn nochmal 4 Jahre, halb > mumifiziert im Oval Office sitzen lassen. Aber wurde ja dann nichts. > und die beiden verglichen. hast du also irgendwie. Das war dann mein Einstieg dazu: J. T. schrieb: > Und in ein paar Jahren werden die selben Berichte zu Trump die Runde > machen. Wenn du glaubst, Trump wäre noch ganz dicht, dann bist du nicht > ganz dicht. Erwähnt habe ich Biden mit keinem Wort. Ist es überhaupt ein Vergleich, wenn nicht alle Verglichenen erwähnt werden? Dann hätten wir beide gar keinen Vergleich gemacht. Wie mans auch dreht, deine Behauptung ist falsch. Cyblord -. schrieb: > Ist halt noch nie vorgekommen deshalb gibts keinen Präzedenzfall. Klar, unser Lördchen ist perfekt, makellos und absolut fehlerfrei. Arduino F. schrieb: > Daran erkenne sie sich auch gegenseitig. Der ist schön, den kannte ich noch nicht.
J. T. schrieb: > Du jedoch dachtest, er meinte Biden, woher auch immer du den gezogen > hast: Also ob ich nicht gewusst hätte wen er meinte...
Falk B. schrieb: > ES REICHT MIT DEM SCHEIß! Ist ja gut. Schon mal überlegt dass die Schreierei empfindlichere Seelen, wie z.B. mich, extrem verunsichern kann?
:
Bearbeitet durch User
Klaus schrieb: > Cyblord -. schrieb: >> empfindlichere Seelen, wie z.B. mich, > > YMMD Timing ist alles im Leben :D
von Cyblord -. (cyblord) 15.05.2025 13:28 Lesenswert? -3 -. Lesenswert ist was Wolfgang R. schrieb, denn er bittet: > Kann die Moderation bitte mal den Mist hier löschen? Das hat absolut > nichts mit dem Threadthema zu tun! Das ist richtig. Aber dieses Assembler Gestammel mit dem Internetausdrucker kann ja auch nicht euer ernst sein. Günter K. schreibt, um beim Thema zu bleiben: DANKE Wolfgang R. Hallo Liebe Leute und Cyblord, Frage: - Welches: "... Assembler Gestammel mit dem Internetausdrucker ...?" Antwort: 1. Ich habe keinen Internetausdrucker, sondern einen Canon-Drucker. 2. "Assembler Gestammel"? Auch hierzu habe ich eine Antwort: Ich bin nicht so klug, wie viele von Euch, -! Bin aber positiv erstaunt, dass ... Fortsetzung folgt ... Falk B. schrieb: > Leute, laßt die sinnlose Diskussion über Trump & Co. Gehört hier > nicht > hin! Weder in diese Diskussion noch ins Forum! Ja Falk B. auch das ist richtig! Fortsetzung: ... ja dass jemand einen Emulator des 6502-Computers in einen ... Christoph M. schrieb: > Ich habe den 6502-Eumlator mittlerweile Zyklengenau auf dem PiPico > laufen. Die 6532Ports habe ich auf PORTA: GPIO2-GPIO9 und PORTB > GPIO10-GPIO17 gemapped. > > Will es jemand aufprobieren? Hallo Christoph M. Da will ich wenigstens mal ein Lob rüberschicken und ich finde es enorm, dass Du das geschafft hast! Ja, das ein sehr guter Beitrag! Assembler heißt: Zusammenbauen! Und mehr noch, das ist kein Gestammel! - Es ist sogar WICHIG! - dass wir Menschen wissen, was der Computer tut, sonst tut der Computer vielleicht das, - was wir Menschen gar nicht wollen! - ! Seltsame Ideen habe ich zwar, die habe ich hier noch gar nicht vorgebracht. - Eine Idee erfüllt dann seinen Zweck, wenn sie nützlich ist. - Übrigens Falk, Deine Idee mit Hilfe des Timers die Tonsignale zu erzeugen, ist eine sehr gute Idee! - Ich dachte auch schon mal daran. Nur habe ich das dazugehörige Wissen aus dem JUNIOR BUCH 2, noch nicht verstanden; das muss ich nochmal lesen. - Ich wollte ein Programm mit 6 Tönen in C-Dur als Lied schreiben. Aber inzwischen eine Oktave tiefer. Christoph M. schickte mit den Kammerton A. Das ist sehr, sehr gut! Durch seine Rechteckform hat das "A4" sehr viele Oberwellen; - und so, erscheint mir der Ton zu hoch. Die tieferen Töne, sind mir leider nicht gelungen, wobei man meinen sollte, dass das einfacher ist, weil mehr Zeiträume zu Verfügung stehen. Also: Je mehr Zeit-Raum (Wellenlänge), je mehr Variabilität. - Mal sehen, ob es mir gelingt, den Timer im 6502 aufzurufen. Liebe Leute, bitte versteht mich. Mit lieben Grüßen Günter K. (ENK)
Günter K. schrieb: > Aber dieses Assembler Gestammel mit dem > Internetausdrucker kann ja auch nicht euer ernst sein. Die Quelle dieses Spruches hat ein Sozialverhalten wie eine Bordsteinkante. Andererseits finde ich dieses ASM Gehampel auch ermüdend. Habe mich eher auf C++ eingeschossen. Ist u.A. viel interessanter
Günter K. schrieb: > den Timer im 6502 aufzurufen. Lass' das bitte. Verändere/erweitere das Programm mit den 440Hz schrittweise: - dass es eine andere Tonhöhe abspielt - dass es den Ton z.B. nur eine bestimmte Zeit abspielt - dass es 2 verschiedene Töne hintereinander abspielt Damit wirst Du ein paar Tage beschäftigt sein. Dann kommt: - dass alle Tonhöhen einer Tonleiter abgespielt werden - dass alle Noten unabhängig von der Höhe ca. gleich lang abgespielt werden Wieder ein paar Tage bis Wochen. Dann kommt: - dass eine Melodie abgespielt werden kann mit unterschiedlichen Tonhöhen und Tonlängen Ich drück' dir die Daumen, dass Du bis Weihanchten ein "Oh Du Fröhliche" schaffst, auch wenn ich es nicht glaube. Und vergiss ganz schnell den Timer, solange Du nicht mal diese einfachsten Programme zusammenstricken kannst.
:
Bearbeitet durch User
Hallo liebe Leute, denn Arduino F. (Firma: Gast) (arduinof) schrieb um 15.05.2025 18:31, dass irgendjemand kopierte,: "Günter K. schrieb: > Aber dieses Assembler Gestammel mit dem > Internetausdrucker kann ja auch nicht euer ernst sein." Das schrieb ich nicht, und diesen Spruch werde ich auch nicht heraussuchen. Allerdings, habe ich auf diesen Spruch bereits geantwortet. Arduino F. (Firma: Gast) (arduinof) kopierte: s. o.: "Die Quelle dieses Spruches hat ein Sozialverhalten wie eine Bordsteinkante.": Also, es ist nicht meine Quelle. Und das, - sehe ich genau so, - nur fehlt mir das Vokabular dazu. Mit lieben Grüßen Günter K. (ENK)
Günter K. schrieb: > Das schrieb ich nicht Nein, das hast Du auch nicht geschrieben. Das war der Forentroll vom Dienst. Lass' Dich von diesem Idioten nicht irritieren -- ignoriere einfach alles, was der geschrieben hat. Hätte einer der Moderatoren sich schon um diesen Thread gekümmert, hätte auch alles seit heute gegen halb neun vormittags hier einfach gelöscht werden können.
Liebe Leute, an Allen! - Diesen gut gemeinten Vorschlag nehme ich dankbar an, denn: Klaus schrieb: > Günter K. schrieb: >> den Timer im 6502 aufzurufen. Zwichengedanke dem 6532. > > Lass' das bitte. > Verändere/erweitere das Programm mit den 440Hz schrittweise: > > - dass es eine andere Tonhöhe abspielt > - dass es den Ton z.B. nur eine bestimmte Zeit abspielt > - dass es 2 verschiedene Töne hintereinander abspielt > > Damit wirst Du ein paar Tage beschäftigt sein. ... ... Denn ich vermute, dass das stimmt, - weil ... (Anzwort kommt noch), denn eine 2. Tonhöhe und noch andere hatte ich, - das wäre quasi außer dem A4, das G4, also: 440 Hz und 392 Hz. Einzeln, kann ich diese beiden Töne laufen lassen, - aber nicht hintereinander. - Denn ich komme nicht aus dieser Schleife heraus! Es ist wie in dem Film: (Und täglich grüßt das Murmeltier.) - weil ich etwas tun muss, eben um aus dieser Schleife, herauszukommen. Vielleicht fällt mir noch was ein. In diesem Fall müsste ich erst eine große um den Ton legen, Fortsetzung folgt. Mit lieben Grüßen Günter K. (ENK)
Falk B. schrieb: > ES REICHT MIT DEM SCHEIß! Der Meinung bin ich auch! Mit lieben Grüßen Günter K. (ENK)
Falk B. schrieb: > Er hat auch viel Chaos und komische Ideen im Kopf. Das klingt interessant, hab' auch interssante Ideen, die ich noch gar nicht vorgebracht habe. Du scheinst mich zu kennen. :-))) Liebe Grüße Günter K. (ENK) P.S.: Seis drum, alles Gute! Einige der nächsten E-Mails habe ich noch nicht gelesen.
Alexander S. schrieb: > Ich habe Linux ohne LibreOffice und werde nur wegen der Datei auch nicht > nach einem xslx-Viewer im Internet suchen. Dann meckere nicht über die Datei, sondern halte dich einfach vornehm heraus. Dass andere Leute (ganz gewöhnliche) Programme benutzen, die du nicht benutzen möchtest, ist nicht deren "Fehler". Cyblord -. schrieb: > Ach komm das ist doch Satire langsam. Glaube ich nicht. Günter ist nur etwas älter als die meisten hier und mit anderen Tools groß geworden. Nach einer offenbar langen Pause (30-40 Jahre?) beschäftigt er sich wieder mit dem Thema. Vielleicht, weil er jetzt nicht mehr Arbeiten muss und endlich Zeit hat, sein Hobby fortzusetzen. Ist das denn so schlimm?
Cyblord -. schrieb: > Falk B. schrieb: >> ES REICHT MIT DEM SCHEIß! > > Ist ja gut. > Schon mal überlegt dass die Schreierei empfindlichere Seelen, wie z.B. > mich, extrem verunsichern kann? Nun, Danke Cyblord. Ja, ich werde versuchen, ansetelle der "1" im Y-Register aus der Schleife hinauszukommen, ob mir das gelingt, weiß ich jetzt noch nicht. (Vermutlich nicht.) In dieser Zeit, wird noch einmal bis dezimal bis 250 gezählt. Ich darf aber durch den Ausstieg aus der Schleife, die Zeit nicht verändern, denn dann stimmt der Ton nicht mehr. von Christoph M. (mchris) 06.05.2025 11:56 Lesenswert? - Ja! Auf jeden Fall!! Hier mal der Versuch, den Timer ohne Interrupt zu verwenden. Wenn ich es richtig verstehe, kann man den Timer wohl einfach durch das Beschreiben der entsprechenden Adresse starten. Das Programm sollte also folgendes machen: 1. Timer starten 2. Warten bis abgelaufen 3. Portpin rumdrehen 4. Jump zu 1. ... Ja nach diesem Beitrag, hab ich gesucht, und dachte er wäre von "Falk" gewesen, weil ich oben drüber mal "Falk" las, aber das war, - durch ein Zitat von mir falsch verstanden hatte. Lieber von Christoph M. (mchris) Scheinbar, die einzige Möglichkeit, - doch auch hier muss ich Aus der Schleife hinaus, für weitere Zeiten. Ich muss Anschließend, die Notenlängen zusammenkleben. Weil auch(evtl.) eine Schlusspause(der Note selbst) die in der Notenschrift nicht vorhanden ist, würde schätzungsweise 1/128 ausmachen, die dann auch in den Takt passen. Austeigen kann ich nur in der NULL-Phase, weil danach eine EINS-Phase kommen kann. Die NULL-Phase muss ich vor dem Ausstieg ergänzen, ohne die gesammte Wellenlänge zu verfälschen. Wer weiß, vielleicht schaffe ich es ja in den bisherigen Schleifen. Ich brauche das 6502 Handbuch. Das suche ich jetzt im Internet. Hallo Falk, Dein Vokabular, könnte besser sein. Liebe Grüße Günter K. (ENK) Ach ja: Christoph M. (mchris) vomm 12.05.2025 18:49 Ich bin immer noch erstaunt über den Emulator, - ! Sehr gut! Und ich sehe, dass ich die Forum-Seiten hier im Threat gar nicht gut genug durchgelesen habe! ... Ich bekomme gerade Besuch, und melde mich später. Liebe Grüße Günter K. (ENK)
Günter K. schrieb: > Das suche ich jetzt im Internet. Das kannst Du dir sparen. Christoph hat bereits ein Programm gepostet, das mehrere verschiedene Töne hintereinander abspielt. Versuche das zu verstehen. Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
von Klaus (feelfree) schrieb heute am 18.05.2025 14:57, denn Günter K. schrieb: > Das suche ich jetzt im Internet. Klaus schrieb: > Das kannst Du dir sparen. > Christoph hat bereits ein Programm gepostet, das mehrere verschiedene > Töne hintereinander abspielt. > Versuche das zu verstehen. > > Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, > Erfahrung?" von Christoph M. (mchris) 06.05.2025 11:56 Lesenswert? - Ja! Auf jeden Fall!! Hallo Leute, hallo Christoph M. (mchris) DANKESCHÖN! Ich versuche, später mal das Programm, so hexadezimal in der Art zu übertragen, wie Hans Otten in JUNIOR-COMPUTER das macht. Einige Befehle habe ich noch nicht gelernt. Ich melde mich dazu wenn ich da dran bin, und bitte, das dann zu beantworten. Danach -versuche- ich, ein Ablauf-Diagramm zu erstellen; ob es mir gelingt, weiß ich noch nicht. Ohne Timer, stelle ich es mir schwerer vor. Mit lieben Grüßen Günter K. (ENK) P.S.: Doch vorher versuche ich das Folgende, weil Klaus schrieb: > Lass' das bitte. > Verändere/erweitere das Programm mit den 440Hz schrittweise: > > - dass es eine andere Tonhöhe abspielt > - dass es den Ton z.B. nur eine bestimmte Zeit abspielt > - dass es 2 verschiedene Töne hintereinander abspielt. Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. - Doch danach vielleicht: G4 + B4, als kleine Terz. Danach vielleicht: G4 + C5, als große Terz. (Aber irgendwie, kommt mir in den Sinn, die Tonsequenz-Kürzel in Form von Hexadezimale Zahl für 'f' also Frequenz von Christoph M. zu verwenden.) Ob mir das -hier- gelingt, weiß ich jetzt noch nicht. Erst mal nur die 3 Zweier-Gruppen. So wiederhole ich: Mit lieben Grüßen Günter K. (ENK)
:
Bearbeitet durch User
Günter K. schrieb: > Ich versuche, später mal das Programm, so hexadezimal in der Art zu > übertragen, wie Hans Otten in JUNIOR-COMPUTER das macht. Der Hinweis gilt immer noch. https://www.asm80.com/ Und während in villariba noch mühsam der Machinencode per Hand, Fuß und Gedächtnislücke geklöppelt wird, wird in villabacho schon RocknRoll gespielt! ;-) Siehe Anhang.
Günter K. schrieb: > Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. - > Doch > danach vielleicht: G4 + B4, als kleine Terz. > .... Ich verstehe dein Gedankengänge Nullkommanull. Ich hab es dir bereits einmal vorgerechnet. Die Frequenz holst Du dir aus dem Internet. Dann rechnest Du 1000000µs geteilt durch die gewünschte Frequenz und erhältst dadurch die Periodenlänge. Das Ergebnis geteilt durch 2 ist die halbe Periodenlänge in µs, so lange muss Du zwischen 0 und 1 bzw 1 und 0 warten. Ein Takt ist bei deinem 1MHz Prozessor genau 1µs lang. Wenn also deine Delay-Schleife 6 Takte braucht, muss Du nur noch die berechnete halbe Periodenlänge durch 6 teilen und Du hast deinen Wert, wie oft Du in de Schleife warten musst. Ich habe jetzt länger gebraucht das hier hinzuschreiben als es einfach (und einmalig!) auszurechnen.
:
Bearbeitet durch User
Günter K. schrieb: > Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. - > Doch > danach vielleicht: G4 + B4, als kleine Terz. > .... Klaus (feelfree): >Ich verstehe dein Gedankengänge Nullkommanull. Ich glaube, da gibt es zwei Aspekte: Das eine gedankliche Problem ist, wie man einen Tonwechsel ohne Unterbrechung machen kann. Beim Wechsel des Tones werden wird ja eine andere Befehlssequenz durchlaufen und die verändert genau eine Periode der Schwingung. In der Realität merkt man aber beim Abspielen der Beispielprogramme (z.B. der Tonleiter) nichts, weil der Wechsel so schnell erfolgt, dass die veränderte Periodenlänge keinen hörbaren Effekt hat. Der zweite, eher ziemlich komplizierte und sportliche Aspekt ist: Wie zwei Töne (mit einem Lautprecherpin ) gleichzeitig spielen (G4 + B4), so dass ein Akkord entsteht. Das ist machbar, wie einige Videos mit dem Apple 2 (der eher in den 80.er Jahren aktuell war), zeigen.
Christoph M. schrieb: > Günter K. schrieb: >> Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. - >> Doch >> danach vielleicht: G4 + B4, als kleine Terz. >> .... > > Klaus (feelfree): >>Ich verstehe dein Gedankengänge Nullkommanull. > > Ich glaube, da gibt es zwei Aspekte: Das eine gedankliche Problem ist, > wie man einen Tonwechsel ohne Unterbrechung machen kann. Beim Wechsel > des Tones werden wird ja eine andere Befehlssequenz durchlaufen und die > verändert genau eine Periode der Schwingung. In der Realität merkt man > aber beim Abspielen der Beispielprogramme (z.B. der Tonleiter) nichts, > weil der Wechsel so schnell erfolgt, dass die veränderte Periodenlänge > keinen hörbaren Effekt hat. > Der zweite, eher ziemlich komplizierte und sportliche Aspekt ist: Wie > zwei Töne (mit einem Lautprecherpin ) gleichzeitig spielen (G4 + B4), so > dass ein Akkord entsteht. > Das ist machbar, wie einige Videos mit dem Apple 2 (der eher in den > 80.er Jahren aktuell war), zeigen. Christoph M. schrieb: > Klaus (feelfree): >>Ich verstehe dein Gedankengänge Nullkommanull. Hallo liebe Leute, ich hatte auch garnicht von einem ganzen Akkord gesprochen, sondern ich meinte nur einzelne Töne. Inzwischen hatte ich schon wieder eine ganze Aufsatzseite geschrieben, wie ich an der richtigen Stelle in der NULL-Phase, eine Zählung unterbringe, - doch ich schicke es nicht ab. Stattdessen, lese ich noch was in den Büchern. Der Prozess, braucht eine Uhr. Lieben Grüße Günter K. (ENK)
Falk B. schrieb: > Günter K. schrieb: >> Ich versuche, später mal das Programm, so hexadezimal in der Art zu >> übertragen, wie Hans Otten in JUNIOR-COMPUTER das macht. > > Der Hinweis gilt immer noch. > > https://www.asm80.com/ > Das wurde jetzt schon ca 10 mal vorgeschlagen. Ich frage mich ob der TE es überhaupt EINMAL angeklickt und ausprobiert hat. Und nein, ich halte die völlig falsche und beratungsresistente Vorgehensweise die wir hier sehen überhaupt nicht für altersbedingt. Wer bisher strukturiert und klar denken und arbeiten konnte verfällt nicht plötzlich in so einen Modus. No Way. Das war bei dem noch nie anders.
:
Bearbeitet durch User
Günter K. schrieb: > Inzwischen hatte ich schon wieder eine ganze Aufsatzseite geschrieben, > wie ich an der richtigen Stelle in der NULL-Phase, eine Zählung > unterbringe Völlig überflüssig, es braucht keine NULL-Phase. Und zum drölfzigsten Mal: Weiter oben hat Christoph ein Programm gepostet, das eine Tonleiter ausgibt. Inklusive Hörbeispiel. Versuche das Programm zu verstehen. Wenn die das nicht gelingt, Frage konkret nach was du nicht verstehst Solange du das Programm nicht verstanden hast, brauchst du keine eigenen Versuche starten, die werden nämlich grandios scheitern.
Hmmm... also, ich muss sagen, beim Lesen dieses Threads (ja, mit 'd'!) bin ich hin- und hergerissen. Einesteils finde ich es immer bewundernswert, wenn jemand (egal in welchem Alter) noch den Elan hat, sich durch Selbststudium etwas selbst beizubringen. Andererseits tut es mir fast körperlich weh, mit anzusehen, wie Günter hier weitaus schneller in immer abstrusere Gedanken, Ideen, Versuche, Missverständnisse etc. fällt, als ihm hier auch nur ein einziges Konzept hinreichend nahegebracht werden kann. Eigentlich braucht er Jemanden, der sich mal einen ganzen Nachmittag/Abend bei 'nem guten Bier oder Kamillentee mit ihm zusammensetzt und zusammenhängend wenigstens die Grundideen ohne Abschweifen nahebringt. Aber so wie hier wird das nix: er versucht, Tonfolgen und Lieder abzuspielen, hat aber noch elementare Probleme damit, überhaupt die Funktionsweise einer CPU, den Maschinenbefehlen und Programmstrukturen zu verinnerlichen. Und nun will er gleich mehrere Töne gleichzeitg erzeugen. Das ist ungefähr so, als ob man gleichzeitig die Saiten einer Gitarre zählt, die Mechanik der Wirbel analysiert und eine Etude komponieren will. Schade, aber ich persönlich sehe nicht, wie man ihm effizent die Materie nahebringen kann.
Thilo L. schrieb: > Eigentlich braucht er Jemanden, der sich mal einen ganzen > Nachmittag/Abend bei 'nem guten Bier oder Kamillentee mit ihm > zusammensetzt und zusammenhängend wenigstens die Grundideen ohne > Abschweifen nahebringt. Das Ergebnis wäre exakt das gleiche. Er ist schlicht nicht aufnahmefähig für Tipps und Ratschläge. Und die Grundidee einer CPU, der Befehle usw. kann man sich am besten selbst und in max. 1 Stunde beibügeln. Wenn man denn will. Inkl. Youtube Videos wenn man zu faul zum lesen ist. Das passiert aber alles nicht.
:
Bearbeitet durch User
Thilo L. schrieb: > Und nun will er gleich mehrere Töne gleichzeitg > erzeugen. Das ist ungefähr so, als ob man gleichzeitig die Saiten einer > Gitarre zählt, die Mechanik der Wirbel analysiert und eine Etude > komponieren will. Hallo lieber Thilo Irgendwo habe ich geschrieben, dass ich keine Akkorde meinte, d.h.: Nicht mehrere Töne gleichzeitig. Also: Günter K. schrieb: > Hallo liebe Leute, > ich hatte auch garnicht von einem ganzen Akkord gesprochen, > sondern ich meinte nur einzelne Töne. Ich danke aber für Deinen verständnisvollen Beitrag. Denn es geht um das Verstehen. Nicht um das Fertige zu übernehmen; obschon ich die Leistung von Christoph M. sehr bewundere!! Die Umrechnung aus den µSekunden von Klaus(feelfree) von 18.05.2025 19:45 finde ich schon sehr gut. - Ob die Zeit reicht, - da noch was zwischenzuschieben? Da, bin jetzt noch nicht ganz sicher. Das weiß ich erst dann, wenn ich es ausprobiert habe. Denn immerhin muss ich ja hochzählen (Nun ja, - es wird jedesmal nur 1 x hochgezählt) aber das verändert schon die Frequenz und zwar so, dass ich den (x vielleicht nicht) Y-Wert ändern muss, damit der Ton wieder stimmt. - Und ich muss so viel hochzählen, dass ich 1/128 des Takts zusammenbekomme. Kein Problem ist das mit dem Timer, weil er alleine selber zählt. An einer Stelle hatte ich mich aber verschrieben, denn da hatte ich, 6502 statt 6532 für den Timer geschrieben. Das geht, denn der Timer und der 6502 sollen ja zusammenarbeiten. Ein Proramm einfach abschreiben, das ist -zu- einfach. Man möchte es ja auch verstehen. Liebe Grüße Günter K. (ENK)
:
Bearbeitet durch User
Günter K. schrieb: > Ein Proramm einfach abschreiben, das ist -zu- einfach. > Man möchte es ja auch verstehen. Bevor du nicht ein abgeschriebenes, fertiges Programm verstanden hast, brauchst du erst gar nicht versuchen, eines selbst zu schreiben. Das wird scheitern, wie man ja an jedem Beitrag von dir erkennen kann. Lernen kann man an Beispielen. Wie machen es andere? Und wenn man ein Beispiel verstanden hat, kann man es verändern und erweitern. So lernt man. Analogie: Wenn du lernen willst, wie man schriftlich multipliziert, kannst du versuchen, den Rechenweg selbst herzuleiten. Oder eben eine Anleitung befolgen, 2-3 Beispiele nachzuvollziehen und dann erst selbst zu rechnen. Günter K. schrieb: > Kein Problem ist das mit dem Timer, weil er alleine selber zählt Das zeigt mir, dass du nix verstanden hast. Einen Timer zu benutzen ist viel komplexer, das bekommst du niemals hin. Vergiss den Timer. Hab ich aber auch schon mehr als einmal geschrieben.
Hier mal der PiPico-6502-Emulator, falls jemand die Töne in Echtzeit hören will und keine Junior-Hardware hat: Beitrag "6502 Emulator PiPico"
Christoph M. schrieb: > Hier mal der PiPico-6502-Emulator, falls jemand die Töne in Echtzeit > hören will und keine Junior-Hardware hat: > Beitrag "6502 Emulator PiPico" Sehr schoen! Werde ich am Wochenende einmal ausprobieren. Da ich mit dem Junior waehrend der Schulzeit programmieren gelernt habe und jetzt mit einer 5EUR-Platine das gleiche machen kann: Irgendwie schliesst sich der Kreis. Gruesse
Hallo Leute, Ich hatte einen langen Beitrag geschrieben, der alles bezgl. dessen erklärt. Tut mir Leid. Ich muss jetzt in die Stadt. Das nächste mal, schreibe ich zu erst in WORD. Liebe Grüße Günter K. (ENK)
Hallo Leute, es folgt: von Christoph M. (mchris) 14.05.2025 06:47 Christoph M. schrieb: > Und hier als praktische Übung: > > 1. rufe diese Seite auf: > https://www.masswerk.at/6502/assembler.html > 2. tippe im linken Fenster mit der Bezeichnung 'src' den Text 'nop' ein > 3. drücke rechts unten auf 'Assemble' > 4. drücke auf 'OK' > 5. schaue das Ergebnis auf der rechten Seite im Fenster 'object code' > an. Hallo Christoph M., Bitte, wo hast Du das Programm mit mehreren Tönen gepostet? Ich suchte, habe es leider nicht gefunden. (Meine sogar es gesehen zu haben.) Es sind zu viele Trump-Biden-Postings dazwischen. Hab' mir auch mal den Rasberry PICO Pi zurechtgelegt. Was mich aber auch interessiert ist der Maschinen-Code, welches hoffentlich noch in gleicher Reihenfolge ist, wie es erstellt wurde - und so funktioniert. Einmal sah ich, dass da beim Apple II eine ganz andere Reihenfolge erschien. (Das verwirrt!). Bitte schicke mir das Programm oder den LINK. Liebe Grüße Günter K. (ENK)
:
Bearbeitet durch User
Günter K. schrieb: > Bitte, wo hast Du das Programm mit mehreren Tönen gepostet? Ich habe es bereits 3 mal verlinkt. Macht ja nix, schadet ja auch kein viertes mal: Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?" Aber ich paste es hier nochmal rein, damit es auch sauber mit https://www.masswerk.at/6502/assembler.html assembliert werden kann:
1 | ;***************************************************************************** |
2 | ; |
3 | ; erzeuge eine Tonleiter mit Rechecktönen |
4 | ; |
5 | ; Zielfrequenzen |
6 | ; f = 261.63 293.66 329.63 349.23 392.00 440.00 493.88 523.25 |
7 | ; |
8 | ; Hardware: 6502, fcpu=1MHz |
9 | ; |
10 | ;***************************************************************************** |
11 | .org $300 |
12 | lda #$1 |
13 | sta PBDD ; set PB0 to output |
14 | mainloop: |
15 | ; C |
16 | lda #200 |
17 | sta 0 ; teiler register |
18 | jsr playnote |
19 | ; D |
20 | lda #158 |
21 | sta 0 ; teiler register |
22 | jsr playnote |
23 | ; E |
24 | lda #121 |
25 | sta 0 ; teiler register |
26 | jsr playnote |
27 | ; F |
28 | lda #104 |
29 | sta 0 ; teiler register |
30 | jsr playnote |
31 | ; G |
32 | lda #73 |
33 | sta 0 ; teiler register |
34 | jsr playnote |
35 | ; H |
36 | lda #45 |
37 | sta 0 ; teiler register |
38 | jsr playnote |
39 | ; A |
40 | lda #20 |
41 | sta 0 ; teiler register |
42 | jsr playnote |
43 | ; C |
44 | lda #9 |
45 | sta 0 ; teiler register |
46 | jsr playnote |
47 | jmp mainloop |
48 | playnote: |
49 | ldy #50 ; duration |
50 | loop: |
51 | ; default delay |
52 | ldx #180 ; 5us×179+5us=900us |
53 | jsr shortdelay ; 6 cyles |
54 | ; additional dela |
55 | ldx 0 ; teiler register |
56 | jsr shortdelay |
57 | lda PBD ; Read port B |
58 | eor #$01 ; Toggle bit 0 |
59 | sta PBD ; Write back |
60 | dey |
61 | bne loop |
62 | rts |
63 | ; Total time (in microseconds)=5N+5 |
64 | shortdelay: |
65 | dex ; 2 cyc |
66 | bne shortdelay ; 3 cyc jmp , 2 no mp |
67 | rts ; 6 cyc |
68 | |
69 | ; MOS6532 PIA addreses |
70 | PAD: .org $1A80 |
71 | PADD: .org $1A81 |
72 | PBD: .org $1A82 |
73 | PBDD: .org $1A83 |
:
Bearbeitet durch User
Dddns schrieb: > Hallo Günter, > > ich denke, Du suchst genau das hier: https://geoffg.net/picomite.html Nein, das sucht er ganz gewiss nicht.
Klaus schrieb: Dddns schrieb: > Hallo Günter, > > ich denke, Du suchst genau das hier: https://geoffg.net/picomite.html von Klaus (feelfree) 20.05.2025 23:16 Nein, das sucht er ganz gewiss nicht. Günter K. schreibt: Hallo liebe Leute! Warum nicht? - Aber bitte auf Deutsch. Liebe Grüße Günter K. (ENK) Also lieber Klaus, es ist ja gut gemeint mit den einzelnen kleinen Schritten. Denn genau das Modulare, suche ich. Fertige Programme sind oft zu sehr mit Verschachtelungen umschlungen. - Ja, die Fragen müssen in einzelnen Schritten, - also wieder Fragen zerlegt werden. Ich werde auch -nicht-, den ganzen - Assembler - überfliegen können, - - da liegst Du richtig -, sondern nur kleine Schritte, die man einzeln versteht. Wenn man dann, einige zusammengefasste Schritte verstanden hat, dann hat man schon größere Schrittchen verstanden, bis man so viel mehr verstanden hat, dass man es dann so, anwenden kann. Die Schriftsteller meinen es gut, jedoch man wird vielleicht mit vielen verstrickten Problemen konfrontiert. Der Studierte, hat ein ganz anderes Gehirntraining hinter sich. Diese Möglichkeit, wurde mir aber schon in der Kindheit geraubt! Ich war zu schwach und zu Hilflos! Liebe Grüße Günter K. (ENK)
Also ich bin raus. Wenn ich mal wieder Lust auf Unterhaltung habe, nehme ich mir vielleicht eine Tüte Chips und verfolge dieses Drama ausschließlich lesenderweise. Nun will Günter "ganze Assembler überfliegen"??? Schon mit den Begrifflichkeiten hat er Probleme: er meint wohl den gesamten Assembler-Code eines Programmes. Oder "Fertige Programme sind oft zu sehr mit Verschachtelungen umschlungen." Was soll das denn nur bedeuten? Ein fertiges Programm wird höchstens kurz - aus seliger Wonne ob des Erreichten - von seinem Programmierer kurz und virtuell umschlungen... Nun hat Günter sich einen Raspberry zurecht gelegt - hat er nicht genug Probleme mit einer der allereinfachsten Architekturen, seinem 6502? Genau das, was ich in meinem Post weiter oben angemerkt hatte, passiert bei Günter in fortgesetzter Weise: kein einziger Gedanke (sinnvoll auf beherrschbare Komplexität zurecht gestutzt) wird einfach nur mal so richtig durchdacht, bis die Sache sitzt. Ständig schießen unzusammenhängende Bemerkungen und Überlegungen dazwischen. Und zur Erleicherung beim Schreiben eines Posts das Ganze zunächst in Word zu verfassen, schießt den Vogel ab: Günter, wie wär's mit Hammer und Meißel und einem großen Stein?? Das übersteht garantiert ALLE Rechner-Crashes oder sonstige Probleme mit dem Internet! Nee, wie gesagt, ich bin raus. Aber ich überbewerte schon wieder die Wichtigkeit meines Verhaltens im öffentlichen Raum, sorry.
:
Bearbeitet durch User
Thilo L. schrieb: > Ständig schießen > unzusammenhängende Bemerkungen und Überlegungen dazwischen. Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
Günter K. schrieb: > Ich war zu schwach und zu Hilflos! Dann such' dir ein anderes Hobby. Wenn Du es nicht mal schaffst, 20 Zeilen Assemblercode verstehen zu wollen, sind weitere Anstrengungen in dieser Richtung absolut sinnlos.
Ich finde die Tonerzeugung auf dem 6502 ziemlich interessant, weil man mit sehr wenigen Resourcen auskommen muss. Mein Ziel ist es, deutlich komplexere Sounds zu erzeugen. Damit die "professionelle Diskussion" nicht abreist, habe ich hier mal einen Thread für Leute erstellt, die in der Tiefe diskutieren wollen. Beitrag "6502 sound generation"
Apropos: hier noch eine praktische Frage zum Juniorcomputer. Die Beispielprogramme starten immer ab Adresse 0x300 und damit sind nur noch 256 Bytes für das Programm frei. Ich brauche mehr. Deshalb die Frage: Der Stackpointer geht ja von 0x100-0x1FF, d.h. könnten die Programme auch ab 0x200 beginnen.
Christoph M. schrieb: > Apropos: hier noch eine praktische Frage zum Juniorcomputer. Wie wärs mit einem eigenen Thread für DEINE Probleme anstatt den hier sowieso extrem verwirrten Thread auch noch zu missbrauchen?
Günter K. schrieb: > Also lieber Klaus, es ist ja gut gemeint mit den einzelnen kleinen > Schritten. > Denn genau das Modulare, suche ich. Fertige Programme sind oft zu sehr > mit Verschachtelungen umschlungen. - Ja, die Fragen müssen in einzelnen > Schritten, - also wieder Fragen zerlegt werden. Wie wärs mal wenn du KLARTEXT redest? Warum schwurbelst du so extrem um alles herum? Was willst du mit dem obigen Satz sagen? Klaus hat dir ein Programm gepostet welches Töne mit Variabler Tonhöhe erzeugen kann. Das war doch deine Frage. Was ist nun los? Verstehst du das Programm nicht? Dann frage konkret. > Ich werde auch -nicht-, den ganzen - Assembler - überfliegen können, - D.h. du kannst kein Beispielprogramm mit 20 Zeilen ASM anschauen und verstehen? Warum nicht? Und wenn das nicht geht, was glaubst du geht dann überhaupt in Richtung Assembler? Sorry dein Problem ist nicht nur die Programmierung, sondern du kannst dich anscheinend auch überhaupt nicht ausdrücken. Sortiere mal deine Gedanken und formuliere sie wie ein normaler Mensch. Also WAS WILLST DU? WAS SUCHST DU? WELCHE FRAGEN HAST DU KONKRET? Bitte mal KLARTEXT.
:
Bearbeitet durch User
von Cyblord -. (cyblord) 21.05.2025 10:36 >Christoph M. schrieb: >> Apropos: hier noch eine praktische Frage zum Juniorcomputer. >Wie wärs mit einem eigenen Thread für DEINE Probleme anstatt den hier >sowieso extrem verwirrten Thread auch noch zu missbrauchen? Die Frage, wo die Programme auf dem Juniorcomputer von Günther allokiert sind, ist durchaus relevant. Kannst du dein dummes Geschwätz irgendwo anders platzieren?
:
Bearbeitet durch User
Christoph M. schrieb: > Die Frage, wo die Programme auf dem Juniorcomputer von Günther allokiert > sind, ist durchaus relevant. Das ist für Günther absolut nicht relevant. Du funkst hier ständig mit deinen Themen dazwischen die für den TE null Relevanz haben. Mach einen eigenen Thread dafür auf. Das ist hier nun mal üblich. Threads kapern geht nicht.
Cyblord -. (cyblord) 21.05.2025 11:44 >Du funkst hier ständig mit deinen Themen dazwischen die für den TE null >Relevanz haben. Bei dem was du Günter gegenüber hier bisher abgesondert hast: Hör auf Kreide zu fressen und den Trump zu spielen.
Christoph M. schrieb: > Bei dem was du Günter gegenüber hier bisher abgesondert hast Ich "sondere" hier gar nichts ab. Arbeite mal ein wenig an deinen Umgangsformen. Hattest du keine Kinderstube? Ich sage ihm klar und On-Topic was das Problem ist. Im Gegensatz zu dir werde ich nicht ausfallend. > Hör auf > Kreide zu fressen und den Trump zu spielen. Du scheinst tiefergehende Probleme zu haben und auch Probleme sachlich bei einem Thema zu bleiben. Das hat hier alles nichts zu suchen. Du zerstörst den Thread mit deinen Off-topic Anwürfen und Anschuldigungen. Arbeite an dir und deinem eigenen Verhalten. Da hast du genug zu tun.
:
Bearbeitet durch User
Cyblord -. schrieb: > Also WAS WILLST DU? > WAS SUCHST DU? > WELCHE FRAGEN HAST DU KONKRET? > > Bitte mal KLARTEXT. Und Günter, du bist gefragt worden, wo du wohnst. Ich selber habe auch in meiner Jugend viel mit dem seligen Commodore Pet2001 (auch MOS6502) in Assembler programmiert. Und wenn du wirklich interessiert bist, würde ich dir auch mal weiter helfen wollen. Aber ich kann bestätigen, was einige Vorredner schon sagten: Deine Fragen hier sind dafür nicht zielführend. P.S: Das erste größere Programm das ich damals schrieb, war ein Assembler! Zu Beginn hackte ich wirklich Maschinencode ein, berechnete Sprungbefehle von Hand. Und wenn einer nicht stimmte: Adios! Da ich noch keinen Drucker besaß, hieß das, die ganze Litanei mit Bleistift auf Papier zu schreiben, ganz ähnlich zu jemanden, der seine damaligen Werke hier auch gezeigt hat. Auf den (1-pass-) Assembler war ich dann auch sehr stolz und die 1 in der Computer AG der Schule war dauerhaft meins. Schnüff, lange her.
Christoph M. schrieb: > Apropos: hier noch eine praktische Frage zum Juniorcomputer. > Die Beispielprogramme starten immer ab Adresse 0x300 und damit sind nur > noch 256 Bytes für das Programm frei. > Ich brauche mehr. Deshalb die Frage: Der Stackpointer geht ja von > 0x100-0x1FF, d.h. könnten die Programme auch ab 0x200 beginnen. Der Monitor beim Junior verwendet einen Teil der Zeropage 0x0000..0x00FF für seine Variablen. Die 6502 verwendet 0x0100..0x01FF als Stackpointer. Seite 2 sollte eigentlich auch frei sein, also mit Anfangsadresse 0x0200 - bei Günter hat das erste Beispiel aber nicht funktioniert, daher hatte ich ihm empfohlen, das mal auf Adresse 0300 zu legen, da ging es dann. Keine Ahnung, ob er sich da vertippt hatte oder das RAM einen Schuss hat. Ich bin noch mal den Monitor durchgegangen, Seite zwei benutzt der nicht. Von 0x0000 bis 0x00E0 kann man die Zeropage auch für eigene Programme verwenden. Und wenn man den Stack unter Kontrolle hat, dann steht auch die Page 1 weitgehend zur Verfügung!
:
Bearbeitet durch User
Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike) 21.05.2025 14:11 >Seite 2 sollte eigentlich auch frei sein, also mit Anfangsadresse 0x0200 >- bei Günter hat das erste Beispiel aber nicht funktioniert, daher hatte >ich ihm empfohlen, das mal auf Adresse 0300 zu legen, da ging es dann. >Keine Ahnung, ob er sich da vertippt hatte oder das RAM einen Schuss >hat. Ah, ok .. ich meine einige Programme für den Apple 2 gesehen zu haben, die auch bei 0x300 gestartet sind und dachte das sein eine Art "Konvention". Meine Erklärung wäre gewesen: Page 1 für die schnellen Variablenzugriffe, Page 2 für den Stackpointer und Page 3 für langsame Variablen. Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255 Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind. Das ist ein wenig der Vorteil der modernen Zeit: Beim PiPico-Emulator kann man einfach den HEX-Code per Drag&Drop in die Kommandozeile werfen und muss nicht jedesmal das Ganze wieder mühselig eintippen.
Christoph M. schrieb: > Ah, ok .. ich meine einige Programme für den Apple 2 gesehen zu haben, > die auch bei 0x300 gestartet sind und dachte das sein eine Art > "Konvention". Nö, der A2 hat ja ein viel mächtigeres Betriebssystem im ROM, da reichen wahrscheinlich 256 Byte nicht für die Variablen aus... Christoph M. schrieb: > Page 1 für die schnellen > Variablenzugriffe, Page 2 für den Stackpointer und Page 3 für langsame > Variablen. Page 0, 1, 2... Kann so sein, ja! Christoph M. schrieb: > Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255 > Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich > vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind. Das ist es in der Tat. Einmal aus, alles weg... Der Junior hat aber auch eine Interface-Karte, mit der man alles auf Cassette speichern konnte! Die hat aber kaum jemand. https://www.wolfgangrobel.de/sbc/junior2.htm#upd1
Christoph M. schrieb: > Ah, ok .. ich meine einige Programme für den Apple 2 gesehen zu haben, > die auch bei 0x300 gestartet sind und dachte das sein eine Art > "Konvention". Meine Erklärung wäre gewesen: Page 1 für die schnellen > Variablenzugriffe, Page 2 für den Stackpointer und Page 3 für langsame > Variablen. Page 0 für schnelle Variablen (zero page register file), Page 1 für den Stack, und Page 2 nutzte der Apple für den Eingabepuffer der Tastatur bzw des COM-Ports. Der Bildwiederholspeicher ging von $0400 - $07FF, und BASIC-Programme begannen meist bei $0800. Damit war Page 3 frei für kurze Assemblerprogramme, die nicht mit dem BASIC kollidieren sollten, und das DOS legte dort ein paar Variablen ab. Daher liegen viele Assembler-Codebeispiele auf Adresse $0300. > Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255 > Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich > vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind. Richtig. Daher hat man relativ schnell angefangen, auf einen Cassettenrecorder als Datenspeicher und ein Terminal bzw Fernschreiber als Ein/Ausgabegerät zu sparen.
Wolfgang R. schrieb: > Ich bin noch mal den Monitor durchgegangen, Seite zwei benutzt der > nicht. > Von 0x0000 bis 0x00E0 kann man die Zeropage auch für eigene Programme > verwenden. Und wenn man den Stack unter Kontrolle hat, dann steht auch > die Page 1 weitgehend zur Verfügung! Danke Wolfgang R., dann probiere ich es noch mal ab 0x0200. Wenn nicht, mache ich wieder weiter ab 0x300. Liebe Grüße Günter K. (ENK)
Cyblord -. schrieb: > Bitte mal KLARTEXT. Der Punkt ist, das manche Leute genau das einfach nicht hinbekommen, und deswegen (meiner Meinung nach) nie gute Entwickler werden können. Das ist nicht schlimm, niemand kann alles und jeder kann irgend etwas gut.
Günter K. schrieb: > dann probiere ich es noch mal ab 0x0200. Auch da wieder: Kannst Du machen, bringt dir aber absolut nix, nada, niente. Außer halt Zeit totschlagen ohne Erkenntnisgewinn.
In diesem Forum hat die Mehrzahl den Spaß am Spielen total verloren. Traurig.
Wolfgang R. schrieb: > In diesem Forum hat die Mehrzahl den Spaß am Spielen total verloren. > Traurig. Nö, überhaupt nicht. Beide jedem anderen hätte ich meinen Kommentar auch nicht abgegeben. Aber Günter braucht für die Aktion geschätzte 3-4 Tage, in denen er nichts sinnvolles bzgl. Assembler lernt. Es wäre nur der nächste Nebenkriegsschauplatz.
Wolfgang R. schrieb: > In diesem Forum hat die Mehrzahl den Spaß am Spielen total > verloren. > Traurig. Traurig, ja... Aber "Mehrzahl"? Ich schätze eher, dass diejenigen, mit wachem Spieltrieb, nicht auf andere Spieler herabsehen müssen. Und sich etwas weniger mit urteilen beschäftigen. OK, 6502 ASM ist auch für mich von wenig bis keinem Interesse. Was aber nicht dazu führt, dass ich anderen Leuten das Spielzeug kaputttrampen muss. Auch wenn mir die Farbe oder das Vorgehen nicht schmeckt.
Arduino F. schrieb: > Was aber > nicht dazu führt, dass ich anderen Leuten das Spielzeug kaputttrampen > muss. Auch wenn mir die Farbe oder das Vorgehen nicht schmeckt. Das passiert hier auch gar nicht. Kannst du nicht lesen? Oder haperts bei dir am Verstehen?
Hallo liebe Leute, Soul E. schrieb: .... Christoph M. schrieb: >> Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255 >> Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich >> vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind. Günter K. schreibt: Ja, nach Ausschalten des Stromes sind (fast) alle Daten weg, - (bis auf den Daten des MONITORs bzw. des Betriebssystems vom ROM). Ich weiß wirklich, zu wenig darüber. Der OP-Code ist mir wichtig. Mit lieben Grüßen Günter K. (ENK)
:
Bearbeitet durch User
Günter K. schrieb: > Ja, nach Ausschalten des Stromes sind (fast) alle Daten weg, - > (bis auf den Daten des MONITORs bzw. des Betriebssystems vom ROM). > Ich weiß wirklich, zu wenig darüber. Ein Computer hat üblicherweise einen Festwertspeicher (read only memory, ROM) und einen Arbeitsspeicher (read/write memory). Der Arbeitsspeicher ist bei Deinem Apparat als random access memory (RAM) ausgeführt, d.h. Du kannst auf die Speicherzellen in beliebiger Reihenfolge zugreifen. Das war nicht immer so, frühere Rechner hatten sequential access memory (SAM, z.B. Trommelspeicher, Verzögerungsleitung, Schieberegister) oder context associative memory (CAM). Der Inhalt des Arbeitsspeichers ist nach dem Ausschalten weg, der Inhalt des Festwertspeichers bleibt erhalten. Daher kannst Du den Inhalt des Arbeitsspeichers üblicherweise auf einen Massenspeicher (Magnetband, Diskette, Festplatte) sichern oder an ein anderes Gerät übergeben, das drauf aufpasst ("in der Cloud speichern"). > Der OP-Code ist mir wichtig. Die OP-Codes, also die numerische Repräsentation der Maschinenbefehle, z.B. $EA oder 1110 1010 für "NOP", sind in RAM, ROM und auf Cassette identisch.
Cyblord -. schrieb: > Das passiert hier auch gar nicht. Kannst du nicht lesen? Oder haperts > bei dir am Verstehen? Hallo Leute, So viel ich weiß, hat die ganze Welt, noch keine definitive Sprache, (auch nicht im Englischen) außer den Programmiersprachen, und die kann ich leider auch noch nicht. Folglich ist "Verstehen" eben eine "Anschauungssache". Also gemeint ist hier, dass -scheinbar angeblich- jemand "könne nicht" lesen, was für Andere nicht oder zu schwer zu verstehen ist. - Vetragt Euch bitte. Gut gemeint, liebe Grüße Günter K. (Enk)
Enk schrieb: > Vetragt Euch bitte. /*********************************************************************/ NICHT MIT TROLLEN DISKUTIEREN ! Cyblord ist ein über 10 Jahre im MC-Netz aktiver Forentroll. Die intellektulle Aufgabe dieses Trolls ist Forenteilnehmer auf eine geschickte Art so zu beleidigen, dass seine eigener Post nicht gelöscht wird, der Forenteilnehmer seinem Ärger in weitern Posts in weiteren Posts kundtut. Die Grenze der Beleidigungen wird von Troll immer weiter angehoben, bis ein Moderator seinen Account löscht. Im Falle von Cyblord ist das Anhängsel ".-" an seinen Nickname "Cyblord.-", wie oft er seinen Nickname neu anlegen musste. Das Vorgehen der "trollartigen" ist in der Wikipedia beschrieben: https://de.wikipedia.org/wiki/Troll_(Netzkultur) /*********************************************************************** /
Christoph M. schrieb: > Im Falle von Cyblord ist das Anhängsel ".-" an seinen Nickname > "Cyblord.-", wie oft er seinen Nickname neu anlegen musste. Musste ich noch nie, das siehst du an der Anzahl meiner Beiträge. Der Rest ist ebenfalls Verleumdung und zerstört diesen Thread. Gerade DU versuchst aktuell alles um ihn Off Topic zu ziehen. Inkl. Unflätigkeiten. Bleib doch mal On-Topic und helfe dem TE. Wie wärs damit? Persönliche Animositäten kannst du per PN klären.
:
Bearbeitet durch User
Cyblord -. schrieb: > Der Rest ist ebenfalls Verleumdung Haha, selten so gelacht. Cyblord -. schrieb: > Bleib doch mal On-Topic und helfe dem TE. Bleib doch mal On-Topic und helfe dem TO, du lässt dich nur darüber aus, wie (angeblich) viel zu dumm der TE ist, wie andere ins OT abgleiten und dass du ja auf gar keinen Fall dazu gehörst.
J. T. (chaoskind) >Haha, selten so gelacht. Es dürfte relativ wenig Sinn haben, mit ihm zu diskutieren. Wenn man sich den Wikipedia-Artikel durchliest, ist 'cyblord' wirklich der prototypisch Troll, der ausschließlich auf emotionaler, nie auf fachlicher Ebenen diskutiert: https://de.wikipedia.org/wiki/Troll_(Netzkultur) Wenn ich den Artikel richtig verstehe, sind die Trolle mit einem Nutzeranteil von 5.6% gar nicht so selten. Apropos .. hier gibt es ein wenig Historie: Beitrag "Re: warum wird Cyblord -. (cyblord) nicht endgültig gesperrt?" Aber belassen wir es dabei, vielleicht gibt es trotz der 'cyblords" auf dieser Welt noch eine kleine Chance, eine fachliche Diskussion in diesem Forum zu führen. Ansonsten gilt der weise Spruch in Wikipedia-Artikel: „Trolle bitte nicht füttern!“ oder „Trolle füttern verboten!“ Also eine weitere Trollkommunikation ist zu unterlassen.
:
Bearbeitet durch User
Irgendwo habe ich eine Routine für das Abspielen der Notenleiter gefunden. Die musste ich aber stark modifizieren, dass sie lief. Der Gag hier: die Noten sollen gleich lang sein. Dazu braucht man ein zweites Byte Array, das die Anzahl der "Wellenzyklen" enthält. Ich meine dieses Wort bei Günter gelesen zu haben.
1 | ; Apple II 6502 Assembly: Play C D E F G A B C scale |
2 | ; Each note is played by toggling the speaker at $C030 |
3 | ; with a delay controlling pitch and a fixed duration. |
4 | ; |
5 | ; modified for |
6 | ; Junior Computer |
7 | ; 2025-05-22 mchris |
8 | |
9 | .org $300 ; Start address (example) |
10 | |
11 | lda #$1 |
12 | sta PBDD ; set PB0 to output |
13 | mainloop: |
14 | jsr start |
15 | jmp mainloop |
16 | ; --- Constants --- |
17 | ;SPEAKER = $C030 ; apple2 |
18 | SPEAKER = PBD ; Junior Computer |
19 | ;PBD=$1A82 |
20 | |
21 | |
22 | ; --- Note pitch delay values --- |
23 | ; These delay values approximate frequencies for the Apple II speaker. |
24 | ; Smaller delay = higher pitch. |
25 | ; |
26 | ; Approximate values (tuned experimentally): |
27 | ; C4 = 191, D4 = 170, E4 = 151, F4 = 143, G4 = 127, A4 = 113, B4 = 101, C5 = 95 |
28 | |
29 | C4 = 191 |
30 | D4 = 170 |
31 | E4 = 151 |
32 | F4 = 143 |
33 | G4 = 127 |
34 | A4 = 113 |
35 | B4 = 101 |
36 | C5 = 95 |
37 | |
38 | pitch_delay =0 |
39 | duration_count= 1 |
40 | temp_duration=2 |
41 | |
42 | start: |
43 | LDY #0 ; Y = note index 0 |
44 | |
45 | play_next_note: |
46 | tya |
47 | pha |
48 | LDA notes,Y ; Load pitch delay for note Y |
49 | STA pitch_delay |
50 | |
51 | LDA durations,Y |
52 | STA duration_count |
53 | |
54 | ; einnal PlaySound ist zu kurz, mache mehrmals |
55 | JSR PlaySound ; Play the note |
56 | JSR PlaySound ; Play the note |
57 | JSR PlaySound ; Play the note |
58 | JSR PlaySound ; Play the note |
59 | |
60 | pla |
61 | tay |
62 | INY ; Next note |
63 | CPY #notes_length |
64 | BNE play_next_note |
65 | |
66 | RTS ; Return from program (or loop) |
67 | |
68 | ; --- PlaySound routine --- |
69 | ; Inputs: |
70 | ; pitch_delay (zeropage) - controls pitch (delay length) |
71 | ; duration_count (zeropage) - controls duration (number of toggles) |
72 | ; |
73 | ; apple: Toggles speaker at $C030 to generate tone. |
74 | ; Junior: PBD |
75 | |
76 | PlaySound: |
77 | LDY duration_count ; Load duration count into Y |
78 | |
79 | PlaySound_Loop: |
80 | STY temp_duration ; Save duration count temporarily |
81 | |
82 | ToggleLoop: |
83 | LDA SPEAKER ; Read speaker port (optional) |
84 | EOR #$1 ; Flip bits to toggle speaker |
85 | STA SPEAKER ; Write to speaker port |
86 | |
87 | LDX pitch_delay ; Load pitch delay into X |
88 | |
89 | DelayLoop: |
90 | DEX |
91 | BNE DelayLoop |
92 | |
93 | LDY temp_duration |
94 | DEY |
95 | BNE PlaySound_Loop |
96 | |
97 | RTS |
98 | |
99 | ; --- Note sequence --- |
100 | ;.segment "RODATA" |
101 | notes: |
102 | .byte C4, D4, E4, F4, G4, A4, B4, C5 |
103 | durations: |
104 | .byte 100,112,126,132,150,168,188,200 |
105 | |
106 | |
107 | notes_length = 8 |
108 | |
109 | PBD=$1A82 |
110 | PBDD=$1A83 |
Wenn man mehr Noten ( z.B. für 2 Oktaven ) haben will, wird man wohl nicht umhin kommen, 2 bytes für die Noten und die Notendauern zu verwenden.
Christoph M. schrieb: > STY temp_duration ; Save duration count temporarily Irgendwie überflüssig, oder? Ist wahrscheinlich noch ein Überbleibsel aus einer 16bit Delay-Routine?
Klaus (feelfree)
>Ist wahrscheinlich noch ein Überbleibsel aus einer 16bit Delay-Routine?
Hast Recht, da kann man sich etwas sparen.
Leider wird die echte 16Bit Version dann doch aufwändiger (siehe
Anhang).
Bei dieser Version sind es 31 Frequenzen. Da man die Wellenzahl und die
Periodenlänge braucht, sind das dann 4*31 Byte allein für die Tabellen.
Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit.
Die Frequenz habe ich mit dem manuell abgeglichen. Man könnte mit
Zyklenzählen und genau rechnen noch etwas Genauigkeit heraus holen.
Weilt der TE eigentlich noch unter uns?
Hallo liebe Leute, ich werde demnächst vielleicht ein Programm für Musik (ab)schreiben. Ich bitte darum es zu gestatten, das ich das Programm in Form von Maschinen-Sprache schreibe. Weil ich noch nicht so gebildet bin, habe ich dann mehr Platz bei den REM-Befehlen. Bei den Befehlen, schreibe ich die Adressierungs-Art dazu. Hallo Klaus, für Dich und -mich-, werde ich auch noch folgendes machen: Ich schreibe eine Warteschleife, dann ein Ton, dann wieder eine Warteschleife, und dann wieder eine Ton. - Dann wird folgendes Stück geplant. Ein Lied für ein Posthorn, mit dem Text: "Ta tü ta ta, die Post ist da." Gedanken zur Zeit, bzw. -Timer-. - Ich teile die Zeit auf in 3/4. Diese Zeit nenne ich: a'- Zeit, akademische Zeit, astronomische Zeit. Sie geht glatt auf, für den Computer; - dann hat ein 1/2 Tag 16 ak'h. Nach einem Tag, folgt die Nacht. Aber der Tag beginnt um 12 Uhr und wir sagen: Guten Tag. Warum? Dann brauchen die Astromen den Kalender nicht Umblättern, wenn sie nach den Sternen schauen, es geht hexadezimal glatt auf; oder auch gezimal(?) denn nächste Ziffernzeichen ist das "G", es lässt sich sogar 7-Segment-Code anzeigen. Ein kurzes Wort: "Gezi." ähnlich dem "Dezi." Das g geht doch, oder? Liebe Grüße Günter K. (ENK)
Christoph M. schrieb: > Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit. Da bist Du wohl der Einzige, der sich derartige Umstände noch antut. Alle anderen schreiben alles in eine Datei, die man dann nur noch einspielt (RS232, USB) oder in einen Flash brennt. Man muß seine Lebenszeit schließlich nicht mit Gewalt vernichten. Auch kommt man für ein Projekt kaum mit nur einer Sitzung aus, sondern will später noch daran weiter arbeiten. Da ist es sinnvoll den alten Stand auf dem PC verfügbar zu haben, bzw. sogar mehrere Stände (Versionsverwaltung). Schnell hat man Sackgassen eingebaut und will dann zu einem alten Stand wieder zurück.
Günter K. schrieb: > Gedanken zur Zeit, bzw. -Timer-. - Ich teile die Zeit auf in 3/4. > Diese Zeit nenne ich: a'- Zeit, akademische Zeit, astronomische Zeit. > Sie geht glatt auf, für den Computer; - dann hat ein 1/2 Tag 16 ak'h. > Nach einem Tag, folgt die Nacht. Aber der Tag beginnt um 12 Uhr und wir > sagen: Guten Tag. Warum? Dann brauchen die Astromen den Kalender nicht > Umblättern, wenn sie nach den Sternen schauen, es geht hexadezimal glatt > auf; > oder auch gezimal(?) denn nächste Ziffernzeichen ist das "G", es lässt > sich sogar 7-Segment-Code anzeigen. Ein kurzes Wort: "Gezi." ähnlich dem > "Dezi." > Das g geht doch, oder? Kann man diesen Text nun vollends als Verabschiedung aus unserer Realität betrachten?
Cyblord -. schrieb: > Kann man diesen Text nun vollends als Verabschiedung aus unserer > Realität betrachten? ich zumindest aus meiner.
Cyblord -. schrieb: > Günter K. schrieb: >> Gedanken zur Zeit, bzw. -Timer-. - Ich teile die Zeit auf in 3/4. >> Diese Zeit nenne ich: a'- Zeit, akademische Zeit, astronomische Zeit. >> Sie geht glatt auf, für den Computer; - dann hat ein 1/2 Tag 16 ak'h. >> Nach einem Tag, folgt die Nacht. Aber der Tag beginnt um 12 Uhr und wir >> sagen: Guten Tag. Warum? Dann brauchen die Astromen den Kalender nicht >> Umblättern, wenn sie nach den Sternen schauen, es geht hexadezimal glatt >> auf; >> oder auch gezimal(?) denn nächste Ziffernzeichen ist das "G", es lässt >> sich sogar 7-Segment-Code anzeigen. Ein kurzes Wort: "Gezi." ähnlich dem >> "Dezi." >> Das g geht doch, oder? > > Kann man diesen Text nun vollends als Verabschiedung aus unserer > Realität betrachten? Ich wette, nicht mal Günter versteht das, was er da geschrieben hat. Und ich wette, er wird es auch nie schaffen, ein Lied auf seinem Junior abzuspielen.
Klaus schrieb: > Ich wette, nicht mal Günter versteht das, was er da geschrieben hat. > Und ich wette, er wird es auch nie schaffen, ein Lied auf seinem Junior > abzuspielen. Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
Christoph M. schrieb: > Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit. Peter D. (peda) 23.05.2025 12:53 >>Da bist Du wohl der Einzige, der sich derartige Umstände noch antut. Eigentlich nicht, ich mache das per Pyhon-Script (compilieren, download in einem Rutsch) damit: Beitrag "6502 Emulator PiPico"
Hallo, liebe Leute, wie soll ichs sagen? - Ich stehe dazu, dass ich nicht so klug bin. Ich hatte mal gehört, dass Python keinen Compiler hätte; und weil - ich nicht weiß, wie ein Compiler funktioniert, - wollte ich was über Assembler lernen. - Und ich besorgte ein Büchlein über den 8086 und siehe da, - da hat dieser Assembler hat auch einen Assembler. CBM-BASIC hat keinen Assembler, sondern nur einen Interpreter. Und das bringt ich jetzt erst (jetzt im Moment) auf die Idee, - evtl. den -Fernschreiber- als Empfänger auf einem einfachen PC zu schreiben, denn das GW-BASIC für den PC, erschien mir noch besser, als das von Commodore. Ich möchte, -verstehen- können, was der Computer bzw. CPU macht. Und darum, tue ich mir die Tipp-Arbeit an, um so zu versuchen, die Beziehung zur Maschine zu behalten. Prima, toll, was Ihr so mit den Computern macht, find ich wirklich gut! Christoph M. schrieb: > Christoph M. schrieb: >> Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit. > Peter D. (peda) > 23.05.2025 12:53 >>>Da bist Du wohl der Einzige, der sich derartige Umstände noch antut. > > Eigentlich nicht, ich mache das per Pyhon-Script (compilieren, download > in einem Rutsch) damit: > Beitrag "6502 Emulator PiPico" Immerhin, habe ich ja jetzt auch einen PiPico. Gleich erwarte ich wieder Besuch, hab' aber schon gesagt, dass ich die Sachen u.a. für den Junior-Computer hier auf dem Tisch stehen habe. Was für mich auch noch interessant wäre, das wäre ein DISASSEMBLER. Liebe Grüße Günter K. (ENK)
Günter K. schrieb: > Ich stehe dazu, dass ich nicht so klug bin. Das ist nun wirklich kein Problem und das macht dir auch niemand zum Vorwurf. Im Gegenteil, der Großteil will dir ja helfen. Günter K. schrieb: > und siehe da, - da hat dieser Assembler hat auch einen Assembler. Aber so verwirrt wie deine Beiträge sind, würde ich mir an deiner Stelle nun wirklich langsam über eine beginnende Demenz Gedanken machen. Du bekommst wirklich keinen einzigen klaren Gedanken formuliert, und das schon seit vielen Monaten in diesem Thread.
Günter K. schrieb: > Was für mich auch noch interessant wäre, das wäre ein DISASSEMBLER. Relativ nutzlos. Selbst der beste Disassembler kann nicht die Intentionen des Codes Erstellers ermitteln. Übrigens: Um mal Werbung für Arduino zu machen... Ein AVR hat ca. 130 ASM Instruktionen. Relativ leicht zu lernen. Im Arduino Lieferumfang finden sich C und C++ Compiler. Dazu Assembler und auch ein Disassembler
Arduino F. schrieb: > ca. 130 ASM Instruktionen Danke für die Warnung. Ein anfängertauglicher Rechner würde mit 100 weniger auskommen.
Arduino F. schrieb: > Ein AVR hat ca. 130 ASM Instruktionen. Relativ leicht zu lernen. Da ist ein 6502 mit 56 Instruktionen irgendwie überschaubarer.
Nicht die Anzahl Befehle ist entscheidend, sondern ob dem eine übersichtliche Systematik zugrunde liegt.
:
Bearbeitet durch User
Harald K. schrieb: > mit 56 Instruktionen Wobei es alleine von MOV ca 1/2 Dutzend Varianten gibt, von denen keine einzige irgendwas moved/bewegt Für mich heißt "move" hier wegnehmen und woanders hin legen. Anders: Wenn man ein Auto von hier nach da moved ist hier nix mehr Auto. Nix 2 Autos, nach dem Move.
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.