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


von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:

> Da ich keine Juniorcomputer habe, versuche ich es mit einem
> zusammengebastelten Simulator. Der kommt aber irgendwie auf 537.6Hz.
> Ob es am Simulator liegt oder am Programm, versuche ich gerade
> herauszufinden.

Du hast nur die Delay-Routine beruecksichtigt: ldx 2 cyc, jsr kostet 6 
cyc, STA und LDA je 4 cyc, EOR 2 cyc und der JMP kostet 3cyc -> 21 Cyc 
dazu (pro Durchgang loop).

Bei Deiner ShortDelay-Routine sollte 5*n + 2 + 6 (5N+8) sein.

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


Lesenswert?

Harald K. schrieb:
>> Aber wo, werden diese gespalten in Y und X?
>
> 3822 = 0x0eee
>
> Also liegt die "Spaltung" bei 0x0e und 0xee
>
> 0xee kommt in das schneller herabgezählte Register, 0x0e in das andere,
> das erst bei Unterlauf des schnelleren Registers herabgezählt wird.

Hallo Harald K. ,

auf jeden Fall, DAKESCHÖN! Das ist richtig! Ja, das sehe ich genauso.
Zufälliger Weise, habe ich es mit den gleichen Versuchen eingetragen.
Prima, gut gemacht!

Im Moment habe ich um die 30 Hz.

Also, wenn Töne getroffen werden, wäre das ja auch schon gut,
Natürlich versuche ich das Wohl-Temperierte-System, -;
und wenn es nur die Pythagoreische wäre.
[Dafür müssten dann die schwarzen Tasten gespalten werden;
das ist natürlich quatsch :-))  ]
Jetzt geht es nur um 8 Töne, am Besten in C-Dur.

Dabei fällt mir ein, ich lege in den oberen Bereich
einfach einen 2er-Faktor
über FF Wie 16, 32, 64, o. ä. -. - D.h.: 01, 10, 100, o. ä. -.
Als Wellenlänge sind die längeren Wellen genauer.
Als Frequenz ist der obere Bereich genauer.
39 Wellen auf den Skop, für das "G" das wäre schon was.

Also ich experimentiere Weiter,
Liebe Grüße
Günter K.

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Rein rechnerisch würde ich ja sagen, dass es so stimmt.
> Da ich keine Juniorcomputer habe, versuche ich es mit einem
> zusammengebastelten Simulator. Der kommt aber irgendwie auf 537.6Hz.
> Ob es am Simulator liegt oder am Programm, versuche ich gerade
> herauszufinden.

Bei einem real Junior Computer mit einem ganzen MHz bekomme ich (mit 
Deinem Programm) 432.5Hz lt. Logicanalysator.

Wenn Du in Zeile 10 Deines Programmes LDX $DE (= 222 dec), bekommst Du 
440.1Hz (lt. des Logic-Analysator)

Das Prograemmle:
1
.ORG  $300
2
PAD EQU $1A80
3
PADD equ $1A81
4
PBD equ $1A82
5
PBDD equ $1A83
6
7
; generate a 440 Hz square wave
8
9
    lda #$1
10
    sta PBDD     ; set PB0 to output
11
loop:
12
    ldx #222     ; 5us×222+5us
13
    jsr shortdelay
14
    lda PBD      ; Read port B
15
    eor #$01     ; Toggle bit 0
16
    sta PBD      ; Write back
17
    jmp loop
18
19
shortdelay:
20
    dex             ; 
21
    bne shortdelay  ; 
22
    rts             ;

und der Hexcode zum Selbst-in den Junior tickern:
1
0300: A9 01 8D 83 1A A2 DE 20
2
0308: 15 03 AD 82 1A 49 01 8D
3
0310: 82 1A 4C 05 03 CA D0 FD
4
0318: 60

Ja, das waren die alten Zeiten, und ich bin froh, dass das Geschichte 
ist.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Thomas W. (datenreisender) 04.05.2025 14:30
>Bei einem real Junior Computer mit einem ganzen MHz bekomme ich (mit
>Deinem Programm) 432.5Hz lt. Logicanalysator.

Oh, super cool, danke :-)
Ich war mir auch nicht sicher ob man den Port der PIA für das EOR zurück 
lesen kann. Die Frage hast Du damit gleich mit beantwortet.

von Re (r42)


Lesenswert?

Thomas W. schrieb:
> Wenn Du in Zeile 10 Deines Programmes LDX $DE (= 222 dec), bekommst Du
> 440.1Hz (lt. des Logic-Analysator)

Was ist eigentlich mit den Interrupts für Tastatur und Display, die 
derzeit  noch zwischenfunken und zu (aus Sicht des Hauptprogramms) 
unbestimmten Zeitpunkten zusätzliche erratische Verzögerungen bewirken?

Ich habe den Verdacht, dass das die Pythagoreische Stimmung noch ein 
wenig trüben könnte.  ;-)


Thomas W. schrieb:
> Ja, das waren die alten Zeiten, und ich bin froh, dass das Geschichte
> ist.

Jepp. Früher war alles besser - vor allem die Zukunft! (Lesch?)

(re)

von Christoph M. (mchris)


Lesenswert?

Re (r42) 04.05.2025 19:17
>Was ist eigentlich mit den Interrupts für Tastatur und Display, die
>derzeit  noch zwischenfunken und zu (aus Sicht des Hauptprogramms)

Wer sagt denn, dass es Interrupts gibt?

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Günter K. (enk) 04.05.2025 13:04
>Also, wenn Töne getroffen werden, wäre das ja auch schon gut,
>Natürlich versuche ich das Wohl-Temperierte-System, -;
>und wenn es nur die Pythagoreische wäre.

Ich meine fast, dass auch nur 1 Byte für 8 Frequenzen reicht:
1
    ;*****************************************************************************
2
    ; 
3
    ; erzeuge eine Tonleiter mit Rechecktönen
4
    ;
5
    ; Zielfrequenzen
6
    ; f =   261.63   293.66   329.63   349.23   392.00   440.00   493.88   523.25
7
    ;
8
    ; Hardware: 6502, fcpu=1MHz
9
    ; 
10
    ;*****************************************************************************
11
12
    lda #$1
13
    sta PBDD     ; set PB0 to output
14
15
mainloop:
16
    ; C
17
    lda #200
18
    sta 0 ; teiler register
19
    jsr playnote
20
21
    ; D
22
    lda #158
23
    sta 0 ; teiler register
24
    jsr playnote
25
26
    ; E
27
    lda #121
28
    sta 0 ; teiler register
29
    jsr playnote
30
31
    ; F
32
    lda #104
33
    sta 0 ; teiler register
34
    jsr playnote
35
36
    ; G
37
    lda #73
38
    sta 0 ; teiler register
39
    jsr playnote
40
41
    ; H
42
    lda #45
43
    sta 0 ; teiler register
44
    jsr playnote
45
46
    ; A
47
    lda #20
48
    sta 0 ; teiler register
49
    jsr playnote
50
51
    ; C
52
    lda #9
53
    sta 0 ; teiler register
54
    jsr playnote
55
56
    jmp mainloop
57
58
playnote:
59
    ldy #50 ; duration
60
61
loop:
62
    ; default delay
63
    ldx #180        ; 5us×179+5us=900us
64
    jsr shortdelay  ; 6 cyles
65
66
    ; additional dela
67
    ldx 0 ; teiler register
68
    jsr shortdelay
69
70
    lda PBD      ; Read port B
71
    eor #$01     ; Toggle bit 0
72
    sta PBD      ; Write back
73
    dey
74
    bne loop
75
    rts
76
77
    ; Total time (in microseconds)=5N+5
78
shortdelay:
79
    dex             ; 2 cyc
80
    bne shortdelay  ; 3 cyc jmp , 2 no jmp
81
    rts             ; 6 cyc
82
83
84
; MOS6532 PIA addreses
85
        org $1A80
86
PAD:
87
88
        org $1A81
89
PADD:
90
91
        org $1A82
92
PBD:
93
94
        org $1A83
95
PBDD:

Im Anhang der Sound, wie er vom Emulator erzeugt über den 
Fernsehlautsprecher abgespielt klingt.

von Re (r42)


Lesenswert?

Christoph M. schrieb:
> Re (r42) 04.05.2025 19:17
>>Was ist eigentlich mit den Interrupts für Tastatur und Display, die
>>derzeit  noch zwischenfunken und zu (aus Sicht des Hauptprogramms)
>
> Wer sagt denn, dass es Interrupts gibt?


Nur so eine Vermutung:

Günter K. schrieb:
> Dabei geht es mir nicht darum, - das Keyboard nicht zu bauen,
> sondern sich die Spielerei zu erlauben, die schon gegebene Tastatur zu
> benutzen.

Irgendwie muss die Tastatur ja abgefragt werden, wenn sie mal zum 
Spielen benutzt wird.

Könnte man natürlich auch als Teil der Verzögerungsschleife machen.

(re)

von Klaus (feelfree)


Lesenswert?

Re schrieb:
> Irgendwie muss die Tastatur ja abgefragt werden, wenn sie mal zum
> Spielen benutzt wird.

Das wird dann im weiterführenden Experten-Kurs im Jahre 2027 realisiert.

von Thomas W. (datenreisender)


Lesenswert?

Ich hatte je die Junior-Handbuecher verlinkt, dort wird auch erklaert, 
wie die Tastatur und das Display angesteuert wird.

Hint: Keine Interrupts. Kein UART. I/O (sowohl seriell als auch Tape) im 
Polling. Das waren die Achtziger.

von Josef G. (bome) Benutzerseite


Lesenswert?

Thomas W. schrieb:
>
1
> shortdelay:
2
>     dex             ;
3
>     bne shortdelay  ;
4
>     rts             ;
5
>
Wobei man beachten sollte, dass beim 6502 die Dauer des BNE
davon abhängt, ob eine 256-Byte-Grenze übersprungen wird.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Günter K. schrieb:
>> Ich weiß aber noch nicht, - was ich wo, einordnen sollte? XY oder YX
>
> Auch wenn ich befürchte, dass du die Analogie nicht verstehst:
>
> Nehmen wir an, du musst 1000 Sekunden warten, kannst aber nur bis 100
> zählen.
> Ist es dann egal ob du 10 mal 100 Sekunden wartest oder 100 mal 10
> Sekunden?

Ganz einfach (doch so(!) einfach ist es nicht!)
Ich zähle so und sooft das Y hoch, die dann jedes Mal ebenfalls auch, so 
und sooft multipliziert wird, bis die passende Zahl erreicht wird.
Allerdings mit dem Vorteil, dass das verbleibende X jedes Mal nur einmal 
vorkommt.
Bis der entsprechende
Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 5 Wellen dazu, dann
habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert 
ergibt 440 Hz.
Den Wert für das A4 hat mir jemand von Euch geschickt.

Ich bekomme gerade Besuch, und melde mich später nochmal.
Liebe Grüße
Günter K.
(Enk)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ganz einfach (doch so(!) einfach ist es nicht!)
> Ich zähle so und sooft das Y hoch, die dann jedes Mal ebenfalls auch, so
> und sooft multipliziert wird, bis die passende Zahl erreicht wird.
> Allerdings mit dem Vorteil, dass das verbleibende X jedes Mal nur einmal
> vorkommt.
> Bis der entsprechende
> Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 5 Wellen dazu, dann
> habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert
> ergibt 440 Hz.

Gute Besserung!

von Harald K. (kirnbichler)


Angehängte Dateien:

Lesenswert?

Weiter oben ist ein nicht besonders gut lesbarer Schaltplan gepostet, 
hier gibts einen besseren.

(Quelle: 
http://retro.hansotten.nl/wp-content/uploads/2022/10/schematic_junior_computer.jpg. 
Da da schon jpg, hab' ich das jetzt nicht konvertiert)

Der 6532 könnte einen Interrupt auslösen, das ist der einzige Baustein, 
der an der /IRQ-Leitung des 6502 angeschlossen ist.

von Christoph M. (mchris)


Lesenswert?

Harald K. (kirnbichler)
05.05.2025 07:44
>Der 6532 könnte einen Interrupt auslösen, das ist der einzige Baustein,
>der an der /IRQ-Leitung des 6502 angeschlossen ist.
Darüber hatte ich auch schon nachgedacht. Das Thomas oben erwähnte 
Beispielprogramm funktioniert ohne.
Die Frage ist, ob die Auflösung des 6532 eine genügend granulare 
Frequenz für die Rechtecktonerzeugung hergibt.
Die Frage ist aber auch, ob man wirklich den 6532 verwenden will. Falls 
man die gewonnen Erkenntnisse auf einen Apple 2 übertragen wollte, ginge 
das nicht, weil der diesen Chip nicht hat. Außerdem ist dieser Chip für 
den Bau eines echten Retro-Computers kaum zu bekommen.

von Harald K. (kirnbichler)


Lesenswert?

Christoph M. schrieb:
> Die Frage ist, ob die Auflösung des 6532 eine genügend granulare
> Frequenz für die Rechtecktonerzeugung hergibt.

Wenn Du über den Timerinterrupt gehen willst, ist dessen Quelltakt 
offensichtlich der Systemtakt (hier: 1 MHz). Als Vorteiler kann 1, 8, 64 
oder 1024 verwendet werden, und der Timer selbst ist ein 8-Bit-Timer. 
Der steuert allerdings keinen I/O-Pin, sondern nur die Interruptleitung 
an, d.h. man muss für Timingbetrachtungen auch noch den Overhead eines 
Interruptaufrufs berücksichtigen.

> Die Frage ist aber auch, ob man wirklich den 6532 verwenden will.

Da der im vorliegenden Computer drinsteckt, warum nicht? Es geht dem 
Threadstarter darum, seine Programmierübungen auf dem Gerät zu machen, 
was er hat, nicht, sich Gedanken um irgendwelche anderen Computer zu 
machen.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Auch wenn ich befürchte, dass du die Analogie nicht verstehst:
>
> Nehmen wir an, du musst 1000 Sekunden warten, kannst aber nur bis 100
> zählen.
> Ist es dann egal ob du 10 mal 100 Sekunden wartest oder 100 mal 10
> Sekunden?


Hallo Klaus,

hier ist es mir wichtig, ein extra Dankeschön zu sagen.
Und Danke an alle.

Also spielt es keine Rolle ob gerade das X- oder Y-Register 
herunterzählt.
Inzwichen habe ich auch gelesen, dass durch Lesen eines Bytes eine 
ausreichende Genauigkeit erreicht werden kann.

Bei einer Frequenz von 49 Hz als G und 6 Wellen dazu sind 55 Hz als A.
Das entspricht ungefähr der 6er Wurzel aus 2.
Das ist ein Abstand von einem ganzen Ton.

Erdachte mir aber noch einen Lösungsweg.
Ich fange ganz oben an abzuzählen bei eine ganz Hohe Frequenz.
Dann mache ich eine Liste dieser Frequenzen, wenn die passenden "f"
dabei sind wird vielfach mit dem Faktor 2 heruntergeteilt,
biss ich in dem passenden Bereich bin.
Übrigens, das mit G und A, gibt es auch so ähnlich, zwichen Fis und G,
hierbei handelt es sich ungefähr um die 12er Wurzel aus 2.
Liebe Grüße
Günter K.
(ENK)

PS.: Ich bekomme gleich Besuch,
Wenn ich die Zahlen ausgerchnet habe,
komme ich auch nochmal auf das Fis und G und A zurück;
hat aber nicht direkt was mit dem Herunterzälen zu tun,
sondern nur indirekt. - Bis später.

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Harald K. (kirnbichler) 05.05.2025 08:10

>Wenn Du über den Timerinterrupt gehen willst ..

Danke für den Hinweis.

Ich versuche gerade herauszukriegen, wie der Timer im 6532 genau 
funktioniert.
Wenn ich es richtig verstehe (Anhang), sollte das Schreiben eines 
Start-Bytes auf Base-Adresse + 0x17 den Vorteiler auf 1024 setzten, 
Interrupts "disablen". Danach zählt der Timer vom Startwert aus 
herunter.

Witzig an dieser historischen Technik ist, dass der Vorteiler über die 
Adressierung gesetzt wird, dass spart ziemlich Zeit.

Liege ich mit meinen Annahmen richtig?

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Wenn ich die Zahlen ausgerchnet habe,

Die passenden Zahlen für die Verzögerungsschleife für eine ganze 
Tonleiter sind bereits im Beitrag

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

enthalten, kein Grund die neu zu berechnen.

von Soul E. (soul_eye)


Lesenswert?

Klaus schrieb:
> Günter K. schrieb:
>> Wenn ich die Zahlen ausgerchnet habe,
>
> Die passenden Zahlen für die Verzögerungsschleife für eine ganze
> Tonleiter sind bereits im Beitrag
>
> Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
>
> enthalten, kein Grund die neu zu berechnen.

Man findet die Werte auch in dem oben verlinkten Buch. Zusammen mit der 
Musterlösung zum Einlesen der Klaviatur und zur Tonerzeugung.

Aber durch Abtippen lernt man nichts, da ist selbermachen sinnvoller.

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Harald K. (kirnbichler) 05.05.2025 08:10
>
>>Wenn Du über den Timerinterrupt gehen willst ..
>
> Danke für den Hinweis.
>
> Ich versuche gerade herauszukriegen, wie der Timer im 6532 genau
> funktioniert.

Wenn Du Interesse hast, das Junior Buch Band 2, hat ein komplettes 
Kapitel fuer die 6532.

hier:

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

Seite 33 bis 99.

Ich habe die vier Elektor-Buecher in den 1980'er gekauft, n-mal 
umgezogen (n > 5), aber so haeufig wie in den letzten zwei -  drei 
Monaten habe ich die nie benutzt!

Gruesse

Th.

P.S.: Interrupt war wohl fuer Elektor nicht so spannend (oder zu 
kompliziert), sowohl bei der 6502 als auch bei der z80 (die ein deutlich 
besseres Konzept hat) wurde der Interrupt nie benutzt.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Thomas W. (datenreisender)
05.05.2025 21:06
>Wenn Du Interesse hast, das Junior Buch Band 2, hat ein komplettes
>Kapitel fuer die 6532.
>hier:
>http://retro.hansotten.nl/uploads/junior/books/de/...
>P.S.: Interrupt war wohl fuer Elektor nicht so spannend (oder zu
>kompliziert), sowohl bei der 6502 als auch bei der z80 (die ein deutlich
>besseres Konzept hat) wurde der Interrupt nie benutzt.

Für heutige Verhältnisse scheint mir das Timer-Modul etwas umständlich 
erklärt. Aber ab Seite 77 hat der Autor tatsächlich Interrupts in 
Verwendung (Allerdings auch ziemlich aufwändig ..).

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich fange ganz oben an abzuzählen bei eine ganz Hohe Frequenz.
> Dann mache ich eine Liste dieser Frequenzen, wenn die passenden "f"
> dabei sind wird vielfach mit dem Faktor 2 heruntergeteilt,
> biss ich in dem passenden Bereich bin.
> Übrigens, das mit G und A, gibt es auch so ähnlich, zwichen Fis und G,
> hierbei handelt es sich ungefähr um die 12er Wurzel aus 2.

Mann kann sich natürlich alles völlig von Null erarbeiten. Dann wird man 
halt nie fertig bzw. kommt nie zur eigentlichen Aufgabe.

Ich dachte Du willst programmieren lernen, nicht die Grundlagen einer 
Tonleiter herleiten.

Mein Vorgehen wäre deshalb:
Ich such mir die Frequenzen der Töne, die ich erzeugen will, kurz über 
google zusammen. Dauert 10 Sekunden.

Beispiel für die Note C4:

C4 =  261,626 Hz, entspricht einer Periodendauer von 1/261 = 3822us.
Wir brauchen aber die halbe Periodendauer (jeweils mit Ausgang 0 bzw. 
1), also 3822 = 1911 us. Solange muss man warten, bis der Ausgang 
umgeschaltet wird. Die einfache Verzögerungsschleife braucht 5 
Taktzyklen = 5us pro Wert, also muss die Schleife 1911us/5us = 382mal 
durchlaufen werden.

Weil 382 größer ist als 255 (die mit 8 Bit größte darstellbare Zahl), 
muss man sich etwas einfallen lassen.
Im Progrämmchen von Christoph oben wird die Verzögerungsroutine halt 2 
mal aufgerufen, einmal mit 180 und einman mit 200. Die Summe 380 ist 
noch exakter als meine oben berechneten 382, weil es auch noch feste 
Verzögerungen im Programmablauf gibt. Aber das sind Feinheiten, die am 
Anfang überhaupt nicht interessieren.

Genausogut könnte man sich eine Verzögerungsschleife überlegen, die 
länger als 5us braucht, z.B. 10us. Dann muss man sie nur mit dem Wert 
382/2=191 aufrufen, was wieder mit einem einfachen Zähler geht.

Oder man nimmt halt eine veschachtelte Schleife mit 2 Zahlen, also 
2x191, 4x95, 8x48 oder was einem beliebt und möglichst genau 382 ergbit. 
Das ist halt die komplizierteste Variante.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:

Günter K. schrieb im folgenden Text:
> Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 5 Wellen dazu, dann
>> habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert
>> ergibt 440 Hz.

Da habe ich mich vertippt, ich meinte aber:

"Nimmt man die 49 Hz, dann ist das G1, zähle ich noch 6 Wellen dazu, 
dann
habe ich mit den 55 Hz das A1. Nimmt man die 55 Hz mal 4 multipliziert
ergibt 440 Hz."

 von Soul E. (soul_eye)schrieb am 05.05.2025 um 19:48 :
"Aber durch Abtippen lernt man nichts, da ist selbermachen sinnvoller."

Günter K. schreibt:
Hallo, und Danke für die Antwort. Ich muss mich noch mehr damit 
befassen;
so, dass ich es selber machen und verstehen kann. In diesem Falle, die 
Werte in dem Y- und X-Register in Bezugnahme auf Wellenlänge und 
Frequenz.

Bitte hierauf noch nicht antworten.
Ich muss mich selber genug damit beschäftigen, damit ich es verstehe. - 
Falls ich danach, immer noch nicht verstanden habe, danach melde ich 
mich evtl. noch mal mit Fragen. Bis jetzt habe ich es noch nicht richtig 
genug verstanden.

Liebe Grüße Grüße
Günter Ja,
(ENK)

von Christoph M. (mchris)


Lesenswert?

> Nimmt man die 55 Hz mal 4 multipliziert ergibt 440 Hz."

Mathematisch kommt mir das seltsam vor. Mein Taschenrechner sagt:
>> 55*4
ans = 220

von Günter K. (enk)


Lesenswert?

von Klaus (feelfree)
05.05.2025 22:38:

Mann kann sich natürlich ... kommt nie zur eigentlichen Aufgabe. ...
Ich dachte Du willst programmieren lernen, ...
Mein Vorgehen wäre deshalb: ...
C4 =  261,626 Hz, entspricht ... usw.

Dazu schreibe ich:
Das ist hervorragend sehr gut!! EIN VIELFACHES DANKESCHÖN!!
        ======================= ===========================

Natürlich möchte und will ich programmieren lernen.
Gibt es u. a. kurze Beispiele um so, das Verhalten des Prozessors und 
dem
Computer zu verstehen? Aber schon bei dem Z80, Mikro-Professor, kam ich 
nicht zurecht, weil da viel zu viele Informationen waren, von denen ich 
nicht wusste, wozu sie auch gehörten. Bei dem 6502 erscheint es mir 
einfacher.

Ich bin begeistert von Deinen sehr guten Erklärungen!
Besonders auch die Idee mit den Verschachtellungen. Prima.

Gibt es Programmier-Beispiele, die gleichzeitig(also hintereinander)
Wenige Befehle mit Aderessierungsart vorgegeben sind, um zu sehen
wie der Prozessor und der Computer reagiert?
Jetzt will ich fürs Erste, mal bei dem 6502 bleiben.

Zu viele Gedanken über Toleranzen, Schalt-Hysterese und dessen 
Interferenzen mache ich mir jetzt noch nicht, - ich freue mich ja,
kleine Erfolge zu sehen. Schwierige Fragen kommen erst später.
Aber dabei fällt mir ein:
Bei Zahlen die > 127 sind, muss man da das N-Flag ausschalten?

Ein Dankeschön, auch an alle anderen Leute hier.
Selbst Deinen Beitrag, hatte ich noch nicht gelesen.
Mit lieben Grüßen
Günter K
(ENK)

von Christoph M. (mchris)


Lesenswert?

> Bei Zahlen die > 127 sind, muss man da das N-Flag ausschalten?

Am besten ist es, wenn du deine Fragen hier eingibst:
https://www.perplexity.ai

Du solltest aber den Kontext zuerst erwähnen: 6502

von Christoph M. (mchris)


Lesenswert?

Hier mal der Versuch, den Timer ohne Interrupt zu verwenden.
Wenn ich es richtig verstehe, kann man den Timer wohl einfach durch das 
Beschreiben der entsprechenden Adresse starten.

Das Programm sollte also folgendes machen:
1. Timer starten
2. Warten bis abgelaufen
3. Portpin rumdrehen
4. Jump zu 1.

Das wäre dann auch eine einfache Möglichkeit, einen Ton zu erzeugen.

Kann es von euch mal jemand ausprobieren? Ich habe nur eine Simulation 
und weiß nicht, ob sie der Realität entspricht.
1
    lda #$1
2
    sta PBDD     ; set PB0 to output
3
4
start:
5
    lda #18
6
    sta TIMER_DIV64 ; starte timer mit prescaler 64, sollte ca. 430Hz ergeben
7
8
wait:
9
    lda TIMER_READ
10
    bne wait ; Warte, bis timer 0
11
12
    ; port B0 umschalten
13
    lda PBD     ; Read port B
14
    eor #$01    ; Toggle bit 0
15
    sta PBD     ; Write back
16
17
    jmp start
18
19
; MOS6532 PIA addreses
20
21
22
        org $1A82
23
PBD:
24
25
        org $1A83
26
PBDD:
27
28
        org $1A84 ; timer read register
29
TIMER_READ:
30
31
        org $1A96 ; address to start timer prescaler 64 and no Interrupt
32
TIMER_DIV64:
33
34
"""

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> Das Programm sollte also folgendes machen:
> 1. Timer starten
> 2. Warten bis abgelaufen
> 3. Portpin rumdrehen
> 4. Jump zu 1.

Es "gutes" Beispiel, wie man einen Timer maximal sinnlos verwenden kann. 
Eine Warteschleife kann die CPU auch allein. Und die IO-Register 
definiert man als Konstanten und nicht Labels. Auch wenn das Ergebnis 
das Gleiche ist.

PBD = $1A82
PBDD = $1A83

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Falk B. (falk) 06.05.2025 11:58
>Es "gutes" Beispiel, wie man einen Timer maximal sinnlos verwenden kann.

Nicht für jeden ergibt sich der gleiche Sinn. Das Beispiel ist dafür da, 
die Implementation des 6532 meines Emulators zu testen.

>Und die IO-Register
>definiert man als Konstanten und nicht Labels. Auch wenn das Ergebnis
>das Gleiche ist.

Könnte ich, wenn es mein Assembler hergäbe. Da ich den nun aber von hier 
habe
https://github.com/dj-on-github/py6502
geht's so nicht.
1
PBD = $1A82  
2
PBDD = $1A83

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


Lesenswert?

Günter K. schrieb:
> Aber schon bei dem Z80, Mikro-Professor, kam ich
> nicht zurecht, weil da viel zu viele Informationen waren, von denen ich
> nicht wusste, wozu sie auch gehörten. Bei dem 6502 erscheint es mir
> einfacher.

Hmm...
Wundert mich.
Mir erscheint der Z80 einfacher/logischer.
Und von Rodney Zaks auch perfekt und umfassend erklärt

Wie auch immer:
Jedem sein eigenes Himmelreich.

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


Lesenswert?

Arduino F. schrieb:
> Mir erscheint der Z80 einfacher/logischer.

Einfach und logisch ist die 8080. Die Z80 ist etwas zu hybrid.

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
>>> 55*4
> ans = 220

Oh, je, ja stimmt!
Liebe Grüße
Günter K.
(ENK)

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


Lesenswert?

(prx) A. K. schrieb:
> 8080

Die ASM Mnemonics sind beim Z80 einheitlicher.

Aber letztendlich eine Geschmackssache, historisch, und damit heute 
quasi irrelevant.

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


Lesenswert?

Arduino F. schrieb:
> Hmm...
> Wundert mich.
> Mir erscheint der Z80 einfacher/logischer.
  Andere Leute die ich kenne, sagen das auch.
> Und von Rodney Zaks auch perfekt und umfassend erklärt
>
> Wie auch immer:
> Jedem sein eigenes Himmelreich.

Nun ja, wenn ich die weiteren Bücher, die Rodney Zaks vorschlug,
über das Interne des Mikroprozessors lese, würde das wohl stimmen.
Den Mikro-Professor habe ich von einer guten Bekannten von mir.

Wie ich las, hat er ja auch Bücher über den 6502 geschrieben.
Das Lob für ihn ist wohl, wohl verdient.

Nur muss ich mal versuchen mit dem, das mir einfacher erscheinende etwas
zu tun. Dazu habe ich alle Befehle und Adressierungsarten auf einem 
Blatt.
Was aber noch lange nicht heißt, dass ich sie alle verstanden habe, aber 
immerhin, sie stehen auf einem Blatt. :-)
Liebe Grüße
Günter K.
(ENK)

PS.:
Im Grunde genommen, ist es in all diesen Fällen, ja immer logisch.

: Bearbeitet durch User
von Thomas Z. (usbman)


Lesenswert?

Günter K. schrieb:
> Nur muss ich mal versuchen mit dem

Versuchen reicht nicht! Machen ist das Zauberwort... Es hilft auch 
nichts alles mal auf eine Seite zu schreiben. Statt wochenlang über wohl 
temperierte Klangerzeugung zu reden, die es bei einem Rechteck Signal 
sowieso nicht gibt, könntest du ja mal versuchshalber einfach ein 440Hz 
Signal generieren.

Ich gehe jede Wette ein dass du noch kein funktionsfähiges Programm 
geschrieben hast, was zumindest  einen BEEP ausgegeben hat.

Beispiele wie das geht hast du ja schon einige erhalten. Die willst du 
aber nicht nehmen. Dagegen schurbelst du darüber wie einfach doch die 
Ton Erzeugung ist und verwechselt permanent Hex Zahlen mit Dezimal 
Zahlen. Dazu erklärst hier hier dass der Z80 so kompliziert ist und der 
Rodney auch ein Buch über den 6502 geschrieben hat.

Du blabberst von Adressierungsarten hast aber keinen Schimmer von deren 
Bedeutung.

von Roland F. (rhf)


Lesenswert?

Hallo,
Günter K. schrieb:
> Wie ich las, hat er ja auch Bücher über den 6502 geschrieben.

Ja, hat er. Und wenn ich hier so lese wie schwer du dich mit der Materie 
tust, rate ich dir dringend zumindest die Ausgabe "Programmierung des 
6502" zu besorgen.
Und im Buch "6502 Anwendungen" wird im Kapitel 5 ausführlich erklärt wie 
man mit Hilfe eines 6522 Töne erzeugt.

rhf

von Thomas Z. (usbman)


Lesenswert?


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


Lesenswert?

Es würde schon ausreichen, die Elektor Bücher zum Junior konsequent 
durchzuarbeiten. Die beziehen sich immerhin direkt auf die vorhandene 
Hardware!

von Roland F. (rhf)


Lesenswert?

Hallo,
Thomas Z. schrieb:
> Ob das so weiterhilft

Ich fürchte nein.

Wolfgang R. schrieb:
> Es würde schon ausreichen, die Elektor Bücher zum Junior konsequent
> durchzuarbeiten. Die beziehen sich immerhin direkt auf die vorhandene
> Hardware!

Ich glaube dem steht entgegen das Günter eigene Vorstellungen davon hat 
wie man einen Prozessor programmiert und er mit den üblichen Unterlagen 
nichts rechtes anzufangen weiß.

rhf

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
>> Bei Zahlen die > 127 sind, muss man da das N-Flag ausschalten?
>
> Am besten ist es, wenn du deine Fragen hier eingibst:
> https://www.perplexity.ai
>
> Du solltest aber den Kontext zuerst erwähnen: 6502

Hallo Christoph M.

Danke, das geht ganz automatisch.
Liebe Grüße
Günter K.
(ENK)

von Christoph M. (mchris)


Lesenswert?

>Danke, das geht ganz automatisch.

Apropos:
Wenn du nicht mehr von Hand assemblieren willst, gehe auf folgende 
Seite:

https://www.masswerk.at/6502/assembler.html

Tippe dort im linken Fenster folgendes ein:
1
.org $300
2
loop:
3
adc #1
4
jmp loop

Drücke rechts unten auf "Assemble". Dann erscheint der Maschinencode in 
Hexadezimalzahlen.

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> Apropos:
> Wenn du nicht mehr von Hand assemblieren willst, gehe auf folgende
> Seite:

Das haben wir schon mehrfach empfohlen. Scheint aber nicht so ganz 
durchgedrungen zu sein. Was aber nicht übersaschend ist . . .

von Günter K. (enk)


Lesenswert?

Thomas Z. schrieb:
> Günter K. schrieb:
>> Nur muss ich mal versuchen mit dem
>
> Versuchen reicht nicht! Machen ist das Zauberwort... ...Statt wochenlang über 
wohl temperierte Klangerzeugung ... ...
> sowieso nicht gibt, könntest du ja mal versuchshalber einfach ein 440Hz
> Signal generieren.
Günter K. schreibt:
Das habe ich, aber noch nicht gezeigt; - das folgt gleich.
> Ich gehe jede Wette ein dass du noch kein funktionsfähiges Programm
> geschrieben hast, was zumindest  einen BEEP ausgegeben hat.
Günter K. schreibt:
  Das stimmt. Zwar habe ich das Signal erzeugt, aber nicht gehört.
  Habe einen kleinen Lautsprecher u. Platinen(Isolation) dazu gekauft, 
noch
  nicht eingebaut. - Aber einen Aktivlautsprecher habe ich noch 
andernorts.
> Beispiele wie das geht hast du ja schon einige erhalten. Die willst du
> aber nicht nehmen. (Weil hier nicht so sehr relevant, gehe ich hier nicht
hier an dieser Stelle auf die wohl temperierte Klangerzeugung ein.
Günter K. schreibt:
Doch, aber damit komme ich noch nicht so gut zurecht.
> Dagegen schurbelst du darüber wie einfach doch die
> Ton Erzeugung ist und verwechselt permanent Hex Zahlen mit Dezimal
> Zahlen.
Günter K. schreibt: Wo?
> Dazu erklärst hier hier dass der Z80 so kompliziert ist und der
> Rodney auch ein Buch über den 6502 geschrieben hat.
Ich werde es kaufen.
> Du blabberst von Adressierungsarten hast aber keinen Schimmer von deren
> Bedeutung.
Günter K. schreibt:
Tatsächlich, habe ich erst vor kurzem die R.-Adressierungsart gelernt, 
was
Wolfgang R. -sehr gut- erklärt hat. - Mit der Adressierungsart der
indiziert-indirekte und indirekt-indizierte Adressierung muss ich mich 
noch mit beschäftigen.
Unser Lehrer sagte damals zu den eben genannten Adressierungsarten:
"Ja, da stolpern Andere auch." Ich muss mich aber noch mit dem 6532 
beschäftigen, sonst komme ich aus der Schleife nicht mehr raus, wenn ich 
weitere Programmteile einbringen will. Die 440 Hz folgen gleich.
Ich habe hier an Thomas Z. geantwortet, weil mir die Formulierung in 
seinem Stil, etwas zu fraglich erschien.
Ich bedanke mich bei Dir und ich bedanke mich bei Allen das ist sehr 
gut.

Damit es nicht so umständlich wird, schicke ich das 440 Hz-Prg. im 
folgenden Beitrag.
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Angehängte Dateien:

Lesenswert?

Hallo Leute:
Das 440 Hz-Prg.

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

PS.:
Ist die Datei angehängt?
440 Hz.xlsx

von Alexander S. (alesi)


Lesenswert?

Günter K. schrieb:
> Ist die Datei angehängt?
> 440 Hz.xlsx

Ja, aber Programme schreibt man doch nicht in Excel und man speichert 
sie auch nicht im Excel-Format (xlsx), sondern als normale Textdatei (.S 
.c oder .txt). Dann kann man das Programm auch direkt im Browser 
anschauen.

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


Lesenswert?

Alexander S. schrieb:
> Ja, aber Programme schreibt man doch nicht in Excel

Hast du dir die Datei wenigstens mal angeschaut? Sieht nicht danach aus.

von Thomas Z. (usbman)


Lesenswert?

"(Und täglich grüßt das Murmeltier)" steht so in der xls Datei :-(

allerdings sehe ich kein Programm. Da kann man wohl nichts mehr machen.

von Thomas W. (datenreisender)


Lesenswert?

Alexander S. schrieb:
> Günter K. schrieb:
>> Ist die Datei angehängt?
>> 440 Hz.xlsx
>
> Ja, aber Programme schreibt man doch nicht in Excel und man speichert
> sie auch nicht im Excel-Format (xlsx), sondern als normale Textdatei (.S
> .c oder .txt). Dann kann man das Programm auch direkt im Browser
> anschauen.

Details... The rub would be: kommen denn 440Hz aus irgendeinem Port 
raus? Oder nicht? Ist das Ding assemblierbar?

von Christoph M. (mchris)


Lesenswert?

Ich habe den 6502-Eumlator mittlerweile Zyklengenau auf dem PiPico 
laufen. Die 6532Ports habe ich auf PORTA: GPIO2-GPIO9 und PORTB 
GPIO10-GPIO17 gemapped.

Will es jemand aufprobieren?

von Alexander S. (alesi)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Hast du dir die Datei wenigstens mal angeschaut?

Ich habe Linux ohne LibreOffice und werde nur wegen der Datei auch nicht 
nach einem xslx-Viewer im Internet suchen.

von Günter K. (enk)


Lesenswert?

Thomas W. schrieb:
> Details... The rub would be: kommen denn 440Hz aus irgendeinem Port
> raus? Oder nicht? Ist das Ding assemblierbar?

Hallo Thomas W.

Ja, wie ich schrieb. - In Spalte A, stehen dezimale Zeilennummern fürs
Programm. In Zeile 3 und 8, ist zu sehen, dass es sich um Port A 
handelt.
Hardwaremäßig ist das PIN 3 oben auf der asymmetrischen Leiste neben dem
Display, welches mir Wolfgang R. freundlicherweise mitgegeben hatte.
Ich kann das Programm in den Editor übertragen.
Da sind sie dann aber als 1. noch im Format vom Junior-Computer-Buch. S. 
u.
Als nächstes, muss ich die Befehle an seinen Anfang setzen.
Dann kommt in der Zeile als
1. die Zeilennummer,
2. Die Marke,
3. Die Adresse
4. den Maschinen-Befehl als OP-Code,
5. der Befehl,
6. die Adressierungsart,
7. den REM-Befehl. (Das Wort habe ich vom BASIC).
(Hier noch ähnlich wie in JUNIOR-BUCH.)
Danach wird es wie üblich.

Es gibt aber Editoren, die schreiben die Zeilennummer selber.

Ich habe hier der EDITOR von WINDOWS. Ich hatte für andere 
Programmiersprachen den Editor von einem KOMPILER benutzt.
Ich möchte aber -nicht kompilieren-, denn das Programm läuft ja. - Mir 
wurde auch mal WORDPAD vorgeschlagen. Damit habe ich noch nie was getan.
In Excel habe ich über den Maschinen-Befehls OP-Code, einen schwarzen 
Balken gemacht.
Liebe Grüße
Günter K.
(ENK)

PS.:
Natürlich möchte ich das Programm zu einem -einfachen-
Spiele-Musik-Programm noch weiter ausarbeiten.
Das "Editor"-Programm: "440 Hz", kommt als nächstes.

: Bearbeitet durch User
von Hans .. (Firma: Private) (erty21)


Lesenswert?


von Günter K. (enk)


Angehängte Dateien:

Lesenswert?

Hallo liebe Leute,

jetzt versuche ich den Windows-Editor hochzuschicken.
Liebe Grüße
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Alexander S. schrieb:
> Ich habe Linux ohne LibreOffice und werde nur wegen der Datei auch nicht
> nach einem xslx-Viewer im Internet suchen.
Hallo Alexander,
Werde oder habe ich gemacht,
Da ich aber jede Adresse untereinader habe,
weiß ich nicht, ob das für den Assembler lesbat ist.
Es wurde sogar freunlicher Weise umbenannt in: 440 Hz.asm
im vorigen Beitrag.
Liebe Grüße
Günter K.
(ENK)

von Soul E. (soul_eye)


Angehängte Dateien:

Lesenswert?

Günter K. schrieb:
> Da ich aber jede Adresse untereinader habe,
> weiß ich nicht, ob das für den Assembler lesbat ist.

So sieht das bei einem richtigen Assembler aus. Die asm-Datei erstellst 
Du, die bin-Datei erzeugt der Assembler. Im Listing lst kann man die 
Arbeit kontrollieren.

Rechnen brauchst Du nicht, man gibt einfach die Sprungmarken (labels) 
als Ziel an: "BEQ M2". Den Abstand rechnet der Assembler aus, und der 
warnt auch wenn es zu weit ist.

von Günter K. (enk)


Lesenswert?

Thomas Z. schrieb:
> "(Und täglich grüßt das Murmeltier)" steht so in der xls Datei :-(
>
> allerdings sehe ich kein Programm. Da kann man wohl nichts mehr machen.
Hallo Liebe Leute; hallo Thomas Z und Thoma W!

Doch: - Ja, das Programm 440Hz.asm kommt gleich im Editor von WINDOWS.
Muss ich noch umschreiben. In 2 Formaten. Das 2. wird das Üebliche sein.
Schreibfehler: Umlaute etc. werden rausgeholt.
Frage: Welchen Editor empfehlt Ihr mir?
Liebe Grüße
Günter K.
(ENK)

von Christoph M. (mchris)


Lesenswert?

>Frage: Welchen Editor empfehlt Ihr mir?
Probier mal Notepad++

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:

> Frage: Welchen Editor empfehlt Ihr mir?

Immernoch https://www.asm80.com/

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Soul E. (soul_eye)
12.05.2025 23:01

>So sieht das bei einem richtigen Assembler aus.

Ich verwende momentan ca65:
https://cc65.github.io/doc/ca65.html

Bei der Verwendung von Assemblern gibt es das kleine Problem, dass sich 
jeder Assembler im Syntax ein wenig unterscheidet. Aus diesem Grunde 
kann ich Günter schon verstehen: wenn man sich erst mal den Ärger mit 
den Syntax-Problemen vom Halse halten will, kann man das Ganze auf dem 
Papier von Hand machen. Dann versteht man auch die Details.
Das Beispiel von oben sieht für den ca65 so aus:
1
        ; https://www.mikrocontroller.net/topic/571835?page=4#7875457
2
        ;
3
        ;CPU 6502
4
        ;PAGE 0
5
6
PAD     =$1A80
7
PADD    =$1A81
8
9
        .ORG $0300
10
START:
11
        LDA  #$FF        ; FF als Ausgang, für das Datenrichtungsregister
12
        STA   PADD       ; Direktionsregister PADD:  "OUT"
13
M1:
14
        LDA  #$FF        ; FF als DATEN, für das Datenregister
15
        STA  PAD         ; PAD:   "FF"  (später "00")
16
        JSR  SUB          ; JumpToSubRoutine Zeitverzögerung DELAY.
17
18
        LDA  #$00        ; als DATEN, für das Datenregister
19
        STA  PAD         ; PAD:   "00"  (später "FF")
20
        JSR  SUB         ; JumpToSubRoutine Zeitverzögerung DELAY.
21
22
        JMP  M1
23
24
SUB:
25
        LDY  #$01      ; SR Beginn SUBROUTINE
26
M2:
27
        LDX  #$DE      ; mit   ZP-ADRESSIERUNGSART sind durch IM ersetzt.
28
M3:
29
        DEX
30
        BNE  M3
31
        DEY
32
        BNE M2
33
        RTS             ; RETURN FROM SUBROUTINE

Im Gegensatz zum von dir verwendeten Assembler braucht das ORG einen 
Punkt, alle Labels brauchen einen ':', das EQU wird zum '=' und ein 
'END' wird nicht erkannt.

Ich habe das Programm mal auf dem 6502PiPicoEmulator getestet. Als 
erstes ging es nicht. Warum? Ich dachte die Konvention sei den 
Lautsprecher an PB0 anzuschließen, aber in dem Programm wird der ganze 
PORTA 'getoggled' nicht aber PORTB0. Also in dem Fall: Lautsprecher an 
irgend einen Pin von PORTA anschließen.
Es hat mich erstaunt, dass die Frequenz von 440Hz relativ gut getroffen 
wird.

von Falk B. (falk)


Lesenswert?

Christoph M. schrieb:
> wenn man sich erst mal den Ärger mit
> den Syntax-Problemen vom Halse halten will, kann man das Ganze auf dem
> Papier von Hand machen. Dann versteht man auch die Details.

Was für ein Käse. Das was hier läuft, ist an Unfug kaum zu überbieten. 
Oder ein "wie mach ich es möglichst umständlich und undurchsichtig" 
Wettbewerb!

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

Nützt rein gar nichts, weil der Günther gar nicht aufnahmefähig ist.

von Günter K. (enk)


Angehängte Dateien:

Lesenswert?

Soul E. schrieb:
> von  Soul E. (soul_eye)  12.05.2025 23:01
> weiß ich nicht, ob das für den Assembler lesbat ist.

So sieht das bei einem richtigen Assembler aus. Die asm-Datei erstellst
Du, die bin-Datei erzeugt der Assembler.

Hallo von  Soul E.,
Danke für den Beitrag.

Kann den der Assembler etwas mit meiner Version anfangen?
Ich habe gerne die Daten untereinander, geht das?
Liebe Grüße
Günter K.
(ENK)

PS. Die anderen Beiträge muss ich noch lesen.
Hier zeige ich mal folgenden Versuch und ich vermute,
dass ich Fehler reingeschrieben habe.

von Günter K. (enk)


Lesenswert?

von Falk B. (falk) 13.05.2025 09:15

Hollo Falk B. und an alle, Du schriebst zum Beitrag:
> "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
> Nützt rein gar nichts, weil der Günther gar nicht aufnahmefähig ist.

Nun, ich gebe das Programm in "HEX'" ein, und es läuft!

Übersichtliche Konventionen halte ich für zweckmäßig und
Die Schriftsteller vom ELEKTOR-JUNIOR-COMPUTER machen es ja so.

Das heißt nicht, dass ich die Emulatoren nicht benutzen werde.
Danke auch, für Deinen Emulator-Vorschlag, es ist ja auch nicht der 
erste.
Liebe Grüße
Günter K.
(ENK)

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


Lesenswert?

Christoph M. schrieb:
> Es hat mich erstaunt, dass die Frequenz von 440Hz relativ gut getroffen
> wird.

Hallo Christph M.
Ich werde mir Deinen Beitrag ausdrucken,
damit ich das nötige Verhalten anwenden kann.
Bestimmt werde ich danach immer noch kleine Fehlerchen machen.
Gibt es keinen Assembler, der reines "HEX'" voraussetzt, und
Dezimale gesondert anzeigt?
Die passende Frequenz die ausgegeben werden kann,
hängt ja von der Taktfrequenz und der passenden Byte-Gruppe ab.
Danach folgen 5 weitere Töne, bevor ein Lied entsteht.
Die Töne versuche ich Hexadezimal per Programm zu berechnen.
Die tieferen Töne treffen leichter, weil dort
mehr Schwingungen in die Wellenlänge hineinpassen.
Beim Z80 würde das besser gehen, weil er eine höhere Tacktfreqenz hat.
Liebe Grüße
Günter K.
(ENK)

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Ich werde mir Deinen Beitrag ausdrucken,

Ach komm das ist doch Satire langsam.

von Soul E. (soul_eye)


Lesenswert?

Günter K. schrieb:
> Gibt es keinen Assembler, der reines "HEX'" voraussetzt, und
> Dezimale gesondert anzeigt?

Assembler versteht kein "HEX", sondern Maschinenbefehle. LDA, STA, JMP 
usw. Die Hexwerte bzw den Binärcode erzeugt der Assembler. Damit Du 
nicht jedesmal im Buch nachsehen musst. Das wird bei längeren Programmen 
(8 kB Objektcode sind als Assemblerlisting über 100 DIN A4-Seiten) sonst 
schnell umständlich.

(Wobei ich zu meinen aktiven Apple-Zeiten die 6502-Befehle tatsächlich 
auswendig wusste, und hexadezimal kopfrechnen ging damals auch noch)

> Beim Z80 würde das besser gehen, weil er eine höhere Tacktfreqenz hat.

Nein, denn die höhere Taktfrequenz wird durch vier geteilt. Ein Z80 mit 
4 MHz ist so schnell wie ein 6502 mit 1 MHz. Der Z80 ist innendrin 
synchron aufgebaut, er braucht für jeden Vorgang eine Taktflanke 
("T-State" nennt man das). Beim 6502 rutschen die Befehle asynchron 
durch, daher braucht er nur für jeden Speicherzugriff einen Takt.

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
> Ich habe den 6502-Eumlator mittlerweile Zyklengenau auf dem PiPico
> laufen. Die 6532Ports habe ich auf PORTA: GPIO2-GPIO9 und PORTB
> GPIO10-GPIO17 gemapped.
>
> Will es jemand aufprobieren?

Hallo Christoph M.
Da will ich wenigstens mal ein Lob rüberschicken und ich finde es enorm,
dass Du das geschafft hast!

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

Christoph M. schrieb:
> Bei der Verwendung von Assemblern gibt es das kleine Problem, dass sich
> jeder Assembler im Syntax ein wenig unterscheidet. Aus diesem Grunde
> kann ich Günter schon verstehen: wenn man sich erst mal den Ärger mit
> den Syntax-Problemen vom Halse halten will, kann man das Ganze auf dem
> Papier von Hand machen. Dann versteht man auch die Details.

Lieber Christoph M.,
vor allen Dingen gefällt mir die Art Deines Assemblers,
denn es ist in Serie!
Da, fällt es mir leichter, den Maschinen-OP-Code unterzubringen.
 Die dazugehörigen Konventionen möchte ich noch lernen.
Aber nur, bei Deiner Art von Assembler.
Denn ich kann kein Assembler; - ich versuche zu wissen oder erraten was 
die
Maschine macht. - Aber Hochsprachen sind mir zu hoch, da komme ich gar 
nicht mit.
Der Ton wird bei mir etwas über 440 Hz gemessen, also 440,0x.
Ich staune auch, wie sauber Dein Signal auf das Scop aussieht.
Bei mir ist das nicht ganz so gut, aber man weiß, es ist das Kammerton 
A.
Super! Was Du alles machst!

Als nächstes kommen 5 weitere Töne dran. Das G4, H4, C5, D5 und E5. Das 
Ganze soll ein Lied werden. - .
Die nächsten Töne können leider nicht so gut getroffen werden.
Ich kann versuchen, noch NOPs also "EA"s reinzuhängen; (-EA) geht nicht.
Will aber auch das Programm nicht zu groß machen.
Zur Ton-Änderung wird das X- und Y-Register aus der Zero-Page geladen.
Nur muss ich noch die Ton-Länge und die Pausenlänge bestimmen.
Da habe ich noch keine Idee, wie ich den 3032 anspreche, um die Zeit
zu bestimmen. Dann kommen noch Schleifen für den (selben)gleichen Ton 
hinein, wenn sich Töne mit gleichen Tonlängen, in der Melodie 
wiederholen.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Denn ich kann kein Assembler

Wie kommst Du denn auf die Hex-Zahlen, die Du in deinen Junior-Computer 
eintackerst?
Lass mich raten: Du überlegst dir, was Du machen willst, also z.B. den 
Akkumulator mit #255 laden. Und dann schaust Du in deiner Tabelle oder 
irgendeinem Buch, welche Hex-Codes das sind.
D.h. Du kannst nicht nur Assembler, du bist der Assembler.
Denn das übersetzen von lda #255 in passende Hex-Codes IST das 
assenmblieren.
Und das lässt man logischerweise eine Maschine machen (z.B. wie 
vorgeschlagen einen Online-Assembler), anstatt es selbst manuell zu 
machen.

Oder rechnest Du die Periodendauer eines 440Hz Tons in Microsekunden um, 
in dem Du mit Bleistift und Papier 100000/440 rechnest?`Ich vermute, da 
nimmst Du ja auch das passende Werkzeug, einen Taschenrechner.

Warum also um alles in der Welt willst Du keinen Assembler benutzen???

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Warum also um alles in der Welt willst Du keinen Assembler benutzen???

Doch das will ich, aber nur zu dem Zweck, damit andere etwas damit 
anfangen können. Ich selber, möchte selber assemblieren; es sei denn, 
ich hätte
die Vorteile schon gelernt; - das habe ich aber noch nicht.

Was aber vor allen Dingen dazu gehört, ist der Maschinen-Code,
also alles das, was die Maschine bekommt und macht.

Einen sehr schönen Assembler-Code habe ich bei
Christoph M. (mchris) 13.05.2025 09:09 gesehen.

Wo ich selber den Maschinen-Code links beifügen kann,
ähnlich dem Buche des Junior-Computers; somit verbleibt
viel Platz auf der rechten Seite für Kommentare.
         Der Sinn, versteht sich von selbst.
Ja,
ich möchte sogar gerne wissen: Wann und wo was passiert,
also den Prozess; darum heißt der Prozessor, ja: Prozessor.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Der Sinn, versteht sich von selbst.

Nein, das was du machst ergibt eben keinen Sinn.

Günter K. schrieb:
> Ich selber, möchte selber assemblieren; es sei denn,
> ich hätte
> die Vorteile schon gelernt

Es GIBT KEINE VORTEILE wenn du selbst assemblierst.
Du lernst dabei nichts sinnvolles. Die Tatsache, dass du irgendwann 
auswendig weißt, dass ein NOP in Hex EA übersetzt wird, ist vollkommen 
nutzloses Wissen.

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Klaus schrieb:
> Es GIBT KEINE VORTEILE wenn du selbst assemblierst.

Bei manchen Assemblern schon. Nämlich dann, wenn verschiedene Mnemonics 
in den selben Maschinencode übersetzt werden. Das fällt dann auf. Selber 
kenne ich zwar keinen solchen Assembler, aber hier im Forum habe ich 
davon gelesen.

von Soul E. (soul_eye)


Angehängte Dateien:

Lesenswert?

Günter K. schrieb:
> Doch das will ich, aber nur zu dem Zweck, damit andere etwas damit
> anfangen können. Ich selber, möchte selber assemblieren; es sei denn,
> ich hätte
> die Vorteile schon gelernt; - das habe ich aber noch nicht.

So haben wir vor 40 Jahren gearbeitet. Weil es nicht anders ging. Du 
kannst es heute komfortabler haben. Musst Du aber nicht. Es gibt Leute, 
die klettern zu Fuß auf Berge. Obwohl Hubschrauber und Seilbahn schon 
lange erfunden sind.


> Wo ich selber den Maschinen-Code links beifügen kann,
> ähnlich dem Buche des Junior-Computers; somit verbleibt
> viel Platz auf der rechten Seite für Kommentare.
>          Der Sinn, versteht sich von selbst.

Da ist Karopapier immer noch am besten. Die Befehle aufschreiben, dann 
die Hexwerte raussuchen und zuletzt die Branches berechnen. Hexadezimal 
kopfrechnen kann man dann irgendwann.

Oder halt Excel, das Karopapier der Neuzeit.

von Klaus (feelfree)


Lesenswert?

Soul E. schrieb:
> So haben wir vor 40 Jahren gearbeitet

Nein, 1985 hatte zB der C64 schon wunderbar nutzbare Assembler.
Ich erinnere mich noch an die Anfänge 1984, als ich noch kein 
Floppylaufwerk hatte.
Editor von Datasette laden, Programm schreiben, abspeichern. Dann 
Assembler laden, vorher gespeichertes Programm laden, assemblieren und 
dann ausführen.
Turn-around-Zeit sicher 10 bis 15 Minuten.
Ein Jahr später, mit Floppylaufwerk, vielleicht noch 2 oder 3 Minuten.
Und dann kam der Assembler (von Data Becker?) der den Quelltext direkt 
vom eigentlich für Basic vorgesehenen eingebauten "Editor" eingelesen 
hatte.
Das war Luxus pur, fast so komfortabel wie man es heute auch haben 
könnte, wenn man nicht so stur (oder schwer von Begriff) wäre.

Soul E. schrieb:
> Oder halt Excel

Das ist ja das Lustige: solche Moloche werden benutzt, aber ein kleiner 
feiner Assembler der alles besser kann wird abgelehnt.

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


Lesenswert?

Soul E. schrieb:
> Die asm-Datei erstellst
> Du, die bin-Datei erzeugt der Assembler.

Hallo Soul E.
wofür ist die bin-Datei gut?
was heißt: bin-Datei?
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> wofür ist die bin-Datei gut?
> was heißt: bin-Datei?

Du brauchst keine bin Datei für deinen Junior-Computer.
Du musst die Hex-Daten einzeln eintippen. Mit einem "richtigen" Computer 
würde die bin-Datei (oder Hex-Datei) von einem Datenträger eingelesen 
werden können und dann ausgeführt werden. Oder eben der Assembler lädt 
die bin/hex direkt ohne Umweg über eine Datei in den Speicher und führt 
die dann aus.
Das geht alles mit deinem prähistgorischen Junior-Computer nicht.

von Günter K. (enk)


Lesenswert?

Soul E. schrieb:
> Nein, denn die höhere Taktfrequenz wird durch vier geteilt. Ein Z80 mit
> 4 MHz ist so schnell wie ein 6502 mit 1 MHz. Der Z80 ist innendrin
> synchron aufgebaut, er braucht für jeden Vorgang eine Taktflanke
> ("T-State" nennt man das). Beim 6502 rutschen die Befehle asynchron
> durch, daher braucht er nur für jeden Speicherzugriff einen Takt.
Eine positive Taktflanke?
Dankeschön lieber Soul E.
Liebe Grüße
Günter K.
(ENK)

PS.: Im JUNIOR-COMPUER-BUCH 2, hab' ich auch was über Taktflanken 
gelesen.
Das muss ich aber nochmal lesen, - denn verstanden, habe ich das noch 
nicht.
Ich weiß zwar was Flanken sind, muss aber nochmal den Zusamenhang 
finden.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
> Und dann kam der Assembler (von Data Becker?) der den Quelltext direkt
> vom eigentlich für Basic vorgesehenen eingebauten "Editor" eingelesen
> hatte.
> Das war Luxus pur, fast so komfortabel wie man es heute auch haben
> könnte, wenn man nicht so stur (oder schwer von Begriff) wäre.

Ja, das klingt doch interessant! Wenn ich nur, die Beziehung zur 
Maschinensprache behalte, was ist da noch möglich?
Liebe Grüße
Günter K.
(ENK)

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> ! Wenn ich nur, die Beziehung zur
> Maschinensprache behalte,

Die Beziehung zwischen Assemblersprache (z.b. "NOP") und 
Maschinensprache (z.B. Hex EA) stellt ein Assembler her.
Für einen Menschen gibt es keinen Grund, das manuell machen zu wollen.

von Christoph M. (mchris)


Lesenswert?

Günter K. schrieb:
> ! Wenn ich nur, die Beziehung zur
> Maschinensprache behalte,

> von Klaus (feelfree)
>Die Beziehung zwischen Assemblersprache (z.b. "NOP") und
>Maschinensprache (z.B. Hex EA) stellt ein Assembler her.

Und hier als praktische Übung:

1. rufe diese Seite auf:
https://www.masswerk.at/6502/assembler.html
2. tippe im linken Fenster mit der Bezeichnung 'src' den Text 'nop' ein
3. drücke rechts unten auf 'Assemble'
4. drücke auf 'OK'
5. schaue das Ergebnis auf der rechten Seite im Fenster 'object code' 
an.

von Harald K. (kirnbichler)


Lesenswert?

Klaus schrieb:
> Für einen Menschen gibt es keinen Grund, das manuell machen zu wollen.

Zum Grundlagenwissen gehört es auch, zu verstehen, was ein Assembler 
anstellt. Ein Programm von Hand assembliert zu haben, Sprungoffsets von 
Hand ausgerechnet zu haben, hilft zu verstehen, warum man sich besser 
von einem Programm dabei helfen lässt.

Denn letztlich kann Dein "gibt es keinen Grund" auf alles angewandt 
werden.

Warum Programme in Assembler schreiben? Für Menschen gibt es keinen 
Grund, das machen zu wollen, das machen Compiler aus einer für Menschen 
viel besser lesbaren Hochsprache ...

Ohne Grundlagenwissen aber versteht auch der Hochsprachenprogrammierer 
nicht, was die Maschine da eigentlich anstellt.


Günters Ansatz ist mühsam, keine Frage, aber ein Weg, Grundlagen zu 
verstehen.

Ich habe vor 40 Jahren ein fehlerhaftes Programm (das sich im EPROM 
meines Computers befand) mit einer Art selbstgebauten Logikanalysator 
(jeden Buszyklus latchen und auf LEDs ausgeben, aufschreiben, und den 
nächsten Zyklus laufen lassen ...) analysiert.

Aus dem, was auf dem Bus loswar, konnte ich den Ablauf der 
Maschineninstruktionen rekonstruieren (Opcode-Fetch, Operanden-Fetch 
etc.) und mit viel Fleißarbeit die ersten paar tausend Schritte des 
Programmes nachvollziehen. Und: Den Fehler beseitigen.

Und damit, mit diesem mühsamen Erlernen von Grundlagen, habe ich viel 
mehr über Computerhardware gelernt, als Leute, die zur gleichen Zeit 
Space-Invaders spielten oder im C64-Basic irgendwelche Peeks und Pokes 
veranstalteten.

Günter wird zwar recht wahrscheinlich nicht in 40 Jahren mit Stolz auf 
das zurückblicken können, was er sich jetzt beibringt, und natürlich hat 
das auch keinen "praktischen" Nutzen (wer will heute noch was mit 6502 & 
Co. anfangen? Heute nutzt man Multicore-ARMe mit zig Gigabyte RAM ...) 
-- aber es hält die Birne fit.

Andere spielen Schach. Werner bringt sich 6502-Maschinencode bei.

Find' ich gut.

von Falk B. (falk)


Lesenswert?

Harald K. schrieb:
> Andere spielen Schach. Werner bringt sich 6502-Maschinencode bei.

Werner macht Unsinn. Aber solange ER es für sinnvoll hält und Spaß dabei 
hat, sei's drum. ZEN-Programmierung ;-)

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

von Klaus (feelfree)


Lesenswert?

Wer ist Werner?

von Falk B. (falk)


Lesenswert?

Klaus schrieb:
> Wer ist Werner?

Stimmt, es ist Günter. ;-)

von Klaus (feelfree)


Lesenswert?

Harald K. schrieb:
> Zum Grundlagenwissen gehört es auch, zu verstehen, was ein Assembler
> anstellt. Ein Programm von Hand assembliert zu haben, Sprungoffsets von
> Hand ausgerechnet zu haben, hilft zu verstehen, warum man sich besser
> von einem Programm dabei helfen lässt.

Richtig. Nur Günter versteht das halt nicht, trotz zahlreicher 
Kommentare in die Richtung.

von Falk B. (falk)


Lesenswert?

Günter K. schrieb:
> Ja, das klingt doch interessant! Wenn ich nur, die Beziehung zur
> Maschinensprache behalte, was ist da noch möglich?

Hab ich dir schon dreimal erzählt, du hast es aber scheinbar 4 mal 
ignoriert. Im List-File, welches der Assembler ausspuckt.

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

Maschinencode schreiben nur

Assembler (das Programm)
Autisten
Superfreaks

Assembler ist die niedrigste Stufe, die man sich heute und schon seit 
Mitte der 1970er Jahre noch sinnvoll antut! Schrieb ich auch schon, wenn 
gleich mit leicht ironischem Wortlaut!

"Echte Männer jagen Mammuts. Wenn's keine mehr gibt, programmieren sie 
in
Maschinensprache. Weicheier wie ich tun sich nur Assembler an."

von Harald K. (kirnbichler)


Lesenswert?

Klaus schrieb:
> Nur Günter versteht das halt nicht

Günter (den ich vorhin aus irgendeinem Grund auch mal Werner nannte) ist 
dem Anschein nach ein gutes Stück älter als die meisten hier, und hat 
deswegen ein anderes Lerntempo.

von Falk B. (falk)


Lesenswert?

Harald K. schrieb:
> Günter (den ich vorhin aus irgendeinem Grund auch mal Werner nannte) ist
> dem Anschein nach ein gutes Stück älter als die meisten hier,

80

> und hat
> deswegen ein anderes Lerntempo.

Nicht nur deswegen. Er hat auch viel Chaos und komische Ideen im Kopf. 
Kann man erkennen, wenn man alle seine Beträge hier liest.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Falk B. schrieb:
> Er hat auch viel Chaos und komische Ideen im Kopf.

Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren 
US-Präsidentendarsteller an. Da ist mir Günters Chaos deutlich lieber.

Und andere sind bereit mit Eintritt in das Rentenalter nur noch schwer 
von weichgekochtem Broccoli zu unterscheiden.

Immer dran denken: Menschen in diesem Alter muss man nicht nur ertragen, 
sondern man muss sich im Klaren darüber sein, daß man auch mal in das 
betreffende Alter kommen wird, und da sollte man sich schon überlegen, 
ob man als leicht wabernde Masse in einem Stuhl in einer 
"Betreuungseinrichtung" den Tag verbringt, oder spinnerte Ideen auslebt 
und sich mühsam noch was neues beibringt.

von Cyblord -. (cyblord)


Lesenswert?

Harald K. schrieb:
> Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren
> US-Präsidentendarsteller an. Da ist mir Günters Chaos deutlich lieber.

Biden ist ja nun weg. Klar, man wollte ihn nochmal 4 Jahre, halb 
mumifiziert im Oval Office sitzen lassen. Aber wurde ja dann nichts.

von Harald K. (kirnbichler)


Lesenswert?

Cyblord -. schrieb:
> Biden ist ja nun weg

Ich meinte Trump. Im übrigen bist gerade DU überhaupt nicht geeignet, 
mentale Leistungen von Menschen über fünf Jahren zu beurteilen. Gerade 
DU hast in einem anderen Thread hier mal wieder ad nauseam unter 
Beweis gestellt, daß Du den geistigen Vorruhestand schon lange vor dem 
14. Lebensjahr erreicht hattest.

von Cyblord -. (cyblord)


Lesenswert?

Harald K. schrieb:
> Ich meinte Trump. Im übrigen bist gerade DU überhaupt nicht geeignet,
> mentale Leistungen von Menschen über fünf Jahren zu beurteilen.

Gerade machen die Berichte die Runde wie die Dems systematisch den 
extrem schlechten Zustand von Biden verheimlicht haben. Leute wie du, 
sind darauf wohl jahrelang reingefallen. Während alle normalen Leute 
schon seit Jahren darauf hinweisen wie desolat Biden daherkommt.
Aber klar, erst mal Trump als geistig unfit darstellen. Das ist 
wichtiger.

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


Lesenswert?

Wer von den beiden berechenbarer ist, darüber könnte man diskutieren - 
wenngleich nicht hier. Aber ich bin ziemlich sicher, dass Günter keinen 
dieser Rechner meinte. :)

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Gerade machen die Berichte die Runde wie die Dems systematisch den
> extrem schlechten Zustand von Biden verheimlicht haben

Und in ein paar Jahren werden die selben Berichte zu Trump die Runde 
machen. Wenn du glaubst, Trump wäre noch ganz dicht, dann bist du nicht 
ganz dicht.

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Cyblord -. schrieb:
>> Gerade machen die Berichte die Runde wie die Dems systematisch den
>> extrem schlechten Zustand von Biden verheimlicht haben
>
> Und in ein paar Jahren werden die selben Berichte zu Trump die Runde
> machen. Wenn du glaubst, Trump wäre noch ganz dicht, dann bist du nicht
> ganz dicht.

Das ist doch nicht vergleichbar. Du bist nur anderer Meinung als Trump. 
Bei Biden geht es um objektive altersbedingte Probleme die ganz gezielt 
verheimlicht wurden. Aber peinlicherweise eben für jeden seit Jahren 
sichtbar.

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Du bist nur anderer Meinung als Trump.

Nein, also ja ich bin anderer Meinung als Trump, aber dennoch zeigen 
sich auch bei Trump ganz klare Zeichen des mentalen Verfalls.

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Nein, also ja ich bin anderer Meinung als Trump, aber dennoch zeigen
> sich auch bei Trump ganz klare Zeichen des mentalen Verfalls.

Wirklich Verfall? Evt. konsistente mentale Ausfälligkeiten wie z.B. 
extremer Narzissmus o.ä. Aber ich bin kein Psychologe und jeder seriöse 
Psychologe sagt sinngemäß dass Ferndiagnosen, selbst für Fachleute, 
unseriös sind.

Ganz im Gegensatz allerdings zu eindeutigen geistigen und körperlichen 
Ausfällen von Biden wie Orientierungslosigkeit, Übergriffe vor laufender 
Kamera (schnüffeln an den Haaren von anderen Leuten), Stolpern am 
laufenden Band, Ansprechen von Leuten die schon tot sind, live bei einer 
PK, Reden mit unsichtbaren Leuten die nicht da sind inkl. Handschlag.
Dazu braucht es keine tiefsinnigen Analysen, der Mann ist einfach zu 
alt. Und man wollte ihn wirklich noch sehr lange Zeit mit aller Gewalt 4 
Jahre weitermachen lassen. DAS ist verrückt.

Übrigens ähnlich wie Mitch McConnell der einige male einfach vor 
laufenden Kameras eingefroren ist. Sorry da ist es halt einfach Zeit zu 
gehen. Allerdings ist er dann auch zügig gegangen.

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Ganz im Gegensatz allerdings zu eindeutigen geistigen und körperlichen
> Ausfällen von Biden wie Orientierungslosigkeit,

Und Trump tatscht arabische Kronprinzen an, die auf keinen Fall 
anzutatschen sind. Also ich zumindest würde keinen offensichtlichen 
Hardcorenarzist als Anführer meiner Nation haben wollen.

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Cyblord -. schrieb:
>> Ganz im Gegensatz allerdings zu eindeutigen geistigen und körperlichen
>> Ausfällen von Biden wie Orientierungslosigkeit,
>
> Und Trump tatscht arabische Kronprinzen an, die auf keinen Fall
> anzutatschen sind. Also ich zumindest würde keinen offensichtlichen
> Hardcorenarzist als Anführer meiner Nation haben wollen.

Die Meinung darfst du haben, es ist trotzdem kein Zeichen von geistigem 
Verfall. Nur Verhaltensweisen die du nicht magst.
Trump wird gerade gewählt weil er auf viele Konventionen nichts gibts. 
Das ist sein Markenkern und keineswegs Zufall, Unwissenheit, 
Unsicherheit oder das Alter.

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Tariffs, ach ne doch keine Tariffs. Ständig völlig sinnentleertes 
Gestammel.

Wenn das für dich Zeichen sind, das jemand auf seiner vollen geistigen 
Höhe ist, erklärt das natüelich so einiges.

Cyblord -. schrieb:
> Das ist sein Markenkern und keineswegs Zufall, Unwissenheit,
> Unsicherheit oder das Alter.

Das ist DEINE Meinung, muss deshalb aber noch lange nicht stimmen.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Leute, laßt die sinnlose Diskussion über Trump & Co. Gehört hier nicht 
hin! Weder in diese Diskussion noch ins Forum!

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Das ist DEINE Meinung, muss deshalb aber noch lange nicht stimmen.

Merkwürdiger Kommentar. Wir tauschen hier doch ausschließlich Meinungen 
aus.

Ein Hinweis darauf dass es sich nicht um Verfall handelt ist die 
Tatsache dass er schon immer derart erratisch handelt. Er war ja auch 
früher wirtschaftlich nicht besonders erfolgreich mit seinen Geschäften.

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


Lesenswert?

Cyblord -. schrieb:
> Nur Verhaltensweisen die du nicht magst.

DE Land hat schon mal einen Soziopathen gewählt.
Das ist, in der Nachschau, sehr unangenehm verlaufen.


Die USA ist gerade dabei diese Erfahrung zu machen.
Das kann einen vergleichbar üblen Weg nehmen.
Vielleicht noch übler.

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Merkwürdiger Kommentar. Wir tauschen hier doch ausschließlich Meinungen
> aus.

All deine Kommentare sind äusserst merkwürdig. Sie verharmlosen absolut 
fragwürdiges Verhalten.

Arduino F. schrieb:
> DE Land hat schon mal einen Soziopathen gewählt.
> Das ist, in der Nachschau, sehr unangenehm verlaufen.

Ich bin mir sicher, es gab den ein oder anderen, der es schon als es 
passierte als sehr unangenehm empfand, nicht erst im Nachgang.

> Die USA ist gerade dabei diese Erfahrung zu machen.
> Das kann einen vergleichbar üblen Weg nehmen.
> Vielleicht noch übler.

Das sieht halt nicht jeder.

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> All deine Kommentare sind äusserst merkwürdig. Sie verharmlosen absolut
> fragwürdiges Verhalten.

Nein sie ordnen es ein. Das Verhalten von Trump und der Verfall von 
Biden haben schlicht nichts miteinander zu tun. Egal welche noch so 
guten Argumente du gegen Trump auffährst.

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Das Verhalten von Trump und der Verfall von
> Biden haben schlicht nichts miteinander zu tun.

Das behauptet auch niemand, dennoch kann auch Trump verfallen. Halt ganz 
unabhängig von Bidens Verfall.

Allein dass du den Zusammmenhang daherphantasiert hast, lässt mich 
weiter an deinem geistigen Zustand zweifeln

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Allein dass du den Zusammmenhang daherphantasiert hast, lässt mich
> weiter an deinem geistigen Zustand zweifeln

Der Zusammenhang kam allein von dir. ICH sprach von Biden, DU hast Trump 
ins Spiel gebracht und die beiden verglichen.

Und sogar behauptet:
> Und in ein paar Jahren werden die selben Berichte zu Trump die Runde machen.

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


Lesenswert?

Kann die Moderation bitte mal den Mist hier löschen? Das hat absolut 
nichts mit dem Threadthema zu tun!

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> , DU hast Trump
> ins Spiel gebracht

äh, nein.

Noch ein Punkt, der Zweifel an deiner geistigen Klarheit aufkommen 
lässt.

Harald K. schrieb:
> Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren
> US-Präsidentendarsteller an. Da ist mir Günters Chaos deutlich lieber.

Harald K. schrieb:
> Ich meinte Trump

von Cyblord -. (cyblord)


Lesenswert?

Wolfgang R. schrieb:
> Kann die Moderation bitte mal den Mist hier löschen? Das hat absolut
> nichts mit dem Threadthema zu tun!

Das ist richtig. Aber dieses Assembler Gestammel mit dem 
Internetausdrucker kann ja auch nicht euer ernst sein.

von Harald K. (kirnbichler)


Lesenswert?

Die naheliegende Bitte an einen der Moderatoren muss ich eigentlich gar 
nicht ausformulieren, oder?

Um Günter nicht zu überfordern oder zu verschrecken, sollten alle 
Beiträge ab meinem Beitrag von heute, 8:38 entsorgt werden.

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Das ist richtig. Aber dieses Assembler Gestammel mit dem
> Internetausdrucker kann ja auch nicht euer ernst sein.

Du bist echt unglaublich, mit einem nicht drauf eingehen wischt du zur 
Seite, dass ich angeblich Trump ins Spiel gebracht hätte, aber hackst 
weiter auf jemanden ein, der lernen möchte. Das kann ja auch nicht dein 
Ernst sein.

Kannst die Leute nicht einmal auseinanderhalten aber weißt, das Biden 
kaputt ist. Sicher, dass du ihn nicht mit jemand ganz anderem 
verwechselt hast?

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Du bist echt unglaublich, mit einem nicht drauf eingehen wischt du zur
> Seite, dass ich angeblich Trump ins Spiel gebracht hätte

Ich hatte sogar ein Zitat von dir mit Trump gepostet. Was willst du 
noch? Du hast ihn nicht als erstes erwähnt. Aber DU hast Trump mit Biden 
verglichen. Das Zitat war von dir. Da gabs keine Verwechslung.

Sollte ich irgendwo etwas falsch zitiert haben oder jemanden verwechselt 
haben wäre ich der erste der das einräumt. Ist halt noch nie vorgekommen 
deshalb gibts keinen Präzedenzfall.

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


Lesenswert?

J. T. schrieb:
> mit einem nicht drauf eingehen wischt du zur
> Seite, dass ich angeblich Trump ins Spiel gebracht hätte,
Eine der am leichtesten zu identifizierbaren Eigenschaften eines 
extremen Egomanen, oder Narzissten, ist die Unwilligkeit Irrtümer 
zuzugeben. Auch sich selber gegenüber nicht. Stattdessen werden andere 
für alles "böse" verantwortlich gemacht.
Daran erkenne sie sich auch gegenseitig.

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Ich hatte sogar ein Zitat von dir mit Trump gepostet. Was willst du
> noch? Du hast ihn nicht als erstes erwähnt.

Aber deine Behauptung war, ich hätte ihn aufs Tablett gebracht.

Cyblord -. schrieb:
> DU hast Trump ins Spiel gebracht

Er wurde aber vom Kirnbichler aufs Tablett gebracht:

Harald K. schrieb:
> Das ist in dem Alter nichts besonderes. Sieh Dir den kaum jüngeren
> US-Präsidentendarsteller an.

Du jedoch dachtest, er meinte Biden, woher auch immer du den gezogen 
hast:

Cyblord -. schrieb:
> Biden ist ja nun weg. Klar, man wollte ihn nochmal 4 Jahre, halb
> mumifiziert im Oval Office sitzen lassen. Aber wurde ja dann nichts.

> und die beiden verglichen.

hast du also irgendwie.


Das war dann mein Einstieg dazu:

J. T. schrieb:
> Und in ein paar Jahren werden die selben Berichte zu Trump die Runde
> machen. Wenn du glaubst, Trump wäre noch ganz dicht, dann bist du nicht
> ganz dicht.

Erwähnt habe ich Biden mit keinem Wort. Ist es überhaupt ein Vergleich, 
wenn nicht alle Verglichenen erwähnt werden? Dann hätten wir beide gar 
keinen Vergleich gemacht.

Wie mans auch dreht, deine Behauptung ist falsch.

Cyblord -. schrieb:
> Ist halt noch nie vorgekommen deshalb gibts keinen Präzedenzfall.

Klar, unser Lördchen ist perfekt, makellos und absolut fehlerfrei.

Arduino F. schrieb:
> Daran erkenne sie sich auch gegenseitig.

Der ist schön, den kannte ich noch nicht.

von Cyblord -. (cyblord)


Lesenswert?

J. T. schrieb:
> Du jedoch dachtest, er meinte Biden, woher auch immer du den gezogen
> hast:

Also ob ich nicht gewusst hätte wen er meinte...

von Falk B. (falk)


Lesenswert?

ES REICHT MIT DEM SCHEIß!

von Cyblord -. (cyblord)


Lesenswert?

Falk B. schrieb:
> ES REICHT MIT DEM SCHEIß!

Ist ja gut.
Schon mal überlegt dass die Schreierei empfindlichere Seelen, wie z.B. 
mich, extrem verunsichern kann?

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Cyblord -. schrieb:
> empfindlichere Seelen, wie z.B. mich,

YMMD!

von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> empfindlichere Seelen, wie z.B. mich,

:D

von J. T. (chaoskind)


Lesenswert?

Klaus schrieb:
> Cyblord -. schrieb:
>> empfindlichere Seelen, wie z.B. mich,
>
> YMMD

Timing ist alles im Leben :D

von Günter K. (enk)


Lesenswert?

von Cyblord -. (cyblord) 15.05.2025 13:28 Lesenswert? -3 -.

Lesenswert ist was Wolfgang R. schrieb, denn er bittet:
> Kann die Moderation bitte mal den Mist hier löschen? Das hat absolut
> nichts mit dem Threadthema zu tun!
Das ist richtig. Aber dieses Assembler Gestammel mit dem
Internetausdrucker kann ja auch nicht euer ernst sein.

Günter K. schreibt, um beim Thema zu bleiben:
DANKE Wolfgang R.

Hallo Liebe Leute und Cyblord,
Frage: - Welches: "... Assembler Gestammel mit dem Internetausdrucker 
...?"
Antwort:
1. Ich habe keinen Internetausdrucker, sondern einen Canon-Drucker.
2. "Assembler Gestammel"? Auch hierzu habe ich eine Antwort:

Ich bin nicht so klug, wie viele von Euch, -!
Bin aber positiv erstaunt, dass ... Fortsetzung folgt ...

Falk B. schrieb:
> Leute, laßt die sinnlose Diskussion über Trump & Co. Gehört hier
> nicht
> hin! Weder in diese Diskussion noch ins Forum!
Ja Falk B. auch das ist richtig!

Fortsetzung:
... ja dass jemand einen Emulator des 6502-Computers in einen ...
Christoph M. schrieb:
> Ich habe den 6502-Eumlator mittlerweile Zyklengenau auf dem PiPico
> laufen. Die 6532Ports habe ich auf PORTA: GPIO2-GPIO9 und PORTB
> GPIO10-GPIO17 gemapped.
>
> Will es jemand aufprobieren?

Hallo Christoph M.
Da will ich wenigstens mal ein Lob rüberschicken und ich finde es enorm,
dass Du das geschafft hast! Ja, das ein sehr guter Beitrag!

Assembler heißt: Zusammenbauen!
Und mehr noch, das ist kein Gestammel! - Es ist sogar WICHIG! - dass
wir Menschen wissen, was der Computer tut, sonst tut der Computer
vielleicht das, - was wir Menschen gar nicht wollen! - !

Seltsame Ideen habe ich zwar, die habe ich hier noch gar nicht 
vorgebracht.
 - Eine Idee erfüllt dann seinen Zweck, wenn sie nützlich ist. -

Übrigens Falk, Deine Idee mit Hilfe des Timers die Tonsignale zu 
erzeugen,
ist eine sehr gute Idee! - Ich dachte auch schon mal daran.
Nur habe ich das dazugehörige Wissen aus dem JUNIOR BUCH 2, noch nicht 
verstanden; das muss ich nochmal lesen. - Ich wollte ein Programm mit 6 
Tönen in C-Dur als Lied schreiben. Aber inzwischen eine Oktave tiefer.

Christoph M. schickte mit den Kammerton A.  Das ist sehr, sehr gut!
Durch seine Rechteckform hat das "A4" sehr viele Oberwellen; - und so,
erscheint mir der Ton zu hoch.
Die tieferen Töne, sind mir leider nicht gelungen, wobei man meinen 
sollte,
dass das einfacher ist, weil mehr Zeiträume zu Verfügung stehen.
Also: Je mehr Zeit-Raum (Wellenlänge), je mehr Variabilität. - Mal 
sehen,
ob es mir gelingt, den Timer im 6502 aufzurufen.

Liebe Leute, bitte versteht mich.
Mit lieben Grüßen
Günter K.
(ENK)

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


Lesenswert?

Günter K. schrieb:
> Aber dieses Assembler Gestammel mit dem
> Internetausdrucker kann ja auch nicht euer ernst sein.


Die Quelle dieses Spruches hat ein Sozialverhalten wie eine 
Bordsteinkante.

Andererseits finde ich dieses ASM Gehampel auch ermüdend.
Habe mich eher auf C++ eingeschossen.
Ist u.A. viel interessanter

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> den Timer im 6502 aufzurufen.

Lass' das bitte.
Verändere/erweitere das Programm mit den 440Hz schrittweise:

- dass es eine andere Tonhöhe abspielt
- dass es den Ton z.B. nur eine bestimmte Zeit abspielt
- dass es 2 verschiedene Töne hintereinander abspielt

Damit wirst Du ein paar Tage beschäftigt sein.
Dann kommt:

- dass alle Tonhöhen einer Tonleiter abgespielt werden
- dass alle Noten unabhängig von der Höhe ca. gleich lang abgespielt 
werden

Wieder ein paar Tage bis Wochen.
Dann kommt:

- dass eine Melodie abgespielt werden kann mit unterschiedlichen 
Tonhöhen und Tonlängen

Ich drück' dir die Daumen, dass Du bis Weihanchten ein "Oh Du Fröhliche" 
schaffst, auch wenn ich es nicht glaube.

Und vergiss ganz schnell den Timer, solange Du nicht mal diese 
einfachsten Programme zusammenstricken kannst.

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


Lesenswert?

Hallo liebe Leute,
denn
Arduino F. (Firma: Gast) (arduinof) schrieb um 15.05.2025 18:31,
dass irgendjemand kopierte,:
"Günter K. schrieb:
 > Aber dieses Assembler Gestammel mit dem
 > Internetausdrucker kann ja auch nicht euer ernst sein."

Das schrieb ich nicht, und diesen Spruch werde ich auch nicht 
heraussuchen.
Allerdings, habe ich auf diesen Spruch bereits geantwortet.

Arduino F. (Firma: Gast) (arduinof) kopierte: s. o.:
"Die Quelle dieses Spruches hat ein Sozialverhalten wie eine
 Bordsteinkante.": Also, es ist nicht meine Quelle.
Und das, - sehe ich genau so, - nur fehlt mir
das Vokabular dazu.
Mit lieben Grüßen
Günter K.
(ENK)

von Harald K. (kirnbichler)


Lesenswert?

Günter K. schrieb:
> Das schrieb ich nicht

Nein, das hast Du auch nicht geschrieben. Das war der Forentroll vom 
Dienst. Lass' Dich von diesem Idioten nicht irritieren -- ignoriere 
einfach alles, was der geschrieben hat.

Hätte einer der Moderatoren sich schon um diesen Thread gekümmert, hätte 
auch alles seit heute gegen halb neun vormittags hier einfach gelöscht 
werden können.

von Günter K. (enk)


Lesenswert?

Liebe Leute, an Allen! -
Diesen gut gemeinten Vorschlag nehme ich dankbar an, denn:

Klaus schrieb:
> Günter K. schrieb:
>> den Timer im 6502 aufzurufen.
Zwichengedanke dem 6532.
>
> Lass' das bitte.
> Verändere/erweitere das Programm mit den 440Hz schrittweise:
>
> - dass es eine andere Tonhöhe abspielt
> - dass es den Ton z.B. nur eine bestimmte Zeit abspielt
> - dass es 2 verschiedene Töne hintereinander abspielt
>
> Damit wirst Du ein paar Tage beschäftigt sein. ... ...

Denn ich vermute, dass das stimmt, - weil ... (Anzwort kommt noch), denn
eine 2. Tonhöhe und noch andere hatte ich, - das wäre quasi außer
dem A4, das G4, also: 440 Hz und 392 Hz.
Einzeln, kann ich diese beiden Töne laufen lassen, - aber nicht 
hintereinander. - Denn ich komme nicht aus dieser Schleife heraus! Es 
ist wie
in dem Film: (Und täglich grüßt das Murmeltier.) - weil
ich etwas tun muss, eben um aus dieser Schleife, herauszukommen.
Vielleicht fällt mir noch was ein. In diesem Fall müsste ich erst
eine große um den Ton legen, Fortsetzung folgt.
Mit lieben Grüßen
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Falk B. schrieb:
> ES REICHT MIT DEM SCHEIß!
Der Meinung bin ich auch!
Mit lieben Grüßen
Günter K.
(ENK)

von Günter K. (enk)


Lesenswert?

Falk B. schrieb:
> Er hat auch viel Chaos und komische Ideen im Kopf.
Das klingt interessant, hab' auch interssante Ideen,
die ich noch gar nicht vorgebracht habe.
Du scheinst mich zu kennen. :-)))
Liebe Grüße
Günter K.
(ENK)

P.S.:
Seis drum, alles Gute!

Einige der nächsten E-Mails habe ich noch nicht gelesen.

von Sherlock 🕵🏽‍♂️ (Gast)


Angehängte Dateien:

Lesenswert?

Alexander S. schrieb:
> Ich habe Linux ohne LibreOffice und werde nur wegen der Datei auch nicht
> nach einem xslx-Viewer im Internet suchen.

Dann meckere nicht über die Datei, sondern halte dich einfach vornehm 
heraus. Dass andere Leute (ganz gewöhnliche) Programme benutzen, die du 
nicht benutzen möchtest, ist nicht deren "Fehler".

Cyblord -. schrieb:
> Ach komm das ist doch Satire langsam.

Glaube ich nicht. Günter ist nur etwas älter als die meisten hier und 
mit anderen Tools groß geworden. Nach einer offenbar langen Pause (30-40 
Jahre?) beschäftigt er sich wieder mit dem Thema. Vielleicht, weil er 
jetzt nicht mehr Arbeiten muss und endlich Zeit hat, sein Hobby 
fortzusetzen.

Ist das denn so schlimm?

von Günter K. (enk)


Lesenswert?

Cyblord -. schrieb:
> Falk B. schrieb:
>> ES REICHT MIT DEM SCHEIß!
>
> Ist ja gut.
> Schon mal überlegt dass die Schreierei empfindlichere Seelen, wie z.B.
> mich, extrem verunsichern kann?


Nun, Danke Cyblord.
Ja, ich werde versuchen, ansetelle der "1" im Y-Register
aus der Schleife hinauszukommen, ob mir das gelingt,
weiß ich jetzt noch nicht. (Vermutlich nicht.)
In dieser Zeit, wird noch einmal bis dezimal bis 250 gezählt.
Ich darf aber durch den Ausstieg aus der Schleife,
die Zeit nicht verändern, denn dann stimmt der Ton nicht mehr.

von Christoph M. (mchris)
06.05.2025 11:56

Lesenswert? - Ja! Auf jeden Fall!!


Hier mal der Versuch, den Timer ohne Interrupt zu verwenden.
Wenn ich es richtig verstehe, kann man den Timer wohl einfach durch das
Beschreiben der entsprechenden Adresse starten.

Das Programm sollte also folgendes machen:
1. Timer starten
2. Warten bis abgelaufen
3. Portpin rumdrehen
4. Jump zu 1.
... Ja nach diesem Beitrag, hab ich gesucht,
und dachte er wäre von "Falk" gewesen, weil ich oben drüber mal "Falk" 
las,
aber das war, - durch ein Zitat von mir falsch verstanden hatte.

Lieber von Christoph M. (mchris)
Scheinbar, die einzige Möglichkeit, - doch auch hier muss ich Aus der 
Schleife hinaus, für weitere Zeiten.
Ich muss Anschließend, die Notenlängen zusammenkleben.
Weil auch(evtl.) eine Schlusspause(der Note selbst)
die in der Notenschrift nicht vorhanden ist,
würde schätzungsweise 1/128 ausmachen,
die dann auch in den Takt passen.

Austeigen kann ich nur in der NULL-Phase,
weil danach eine EINS-Phase kommen kann.
Die NULL-Phase muss ich vor dem Ausstieg ergänzen,
ohne die gesammte Wellenlänge zu verfälschen.

Wer weiß, vielleicht schaffe ich es ja in den
bisherigen Schleifen. Ich brauche das 6502 Handbuch.
Das suche ich jetzt im Internet.

Hallo Falk,
Dein Vokabular, könnte besser sein.
Liebe Grüße
Günter K.
(ENK)

Ach ja: Christoph M. (mchris) vomm 12.05.2025 18:49
Ich bin immer noch erstaunt über den Emulator, - ! Sehr gut!
Und ich sehe, dass ich die Forum-Seiten hier im Threat
gar nicht gut genug durchgelesen habe! ...
Ich bekomme gerade Besuch, und melde mich später.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Das suche ich jetzt im Internet.

Das kannst Du dir sparen.
Christoph hat bereits ein Programm gepostet, das mehrere verschiedene 
Töne hintereinander abspielt.
Versuche das zu verstehen.

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

von Günter K. (enk)


Lesenswert?

von Klaus (feelfree) schrieb heute am 18.05.2025 14:57,
denn Günter K. schrieb:
> Das suche ich jetzt im Internet.

Klaus schrieb:
> Das kannst Du dir sparen.
> Christoph hat bereits ein Programm gepostet, das mehrere verschiedene
> Töne hintereinander abspielt.
> Versuche das zu verstehen.
>
> Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen,
> Erfahrung?"
von Christoph M. (mchris) 06.05.2025 11:56 Lesenswert? - Ja! Auf jeden 
Fall!!
Hallo Leute,
hallo Christoph M. (mchris) DANKESCHÖN!
Ich versuche, später mal das Programm, so hexadezimal in der Art zu 
übertragen, wie Hans Otten in JUNIOR-COMPUTER das macht. Einige Befehle 
habe ich noch nicht gelernt. Ich melde mich dazu wenn ich da dran bin, 
und bitte, das dann zu beantworten. Danach -versuche- ich, ein 
Ablauf-Diagramm zu erstellen; ob es mir gelingt, weiß ich noch nicht. 
Ohne Timer,
stelle ich es mir schwerer vor.
Mit lieben Grüßen
Günter K.
(ENK)

P.S.: Doch vorher versuche ich das Folgende, weil
Klaus schrieb:
> Lass' das bitte.
> Verändere/erweitere das Programm mit den 440Hz schrittweise:
>
> - dass es eine andere Tonhöhe abspielt
> - dass es den Ton z.B. nur eine bestimmte Zeit abspielt
> - dass es 2 verschiedene Töne hintereinander abspielt.
Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. - 
Doch
 danach vielleicht: G4 + B4, als kleine Terz.
 Danach vielleicht: G4 + C5, als große Terz.
(Aber irgendwie, kommt mir in den Sinn, die Tonsequenz-Kürzel
  in Form von Hexadezimale Zahl für 'f' also Frequenz von Christoph M.
  zu verwenden.)
Ob mir das -hier- gelingt, weiß ich jetzt noch nicht.
Erst mal nur die 3 Zweier-Gruppen. So wiederhole ich:
Mit lieben Grüßen
Günter K.
(ENK)

: Bearbeitet durch User
von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Günter K. schrieb:
> Ich versuche, später mal das Programm, so hexadezimal in der Art zu
> übertragen, wie Hans Otten in JUNIOR-COMPUTER das macht.

Der Hinweis gilt immer noch.

https://www.asm80.com/

Und während in villariba noch mühsam der Machinencode per Hand, Fuß und 
Gedächtnislücke geklöppelt wird, wird in villabacho schon RocknRoll 
gespielt! ;-)

Siehe Anhang.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. -
> Doch
>  danach vielleicht: G4 + B4, als kleine Terz.
> ....

Ich verstehe dein Gedankengänge Nullkommanull.

Ich hab es dir bereits einmal vorgerechnet.

Die Frequenz holst Du dir aus dem Internet.
Dann rechnest Du 1000000µs geteilt durch die gewünschte Frequenz und 
erhältst dadurch die Periodenlänge.
Das Ergebnis geteilt durch 2 ist die halbe Periodenlänge in µs, so lange 
muss Du zwischen 0 und 1 bzw 1 und 0 warten.
Ein Takt ist bei deinem 1MHz Prozessor genau 1µs lang.
Wenn also deine Delay-Schleife 6 Takte braucht, muss Du nur noch die 
berechnete halbe Periodenlänge durch 6 teilen und Du hast deinen Wert, 
wie oft Du in de Schleife warten musst.

Ich habe jetzt länger gebraucht das hier hinzuschreiben als es einfach 
(und einmalig!) auszurechnen.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Günter K. schrieb:
> Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. -
> Doch
>  danach vielleicht: G4 + B4, als kleine Terz.
> ....

Klaus (feelfree):
>Ich verstehe dein Gedankengänge Nullkommanull.

Ich glaube, da gibt es zwei Aspekte: Das eine gedankliche Problem ist, 
wie man einen Tonwechsel ohne Unterbrechung machen kann. Beim Wechsel 
des Tones werden wird ja eine andere Befehlssequenz durchlaufen und die 
verändert genau eine Periode der Schwingung. In der Realität merkt man 
aber beim Abspielen der Beispielprogramme (z.B. der Tonleiter) nichts, 
weil der Wechsel so schnell erfolgt, dass die veränderte Periodenlänge 
keinen hörbaren Effekt hat.
Der zweite, eher ziemlich komplizierte und sportliche Aspekt ist: Wie 
zwei Töne (mit einem Lautprecherpin ) gleichzeitig spielen (G4 + B4), so 
dass ein Akkord entsteht.
Das ist machbar, wie einige Videos mit dem Apple 2 (der eher in den 
80.er Jahren aktuell war), zeigen.

von Günter K. (enk)


Lesenswert?

Christoph M. schrieb:
> Günter K. schrieb:
>> Nur für den Anfang: G4 + A4, als große Sekunde. Das wird gelingen. -
>> Doch
>>  danach vielleicht: G4 + B4, als kleine Terz.
>> ....
>
> Klaus (feelfree):
>>Ich verstehe dein Gedankengänge Nullkommanull.
>
> Ich glaube, da gibt es zwei Aspekte: Das eine gedankliche Problem ist,
> wie man einen Tonwechsel ohne Unterbrechung machen kann. Beim Wechsel
> des Tones werden wird ja eine andere Befehlssequenz durchlaufen und die
> verändert genau eine Periode der Schwingung. In der Realität merkt man
> aber beim Abspielen der Beispielprogramme (z.B. der Tonleiter) nichts,
> weil der Wechsel so schnell erfolgt, dass die veränderte Periodenlänge
> keinen hörbaren Effekt hat.
> Der zweite, eher ziemlich komplizierte und sportliche Aspekt ist: Wie
> zwei Töne (mit einem Lautprecherpin ) gleichzeitig spielen (G4 + B4), so
> dass ein Akkord entsteht.
> Das ist machbar, wie einige Videos mit dem Apple 2 (der eher in den
> 80.er Jahren aktuell war), zeigen.

Christoph M. schrieb:
> Klaus (feelfree):
>>Ich verstehe dein Gedankengänge Nullkommanull.

Hallo liebe Leute,
ich hatte auch garnicht von einem ganzen Akkord gesprochen,
sondern ich meinte nur einzelne Töne.

Inzwischen hatte ich schon wieder eine ganze Aufsatzseite geschrieben,
wie ich an der richtigen Stelle in der NULL-Phase, eine Zählung 
unterbringe, - doch ich schicke es nicht ab.

Stattdessen, lese ich noch was in den Büchern.
Der Prozess, braucht eine Uhr.

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

von Cyblord -. (cyblord)


Lesenswert?

Falk B. schrieb:
> Günter K. schrieb:
>> Ich versuche, später mal das Programm, so hexadezimal in der Art zu
>> übertragen, wie Hans Otten in JUNIOR-COMPUTER das macht.
>
> Der Hinweis gilt immer noch.
>
> https://www.asm80.com/
>

Das wurde jetzt schon ca 10 mal vorgeschlagen. Ich frage mich ob der TE 
es überhaupt EINMAL angeklickt und ausprobiert hat.

Und nein, ich halte die völlig falsche und beratungsresistente 
Vorgehensweise die wir hier sehen überhaupt nicht für altersbedingt. Wer 
bisher strukturiert und klar denken und arbeiten konnte verfällt nicht 
plötzlich in so einen Modus. No Way. Das war bei dem noch nie anders.

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Inzwischen hatte ich schon wieder eine ganze Aufsatzseite geschrieben,
> wie ich an der richtigen Stelle in der NULL-Phase, eine Zählung
> unterbringe

Völlig überflüssig, es braucht keine NULL-Phase.
Und zum drölfzigsten Mal: Weiter oben hat Christoph ein Programm 
gepostet, das eine Tonleiter ausgibt. Inklusive Hörbeispiel.
Versuche das Programm zu verstehen. Wenn die das nicht gelingt, Frage 
konkret nach was du nicht verstehst
Solange du das Programm nicht verstanden hast, brauchst du keine eigenen 
Versuche starten, die werden nämlich grandios scheitern.

von Thilo L. (bc107)


Lesenswert?

Hmmm... also, ich muss sagen, beim Lesen dieses Threads (ja, mit 'd'!) 
bin ich hin- und hergerissen. Einesteils finde ich es immer 
bewundernswert, wenn jemand (egal in welchem Alter) noch den Elan hat, 
sich durch Selbststudium etwas selbst beizubringen. Andererseits tut es 
mir fast körperlich weh, mit anzusehen, wie Günter hier weitaus 
schneller in immer abstrusere Gedanken, Ideen, Versuche, 
Missverständnisse etc. fällt, als ihm hier auch nur ein einziges Konzept 
hinreichend nahegebracht werden kann.
Eigentlich braucht er Jemanden, der sich mal einen ganzen 
Nachmittag/Abend bei 'nem guten Bier oder Kamillentee mit ihm 
zusammensetzt und zusammenhängend wenigstens die Grundideen ohne 
Abschweifen nahebringt.
Aber so wie hier wird das nix: er versucht, Tonfolgen und Lieder 
abzuspielen, hat aber noch elementare Probleme damit, überhaupt die 
Funktionsweise einer CPU, den Maschinenbefehlen und Programmstrukturen 
zu verinnerlichen. Und nun will er gleich mehrere Töne gleichzeitg 
erzeugen. Das ist ungefähr so, als ob man gleichzeitig die Saiten einer 
Gitarre zählt, die Mechanik der Wirbel analysiert und eine Etude 
komponieren will.

Schade, aber ich persönlich sehe nicht, wie man ihm effizent die Materie 
nahebringen kann.

von Cyblord -. (cyblord)


Lesenswert?

Thilo L. schrieb:
> Eigentlich braucht er Jemanden, der sich mal einen ganzen
> Nachmittag/Abend bei 'nem guten Bier oder Kamillentee mit ihm
> zusammensetzt und zusammenhängend wenigstens die Grundideen ohne
> Abschweifen nahebringt.

Das Ergebnis wäre exakt das gleiche. Er ist schlicht nicht aufnahmefähig 
für Tipps und Ratschläge.

Und die Grundidee einer CPU, der Befehle usw. kann man sich am besten 
selbst und in max. 1 Stunde beibügeln. Wenn man denn will. Inkl. Youtube 
Videos wenn man zu faul zum lesen ist.

Das passiert aber alles nicht.

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


Lesenswert?

Thilo L. schrieb:
> Und nun will er gleich mehrere Töne gleichzeitg
> erzeugen. Das ist ungefähr so, als ob man gleichzeitig die Saiten einer
> Gitarre zählt, die Mechanik der Wirbel analysiert und eine Etude
> komponieren will.

Hallo lieber Thilo
Irgendwo habe ich geschrieben, dass ich keine Akkorde meinte, d.h.:
Nicht mehrere Töne gleichzeitig. Also:

Günter K. schrieb:
> Hallo liebe Leute,
> ich hatte auch garnicht von einem ganzen Akkord gesprochen,
> sondern ich meinte nur einzelne Töne.

Ich danke aber für Deinen verständnisvollen Beitrag.
Denn es geht um das Verstehen. Nicht um das Fertige zu übernehmen;
obschon ich die Leistung von Christoph M. sehr bewundere!!

Die Umrechnung aus den µSekunden von Klaus(feelfree) von 18.05.2025 
19:45
finde ich schon sehr gut. - Ob die Zeit reicht, - da noch was 
zwischenzuschieben? Da, bin jetzt noch nicht ganz sicher. Das weiß ich 
erst dann, wenn ich es ausprobiert habe. Denn immerhin muss ich ja 
hochzählen
(Nun ja, - es wird jedesmal nur 1 x hochgezählt) aber das verändert 
schon die Frequenz und zwar so, dass ich den (x vielleicht nicht) Y-Wert 
ändern muss, damit der Ton wieder stimmt. - Und ich muss so viel 
hochzählen, dass
ich 1/128 des Takts zusammenbekomme.

Kein Problem ist das mit dem Timer, weil er alleine selber zählt.
An einer Stelle hatte ich mich aber verschrieben, denn da hatte ich,
6502 statt 6532 für den Timer geschrieben.
Das geht, denn der Timer und der 6502 sollen ja zusammenarbeiten.
Ein Proramm einfach abschreiben, das ist -zu- einfach.
Man möchte es ja auch verstehen.
Liebe Grüße
Günter K.
(ENK)

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ein Proramm einfach abschreiben, das ist -zu- einfach.
> Man möchte es ja auch verstehen.

Bevor du nicht ein abgeschriebenes, fertiges Programm verstanden hast, 
brauchst du erst gar nicht versuchen, eines selbst zu schreiben. Das 
wird scheitern, wie man ja an jedem  Beitrag von dir erkennen kann.

Lernen kann man an Beispielen. Wie machen es andere?
Und wenn man ein Beispiel verstanden hat, kann man es verändern und 
erweitern. So lernt man.

Analogie:
Wenn du lernen willst, wie man schriftlich multipliziert, kannst du 
versuchen, den Rechenweg selbst herzuleiten. Oder eben eine Anleitung 
befolgen, 2-3 Beispiele nachzuvollziehen und dann erst selbst zu 
rechnen.

Günter K. schrieb:
> Kein Problem ist das mit dem Timer, weil er alleine selber zählt

Das zeigt mir, dass du nix verstanden hast. Einen Timer zu benutzen ist 
viel komplexer, das bekommst du niemals hin.
Vergiss den Timer. Hab ich aber auch schon mehr als einmal geschrieben.

von Christoph M. (mchris)


Lesenswert?

Hier mal der PiPico-6502-Emulator, falls jemand die Töne in Echtzeit 
hören will und keine Junior-Hardware hat:
Beitrag "6502 Emulator PiPico"

von Thomas W. (datenreisender)


Lesenswert?

Christoph M. schrieb:
> Hier mal der PiPico-6502-Emulator, falls jemand die Töne in Echtzeit
> hören will und keine Junior-Hardware hat:
> Beitrag "6502 Emulator PiPico"

Sehr schoen! Werde ich am Wochenende einmal ausprobieren.

Da ich mit dem Junior waehrend der Schulzeit programmieren gelernt habe 
und jetzt mit einer 5EUR-Platine das gleiche machen kann: Irgendwie 
schliesst sich der Kreis.

Gruesse

von Günter K. (enk)


Lesenswert?

Hallo Leute,

Ich hatte einen langen Beitrag geschrieben, der alles
bezgl. dessen erklärt.

Tut mir Leid. Ich muss jetzt in die Stadt.
Das nächste mal, schreibe ich zu erst in WORD.
Liebe Grüße
Günter K.
(ENK)

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Das nächste mal, schreibe ich zu erst in WORD.

Und ausdrucken nicht vergessen!

von Roland F. (rhf)


Lesenswert?

Hallo Günter,
wo wohnst du?

rhf

von Günter K. (enk)


Lesenswert?

Hallo Leute,
es folgt: von Christoph M. (mchris) 14.05.2025 06:47

Christoph M. schrieb: > Und hier als praktische 
Übung:
>
> 1. rufe diese Seite auf:
> https://www.masswerk.at/6502/assembler.html
> 2. tippe im linken Fenster mit der Bezeichnung 'src' den Text 'nop' ein
> 3. drücke rechts unten auf 'Assemble'
> 4. drücke auf 'OK'
> 5. schaue das Ergebnis auf der rechten Seite im Fenster 'object code'
> an.

Hallo Christoph M.,
Bitte, wo hast Du das Programm mit mehreren Tönen gepostet?
Ich suchte, habe es leider nicht gefunden.
(Meine sogar es gesehen zu haben.)
Es sind zu viele Trump-Biden-Postings dazwischen.
Hab' mir auch mal den Rasberry PICO Pi zurechtgelegt.
Was mich aber auch interessiert ist der Maschinen-Code,
welches hoffentlich noch in gleicher Reihenfolge ist,
wie es erstellt wurde - und so funktioniert.

Einmal sah ich, dass da beim Apple II
eine ganz andere Reihenfolge erschien. (Das verwirrt!).
Bitte schicke mir das Programm oder den LINK.
Liebe Grüße
Günter K.
(ENK)

: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Bitte, wo hast Du das Programm mit mehreren Tönen gepostet?

Ich habe es bereits 3 mal verlinkt. Macht ja nix, schadet ja auch kein 
viertes mal:

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

Aber ich paste es hier nochmal rein, damit es auch sauber mit
 https://www.masswerk.at/6502/assembler.html
assembliert werden kann:
1
    ;*****************************************************************************
2
    ; 
3
    ; erzeuge eine Tonleiter mit Rechecktönen
4
    ;
5
    ; Zielfrequenzen
6
    ; f =   261.63   293.66   329.63   349.23   392.00   440.00   493.88   523.25
7
    ;
8
    ; Hardware: 6502, fcpu=1MHz
9
    ; 
10
    ;*****************************************************************************
11
.org $300
12
    lda #$1
13
    sta PBDD     ; set PB0 to output
14
mainloop:
15
    ; C
16
    lda #200
17
    sta 0 ; teiler register
18
    jsr playnote
19
    ; D
20
    lda #158
21
    sta 0 ; teiler register
22
    jsr playnote
23
    ; E
24
    lda #121
25
    sta 0 ; teiler register
26
    jsr playnote
27
    ; F
28
    lda #104
29
    sta 0 ; teiler register
30
    jsr playnote
31
    ; G
32
    lda #73
33
    sta 0 ; teiler register
34
    jsr playnote
35
    ; H
36
    lda #45
37
    sta 0 ; teiler register
38
    jsr playnote
39
    ; A
40
    lda #20
41
    sta 0 ; teiler register
42
    jsr playnote
43
    ; C
44
    lda #9
45
    sta 0 ; teiler register
46
    jsr playnote
47
    jmp mainloop
48
playnote:
49
    ldy #50 ; duration
50
loop:
51
    ; default delay
52
    ldx #180        ; 5us×179+5us=900us
53
    jsr shortdelay  ; 6 cyles
54
    ; additional dela
55
    ldx 0 ; teiler register
56
    jsr shortdelay
57
    lda PBD      ; Read port B
58
    eor #$01     ; Toggle bit 0
59
    sta PBD      ; Write back
60
    dey
61
    bne loop
62
    rts
63
    ; Total time (in microseconds)=5N+5
64
shortdelay:
65
    dex             ; 2 cyc
66
    bne shortdelay  ; 3 cyc jmp , 2 no mp
67
    rts             ; 6 cyc
68
69
; MOS6532 PIA addreses
70
PAD:     .org $1A80
71
PADD:    .org $1A81
72
PBD:     .org $1A82
73
PBDD:    .org $1A83

: Bearbeitet durch User
von Dddns (dddns)


Lesenswert?

Hallo Günter,

ich denke, Du suchst genau das hier: https://geoffg.net/picomite.html

von Klaus (feelfree)


Lesenswert?

Dddns schrieb:
> Hallo Günter,
>
> ich denke, Du suchst genau das hier: https://geoffg.net/picomite.html

Nein, das sucht er ganz gewiss nicht.

von Günter K. (enk)


Lesenswert?

Klaus schrieb:
Dddns schrieb:
> Hallo Günter,
>
> ich denke, Du suchst genau das hier: https://geoffg.net/picomite.html

 von Klaus (feelfree) 20.05.2025 23:16
Nein, das sucht er ganz gewiss nicht.

Günter K. schreibt: Hallo liebe Leute!
Warum nicht? - Aber bitte auf Deutsch.
Liebe Grüße
Günter K.
(ENK)

Also lieber Klaus, es ist ja gut gemeint mit den einzelnen kleinen 
Schritten.
Denn genau das Modulare, suche ich. Fertige Programme sind oft zu sehr 
mit Verschachtelungen umschlungen. - Ja, die Fragen müssen in einzelnen 
Schritten, - also wieder Fragen zerlegt werden.

Ich werde auch -nicht-, den ganzen - Assembler - überfliegen können, -
- da liegst Du richtig -,
sondern nur kleine Schritte, die man einzeln versteht.
Wenn man dann, einige zusammengefasste Schritte verstanden hat, dann hat 
man schon größere Schrittchen verstanden, bis man so viel mehr 
verstanden hat, dass man es dann so, anwenden kann.

Die Schriftsteller meinen es gut, jedoch man wird vielleicht mit vielen
verstrickten Problemen konfrontiert.

Der Studierte, hat ein ganz anderes Gehirntraining hinter sich.
Diese Möglichkeit, wurde mir aber schon in der Kindheit geraubt!
Ich war zu schwach und zu Hilflos!
Liebe Grüße
Günter K.
(ENK)

von Thilo L. (bc107)


Lesenswert?

Also ich bin raus. Wenn ich mal wieder Lust auf Unterhaltung habe, nehme 
ich mir vielleicht eine Tüte Chips und verfolge dieses Drama 
ausschließlich lesenderweise.

Nun will Günter "ganze Assembler überfliegen"??? Schon mit den 
Begrifflichkeiten hat er Probleme: er meint wohl den gesamten 
Assembler-Code eines Programmes.
Oder "Fertige Programme sind oft zu sehr mit Verschachtelungen 
umschlungen." Was soll das denn nur bedeuten? Ein fertiges Programm wird 
höchstens kurz - aus seliger Wonne ob des Erreichten - von seinem 
Programmierer kurz und virtuell umschlungen...

Nun hat Günter sich einen Raspberry zurecht gelegt - hat er nicht genug 
Probleme mit einer der allereinfachsten Architekturen, seinem 6502?

Genau das, was ich in meinem Post weiter oben angemerkt hatte, passiert 
bei Günter in fortgesetzter Weise: kein einziger Gedanke (sinnvoll auf 
beherrschbare Komplexität zurecht gestutzt) wird einfach nur mal so 
richtig durchdacht, bis die Sache sitzt. Ständig schießen 
unzusammenhängende Bemerkungen und Überlegungen dazwischen.

Und zur Erleicherung beim Schreiben eines Posts das Ganze zunächst in 
Word zu verfassen, schießt den Vogel ab: Günter, wie wär's mit Hammer 
und Meißel und einem großen Stein?? Das übersteht garantiert ALLE 
Rechner-Crashes oder sonstige Probleme mit dem Internet!

Nee, wie gesagt, ich bin raus. Aber ich überbewerte schon wieder die 
Wichtigkeit meines Verhaltens im öffentlichen Raum, sorry.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Thilo L. schrieb:
> Ständig schießen
> unzusammenhängende Bemerkungen und Überlegungen dazwischen.

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

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich war zu schwach und zu Hilflos!

Dann such' dir ein anderes Hobby. Wenn Du es nicht mal schaffst, 20 
Zeilen Assemblercode verstehen zu wollen, sind weitere Anstrengungen in 
dieser Richtung absolut sinnlos.

von Christoph M. (mchris)


Lesenswert?

Ich finde die Tonerzeugung auf dem 6502 ziemlich interessant, weil man 
mit sehr wenigen Resourcen auskommen muss.
Mein Ziel ist es, deutlich komplexere Sounds zu erzeugen.
Damit die "professionelle Diskussion" nicht abreist, habe ich hier mal 
einen Thread für Leute erstellt, die in der Tiefe diskutieren wollen.

Beitrag "6502 sound generation"

von Christoph M. (mchris)


Lesenswert?

Apropos: hier noch eine praktische Frage zum Juniorcomputer.
Die Beispielprogramme starten immer ab Adresse 0x300 und damit sind nur 
noch 256 Bytes für das Programm frei.
Ich brauche mehr. Deshalb die Frage: Der Stackpointer geht ja von 
0x100-0x1FF, d.h. könnten die Programme auch ab 0x200 beginnen.

von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:
> Apropos: hier noch eine praktische Frage zum Juniorcomputer.

Wie wärs mit einem eigenen Thread für DEINE Probleme anstatt den hier 
sowieso extrem verwirrten Thread auch noch zu missbrauchen?

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Also lieber Klaus, es ist ja gut gemeint mit den einzelnen kleinen
> Schritten.
> Denn genau das Modulare, suche ich. Fertige Programme sind oft zu sehr
> mit Verschachtelungen umschlungen. - Ja, die Fragen müssen in einzelnen
> Schritten, - also wieder Fragen zerlegt werden.

Wie wärs mal wenn du KLARTEXT redest? Warum schwurbelst du so extrem um 
alles herum?
Was willst du mit dem obigen Satz sagen?

Klaus hat dir ein Programm gepostet welches Töne mit Variabler Tonhöhe 
erzeugen kann.
Das war doch deine Frage. Was ist nun los?
Verstehst du das Programm nicht? Dann frage konkret.

> Ich werde auch -nicht-, den ganzen - Assembler - überfliegen können, -
D.h. du kannst kein Beispielprogramm mit 20 Zeilen ASM anschauen und 
verstehen?
Warum nicht?
Und wenn das nicht geht, was glaubst du geht dann überhaupt in Richtung 
Assembler?

Sorry dein Problem ist nicht nur die Programmierung, sondern du kannst 
dich anscheinend auch überhaupt nicht ausdrücken.
Sortiere mal deine Gedanken und formuliere sie wie ein normaler Mensch.

Also WAS WILLST DU?
WAS SUCHST DU?
WELCHE FRAGEN HAST DU KONKRET?

Bitte mal KLARTEXT.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

von Cyblord -. (cyblord)
21.05.2025 10:36

>Christoph M. schrieb:
>> Apropos: hier noch eine praktische Frage zum Juniorcomputer.

>Wie wärs mit einem eigenen Thread für DEINE Probleme anstatt den hier
>sowieso extrem verwirrten Thread auch noch zu missbrauchen?

Die Frage, wo die Programme auf dem Juniorcomputer von Günther allokiert 
sind, ist durchaus relevant. Kannst du dein dummes Geschwätz irgendwo 
anders platzieren?

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:
> Die Frage, wo die Programme auf dem Juniorcomputer von Günther allokiert
> sind, ist durchaus relevant.

Das ist für Günther absolut nicht relevant.

Du funkst hier ständig mit deinen Themen dazwischen die für den TE null 
Relevanz haben. Mach einen eigenen Thread dafür auf. Das ist hier nun 
mal üblich. Threads kapern geht nicht.

von Christoph M. (mchris)


Lesenswert?

Cyblord -. (cyblord)
21.05.2025 11:44
>Du funkst hier ständig mit deinen Themen dazwischen die für den TE null
>Relevanz haben.

Bei dem was du Günter gegenüber hier bisher abgesondert hast: Hör auf 
Kreide zu fressen und den Trump zu spielen.

von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:

> Bei dem was du Günter gegenüber hier bisher abgesondert hast

Ich "sondere" hier gar nichts ab. Arbeite mal ein wenig an deinen 
Umgangsformen. Hattest du keine Kinderstube?

Ich sage ihm klar und On-Topic was das Problem ist. Im Gegensatz zu dir 
werde ich nicht ausfallend.

> Hör auf
> Kreide zu fressen und den Trump zu spielen.

Du scheinst tiefergehende Probleme zu haben und auch Probleme sachlich 
bei einem Thema zu bleiben. Das hat hier alles nichts zu suchen. Du 
zerstörst den Thread mit deinen Off-topic Anwürfen und Anschuldigungen.
Arbeite an dir und deinem eigenen Verhalten. Da hast du genug zu tun.

: Bearbeitet durch User
von Gunnar F. (gufi36)


Lesenswert?

Cyblord -. schrieb:
> Also WAS WILLST DU?
> WAS SUCHST DU?
> WELCHE FRAGEN HAST DU KONKRET?
>
> Bitte mal KLARTEXT.

Und Günter, du bist gefragt worden, wo du wohnst.
Ich selber habe auch in meiner Jugend viel mit dem seligen Commodore 
Pet2001 (auch MOS6502) in Assembler programmiert. Und wenn du wirklich 
interessiert bist, würde ich dir auch mal weiter helfen wollen. Aber ich 
kann bestätigen, was einige Vorredner schon sagten: Deine Fragen hier 
sind dafür nicht zielführend.

P.S: Das erste größere Programm das ich damals schrieb, war ein 
Assembler! Zu Beginn hackte ich wirklich Maschinencode ein, berechnete 
Sprungbefehle von Hand. Und wenn einer nicht stimmte: Adios! Da ich noch 
keinen Drucker besaß, hieß das, die ganze Litanei mit Bleistift auf 
Papier zu schreiben, ganz ähnlich zu jemanden, der seine damaligen Werke 
hier auch gezeigt hat. Auf den (1-pass-) Assembler war ich dann auch 
sehr stolz und die 1 in der Computer AG der Schule war dauerhaft meins. 
Schnüff, lange her.

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


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Apropos: hier noch eine praktische Frage zum Juniorcomputer.
> Die Beispielprogramme starten immer ab Adresse 0x300 und damit sind nur
> noch 256 Bytes für das Programm frei.
> Ich brauche mehr. Deshalb die Frage: Der Stackpointer geht ja von
> 0x100-0x1FF, d.h. könnten die Programme auch ab 0x200 beginnen.

Der Monitor beim Junior verwendet einen Teil der Zeropage 0x0000..0x00FF 
für seine Variablen.
Die 6502 verwendet 0x0100..0x01FF als Stackpointer.

Seite 2 sollte eigentlich auch frei sein, also mit Anfangsadresse 0x0200 
- bei Günter hat das erste Beispiel aber nicht funktioniert, daher hatte 
ich ihm empfohlen, das mal auf Adresse 0300 zu legen, da ging es dann.

Keine Ahnung, ob er sich da vertippt hatte oder das RAM einen Schuss 
hat.

Ich bin noch mal den Monitor durchgegangen, Seite zwei benutzt der 
nicht.
Von 0x0000 bis 0x00E0 kann man die Zeropage auch für eigene Programme 
verwenden. Und wenn man den Stack unter Kontrolle hat, dann steht auch 
die Page 1 weitgehend zur Verfügung!

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)
21.05.2025 14:11
>Seite 2 sollte eigentlich auch frei sein, also mit Anfangsadresse 0x0200
>- bei Günter hat das erste Beispiel aber nicht funktioniert, daher hatte
>ich ihm empfohlen, das mal auf Adresse 0300 zu legen, da ging es dann.
>Keine Ahnung, ob er sich da vertippt hatte oder das RAM einen Schuss
>hat.

Ah, ok .. ich meine einige Programme für den Apple 2 gesehen zu haben, 
die auch bei 0x300 gestartet sind und dachte das sein eine Art 
"Konvention". Meine Erklärung wäre gewesen: Page 1 für die schnellen 
Variablenzugriffe, Page 2 für den Stackpointer und Page 3 für langsame 
Variablen.
Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255 
Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich 
vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind. Das 
ist ein wenig der Vorteil der modernen Zeit: Beim PiPico-Emulator kann 
man einfach den HEX-Code per Drag&Drop in die Kommandozeile werfen und 
muss nicht jedesmal das Ganze wieder mühselig eintippen.

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


Lesenswert?

Christoph M. schrieb:
> Ah, ok .. ich meine einige Programme für den Apple 2 gesehen zu haben,
> die auch bei 0x300 gestartet sind und dachte das sein eine Art
> "Konvention".

Nö, der A2 hat ja ein viel mächtigeres Betriebssystem im ROM, da reichen 
wahrscheinlich 256 Byte nicht für die Variablen aus...

Christoph M. schrieb:
> Page 1 für die schnellen
> Variablenzugriffe, Page 2 für den Stackpointer und Page 3 für langsame
> Variablen.

Page 0, 1, 2... Kann so sein, ja!

Christoph M. schrieb:
> Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255
> Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich
> vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind.

Das ist es in der Tat. Einmal aus, alles weg... Der Junior hat aber auch 
eine Interface-Karte, mit der man alles auf Cassette speichern konnte! 
Die hat aber kaum jemand.

https://www.wolfgangrobel.de/sbc/junior2.htm#upd1

von Soul E. (soul_eye)


Lesenswert?

Christoph M. schrieb:
> Ah, ok .. ich meine einige Programme für den Apple 2 gesehen zu haben,
> die auch bei 0x300 gestartet sind und dachte das sein eine Art
> "Konvention". Meine Erklärung wäre gewesen: Page 1 für die schnellen
> Variablenzugriffe, Page 2 für den Stackpointer und Page 3 für langsame
> Variablen.

Page 0 für schnelle Variablen (zero page register file), Page 1 für den 
Stack, und Page 2 nutzte der Apple für den Eingabepuffer der Tastatur 
bzw des COM-Ports. Der Bildwiederholspeicher ging von $0400 - $07FF, und 
BASIC-Programme begannen meist bei $0800. Damit war Page 3 frei für 
kurze Assemblerprogramme, die nicht mit dem BASIC kollidieren sollten, 
und das DOS legte dort ein paar Variablen ab.

Daher liegen viele Assembler-Codebeispiele auf Adresse $0300.


> Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255
> Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich
> vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind.

Richtig. Daher hat man relativ schnell angefangen, auf einen 
Cassettenrecorder als Datenspeicher und ein Terminal bzw Fernschreiber 
als Ein/Ausgabegerät zu sparen.

von Günter K. (enk)


Lesenswert?

Wolfgang R. schrieb:
> Ich bin noch mal den Monitor durchgegangen, Seite zwei benutzt der
> nicht.
> Von 0x0000 bis 0x00E0 kann man die Zeropage auch für eigene Programme
> verwenden. Und wenn man den Stack unter Kontrolle hat, dann steht auch
> die Page 1 weitgehend zur Verfügung!

Danke Wolfgang R., dann probiere ich es noch mal ab 0x0200.
Wenn nicht, mache ich wieder weiter ab 0x300.
Liebe Grüße
Günter K.
(ENK)

von Sherlock 🕵🏽‍♂️ (Gast)


Lesenswert?

Cyblord -. schrieb:
> Bitte mal KLARTEXT.

Der Punkt ist, das manche Leute genau das einfach nicht hinbekommen, und 
deswegen (meiner Meinung nach) nie gute Entwickler werden können.

Das ist nicht schlimm, niemand kann alles und jeder kann irgend etwas 
gut.

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> dann probiere ich es noch mal ab 0x0200.

Auch da wieder: Kannst Du machen, bringt dir aber absolut nix, nada, 
niente.
Außer halt Zeit totschlagen ohne Erkenntnisgewinn.

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


Lesenswert?

In diesem Forum hat die Mehrzahl den Spaß am Spielen total verloren. 
Traurig.

von Klaus (feelfree)


Lesenswert?

Wolfgang R. schrieb:
> In diesem Forum hat die Mehrzahl den Spaß am Spielen total verloren.
> Traurig.

Nö, überhaupt nicht. Beide jedem anderen hätte ich meinen Kommentar auch 
nicht abgegeben. Aber Günter braucht für die Aktion geschätzte 3-4 Tage, 
in denen er nichts sinnvolles bzgl. Assembler lernt. Es wäre nur der 
nächste Nebenkriegsschauplatz.

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


Lesenswert?

Wolfgang R. schrieb:
> In diesem Forum hat die Mehrzahl den Spaß am Spielen total
> verloren.
> Traurig.

Traurig, ja...
Aber "Mehrzahl"?

Ich schätze eher, dass diejenigen, mit wachem Spieltrieb, nicht auf 
andere Spieler herabsehen müssen.
Und sich etwas weniger mit urteilen beschäftigen.

OK, 6502 ASM ist auch für mich von wenig bis keinem Interesse. Was aber 
nicht dazu führt, dass ich anderen Leuten das Spielzeug kaputttrampen 
muss. Auch wenn mir die Farbe oder das Vorgehen nicht schmeckt.

von Cyblord -. (cyblord)


Lesenswert?

Arduino F. schrieb:
> Was aber
> nicht dazu führt, dass ich anderen Leuten das Spielzeug kaputttrampen
> muss. Auch wenn mir die Farbe oder das Vorgehen nicht schmeckt.

Das passiert hier auch gar nicht. Kannst du nicht lesen? Oder haperts 
bei dir am Verstehen?

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,

Soul E. schrieb:
....
Christoph M. schrieb:
>> Aber ich gehe davon aus, dass es relativ mühselig ist, mehr als 255
>> Bytes über die HEX-Tastatur des Junior-Computers einzutippen und ich
>> vermute, dass nach Ausschalten des Stromes auch alle Daten weg sind.

Günter K. schreibt:
Ja, nach Ausschalten des Stromes sind (fast) alle Daten weg, -
(bis auf den Daten des MONITORs bzw. des Betriebssystems vom ROM).
Ich weiß wirklich, zu wenig darüber.
Der OP-Code ist mir wichtig.
Mit lieben Grüßen
Günter K.
(ENK)

: Bearbeitet durch User
von Soul E. (soul_eye)


Lesenswert?

Günter K. schrieb:
> Ja, nach Ausschalten des Stromes sind (fast) alle Daten weg, -
> (bis auf den Daten des MONITORs bzw. des Betriebssystems vom ROM).
> Ich weiß wirklich, zu wenig darüber.

Ein Computer hat üblicherweise einen Festwertspeicher (read only memory, 
ROM) und einen Arbeitsspeicher (read/write memory).

Der Arbeitsspeicher ist bei Deinem Apparat als random access memory 
(RAM) ausgeführt, d.h. Du kannst auf die Speicherzellen in beliebiger 
Reihenfolge zugreifen. Das war nicht immer so, frühere Rechner hatten 
sequential access memory (SAM, z.B. Trommelspeicher, 
Verzögerungsleitung, Schieberegister) oder context associative memory 
(CAM).

Der Inhalt des Arbeitsspeichers ist nach dem Ausschalten weg, der Inhalt 
des Festwertspeichers bleibt erhalten. Daher kannst Du den Inhalt des 
Arbeitsspeichers üblicherweise auf einen Massenspeicher (Magnetband, 
Diskette, Festplatte) sichern oder an ein anderes Gerät übergeben, das 
drauf aufpasst ("in der Cloud speichern").


> Der OP-Code ist mir wichtig.

Die OP-Codes, also die numerische Repräsentation der Maschinenbefehle, 
z.B. $EA oder 1110 1010 für "NOP", sind in RAM, ROM und auf Cassette 
identisch.

von Günter K. (enk)


Lesenswert?

Cyblord -. schrieb:
> Das passiert hier auch gar nicht. Kannst du nicht lesen? Oder haperts
> bei dir am Verstehen?

Hallo Leute,
So viel ich weiß, hat die ganze Welt, noch keine definitive Sprache,
(auch nicht im Englischen) außer den Programmiersprachen, und die
kann ich leider auch noch nicht.

Folglich ist "Verstehen" eben eine "Anschauungssache".
Also gemeint ist hier, dass -scheinbar angeblich-
jemand "könne nicht" lesen, was für Andere nicht
oder zu schwer zu verstehen ist. - Vetragt Euch bitte.
Gut gemeint,
liebe Grüße
Günter K.
(Enk)

von Christoph M. (mchris)


Lesenswert?

Enk schrieb:
> Vetragt Euch bitte.

/*********************************************************************/

     NICHT MIT TROLLEN DISKUTIEREN !

Cyblord ist ein über 10 Jahre im MC-Netz aktiver Forentroll.
Die intellektulle Aufgabe dieses Trolls ist Forenteilnehmer auf eine 
geschickte Art so zu beleidigen,  dass seine eigener Post nicht gelöscht 
wird, der Forenteilnehmer seinem Ärger in weitern Posts in weiteren 
Posts kundtut.
Die Grenze der Beleidigungen wird von Troll immer weiter angehoben, bis 
ein Moderator seinen Account löscht.

Im Falle von Cyblord ist das Anhängsel ".-" an seinen Nickname 
"Cyblord.-", wie oft er seinen Nickname neu anlegen musste.

Das Vorgehen der "trollartigen" ist in der Wikipedia beschrieben:

https://de.wikipedia.org/wiki/Troll_(Netzkultur)

/*********************************************************************** 
/

von Cyblord -. (cyblord)


Lesenswert?

Christoph M. schrieb:
> Im Falle von Cyblord ist das Anhängsel ".-" an seinen Nickname
> "Cyblord.-", wie oft er seinen Nickname neu anlegen musste.

Musste ich noch nie, das siehst du an der Anzahl meiner Beiträge.

Der Rest ist ebenfalls Verleumdung und zerstört diesen Thread. Gerade DU 
versuchst aktuell alles um ihn Off Topic zu ziehen. Inkl. 
Unflätigkeiten.

Bleib doch mal On-Topic und helfe dem TE. Wie wärs damit?
Persönliche Animositäten kannst du per PN klären.

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Cyblord -. schrieb:
> Der Rest ist ebenfalls Verleumdung

Haha, selten so gelacht.

Cyblord -. schrieb:
> Bleib doch mal On-Topic und helfe dem TE.

Bleib doch mal On-Topic und helfe dem TO, du lässt dich nur darüber aus, 
wie (angeblich) viel zu dumm der TE ist, wie andere ins OT abgleiten und 
dass du ja auf gar keinen Fall dazu gehörst.

von Christoph M. (mchris)


Lesenswert?

J. T. (chaoskind)
>Haha, selten so gelacht.

Es dürfte relativ wenig Sinn haben, mit ihm zu diskutieren.

Wenn man sich den Wikipedia-Artikel durchliest, ist 'cyblord' wirklich 
der prototypisch Troll, der ausschließlich auf emotionaler, nie auf 
fachlicher Ebenen diskutiert:

https://de.wikipedia.org/wiki/Troll_(Netzkultur)

Wenn ich den Artikel richtig verstehe, sind die Trolle mit einem 
Nutzeranteil von 5.6% gar nicht so selten.

Apropos .. hier gibt es ein wenig Historie:
Beitrag "Re: warum wird Cyblord -. (cyblord) nicht endgültig gesperrt?"


Aber belassen wir es dabei, vielleicht gibt es trotz der 'cyblords" auf 
dieser Welt noch eine kleine Chance, eine fachliche Diskussion in diesem 
Forum zu führen.

Ansonsten gilt der weise Spruch in Wikipedia-Artikel:

„Trolle bitte nicht füttern!“ oder „Trolle füttern verboten!“

Also eine weitere Trollkommunikation ist zu unterlassen.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Irgendwo habe ich eine Routine für das Abspielen der Notenleiter 
gefunden. Die musste ich aber stark modifizieren, dass sie lief.
Der Gag hier: die Noten sollen gleich lang sein. Dazu braucht man ein 
zweites Byte Array, das die Anzahl der "Wellenzyklen" enthält. Ich meine 
dieses Wort bei Günter gelesen zu haben.
1
; Apple II 6502 Assembly: Play C D E F G A B C scale
2
; Each note is played by toggling the speaker at $C030
3
; with a delay controlling pitch and a fixed duration.
4
;
5
; modified for
6
; Junior Computer
7
; 2025-05-22 mchris
8
9
        .org $300          ; Start address (example)
10
11
        lda #$1
12
        sta PBDD     ; set PB0 to output
13
mainloop:
14
        jsr start
15
        jmp mainloop
16
; --- Constants ---
17
;SPEAKER = $C030 ; apple2
18
SPEAKER = PBD ; Junior Computer
19
;PBD=$1A82
20
21
22
; --- Note pitch delay values ---
23
; These delay values approximate frequencies for the Apple II speaker.
24
; Smaller delay = higher pitch.
25
;
26
; Approximate values (tuned experimentally):
27
; C4 = 191, D4 = 170, E4 = 151, F4 = 143, G4 = 127, A4 = 113, B4 = 101, C5 = 95
28
29
C4  = 191
30
D4  = 170
31
E4  = 151
32
F4  = 143
33
G4  = 127
34
A4  = 113
35
B4  = 101
36
C5  = 95
37
38
pitch_delay =0
39
duration_count= 1
40
temp_duration=2
41
42
start:
43
        LDY #0                  ; Y = note index 0
44
45
play_next_note:
46
        tya
47
        pha
48
        LDA notes,Y             ; Load pitch delay for note Y
49
        STA pitch_delay
50
51
        LDA durations,Y
52
        STA duration_count
53
54
        ; einnal PlaySound ist zu kurz, mache mehrmals
55
        JSR PlaySound           ; Play the note
56
        JSR PlaySound           ; Play the note
57
        JSR PlaySound           ; Play the note
58
        JSR PlaySound           ; Play the note
59
60
        pla
61
        tay
62
        INY                     ; Next note
63
        CPY #notes_length
64
        BNE play_next_note
65
66
        RTS                     ; Return from program (or loop)
67
68
; --- PlaySound routine ---
69
; Inputs:
70
;   pitch_delay (zeropage) - controls pitch (delay length)
71
;   duration_count (zeropage) - controls duration (number of toggles)
72
;
73
; apple: Toggles speaker at $C030 to generate tone.
74
; Junior: PBD
75
76
PlaySound:
77
        LDY duration_count      ; Load duration count into Y
78
79
PlaySound_Loop:
80
        STY temp_duration       ; Save duration count temporarily
81
82
ToggleLoop:
83
        LDA SPEAKER             ; Read speaker port (optional)
84
        EOR #$1                 ; Flip bits to toggle speaker
85
        STA SPEAKER             ; Write to speaker port
86
87
        LDX pitch_delay         ; Load pitch delay into X
88
89
DelayLoop:
90
        DEX
91
        BNE DelayLoop
92
93
        LDY temp_duration
94
        DEY
95
        BNE PlaySound_Loop
96
97
        RTS
98
99
        ; --- Note sequence ---
100
        ;.segment "RODATA"
101
notes:
102
        .byte C4, D4, E4, F4, G4, A4, B4, C5
103
durations:
104
        .byte 100,112,126,132,150,168,188,200
105
106
107
notes_length = 8
108
109
PBD=$1A82
110
PBDD=$1A83

Wenn man mehr Noten ( z.B. für 2 Oktaven ) haben will, wird man wohl 
nicht umhin kommen, 2 bytes für die Noten und die Notendauern zu 
verwenden.

von Klaus (feelfree)


Lesenswert?

Christoph M. schrieb:
> STY temp_duration       ; Save duration count temporarily

Irgendwie überflüssig, oder?
Ist wahrscheinlich noch ein Überbleibsel aus einer 16bit Delay-Routine?

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Klaus (feelfree)
>Ist wahrscheinlich noch ein Überbleibsel aus einer 16bit Delay-Routine?
Hast Recht, da kann man sich etwas sparen.

Leider wird die echte 16Bit Version dann doch aufwändiger (siehe 
Anhang).
Bei dieser Version sind es 31 Frequenzen. Da man die Wellenzahl und die 
Periodenlänge braucht, sind das dann 4*31 Byte allein für die Tabellen. 
Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit.
Die Frequenz habe ich mit dem manuell abgeglichen. Man könnte mit 
Zyklenzählen und genau rechnen noch etwas Genauigkeit heraus holen.

von Cyblord -. (cyblord)


Lesenswert?

Weilt der TE eigentlich noch unter uns?

von Günter K. (enk)


Lesenswert?

Hallo liebe Leute,

ich werde demnächst vielleicht ein Programm für Musik (ab)schreiben.
Ich bitte darum es zu gestatten, das ich das Programm in Form von
Maschinen-Sprache schreibe. Weil ich noch nicht so gebildet bin,
habe ich dann mehr Platz bei den REM-Befehlen.
Bei den Befehlen, schreibe ich die Adressierungs-Art dazu.
Hallo Klaus, für Dich und -mich-, werde ich auch noch folgendes machen:
Ich schreibe eine Warteschleife, dann ein Ton, dann wieder eine 
Warteschleife, und dann wieder eine Ton. - Dann wird folgendes Stück 
geplant.
Ein Lied für ein Posthorn, mit dem Text: "Ta tü ta ta, die Post ist da."

Gedanken zur Zeit, bzw. -Timer-. - Ich teile die Zeit auf in 3/4.
Diese Zeit nenne ich: a'- Zeit, akademische Zeit, astronomische Zeit.
Sie geht glatt auf, für den Computer; - dann hat ein 1/2 Tag 16 ak'h.
Nach einem Tag, folgt die Nacht. Aber der Tag beginnt um 12 Uhr und wir 
sagen: Guten Tag. Warum? Dann brauchen die Astromen den Kalender nicht 
Umblättern, wenn sie nach den Sternen schauen, es geht hexadezimal glatt 
auf;
oder auch gezimal(?) denn nächste Ziffernzeichen ist das "G", es lässt 
sich sogar 7-Segment-Code anzeigen. Ein kurzes Wort: "Gezi." ähnlich dem 
"Dezi."
Das g geht doch, oder?
Liebe Grüße
Günter K.
(ENK)

von Peter D. (peda)


Lesenswert?

Christoph M. schrieb:
> Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit.

Da bist Du wohl der Einzige, der sich derartige Umstände noch antut.
Alle anderen schreiben alles in eine Datei, die man dann nur noch 
einspielt (RS232, USB) oder in einen Flash brennt.
Man muß seine Lebenszeit schließlich nicht mit Gewalt vernichten.

Auch kommt man für ein Projekt kaum mit nur einer Sitzung aus, sondern 
will später noch daran weiter arbeiten. Da ist es sinnvoll den alten 
Stand auf dem PC verfügbar zu haben, bzw. sogar mehrere Stände 
(Versionsverwaltung).
Schnell hat man Sackgassen eingebaut und will dann zu einem alten Stand 
wieder zurück.

von Cyblord -. (cyblord)


Lesenswert?

Günter K. schrieb:
> Gedanken zur Zeit, bzw. -Timer-. - Ich teile die Zeit auf in 3/4.
> Diese Zeit nenne ich: a'- Zeit, akademische Zeit, astronomische Zeit.
> Sie geht glatt auf, für den Computer; - dann hat ein 1/2 Tag 16 ak'h.
> Nach einem Tag, folgt die Nacht. Aber der Tag beginnt um 12 Uhr und wir
> sagen: Guten Tag. Warum? Dann brauchen die Astromen den Kalender nicht
> Umblättern, wenn sie nach den Sternen schauen, es geht hexadezimal glatt
> auf;
> oder auch gezimal(?) denn nächste Ziffernzeichen ist das "G", es lässt
> sich sogar 7-Segment-Code anzeigen. Ein kurzes Wort: "Gezi." ähnlich dem
> "Dezi."
> Das g geht doch, oder?

Kann man diesen Text nun vollends als Verabschiedung aus unserer 
Realität betrachten?

von Gunnar F. (gufi36)


Lesenswert?

Cyblord -. schrieb:
> Kann man diesen Text nun vollends als Verabschiedung aus unserer
> Realität betrachten?

ich zumindest aus meiner.

von Klaus (feelfree)


Lesenswert?

Cyblord -. schrieb:
> Günter K. schrieb:
>> Gedanken zur Zeit, bzw. -Timer-. - Ich teile die Zeit auf in 3/4.
>> Diese Zeit nenne ich: a'- Zeit, akademische Zeit, astronomische Zeit.
>> Sie geht glatt auf, für den Computer; - dann hat ein 1/2 Tag 16 ak'h.
>> Nach einem Tag, folgt die Nacht. Aber der Tag beginnt um 12 Uhr und wir
>> sagen: Guten Tag. Warum? Dann brauchen die Astromen den Kalender nicht
>> Umblättern, wenn sie nach den Sternen schauen, es geht hexadezimal glatt
>> auf;
>> oder auch gezimal(?) denn nächste Ziffernzeichen ist das "G", es lässt
>> sich sogar 7-Segment-Code anzeigen. Ein kurzes Wort: "Gezi." ähnlich dem
>> "Dezi."
>> Das g geht doch, oder?
>
> Kann man diesen Text nun vollends als Verabschiedung aus unserer
> Realität betrachten?

Ich wette, nicht mal Günter versteht das, was er da geschrieben hat.
Und ich wette, er wird es auch nie schaffen, ein Lied auf seinem Junior 
abzuspielen.

von Falk B. (falk)


Lesenswert?

Klaus schrieb:
> Ich wette, nicht mal Günter versteht das, was er da geschrieben hat.
> Und ich wette, er wird es auch nie schaffen, ein Lied auf seinem Junior
> abzuspielen.

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

von Christoph M. (mchris)


Lesenswert?

Christoph M. schrieb:
> Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit.
Peter D. (peda)
23.05.2025 12:53
>>Da bist Du wohl der Einzige, der sich derartige Umstände noch antut.

Eigentlich nicht, ich mache das per Pyhon-Script (compilieren, download 
in einem Rutsch) damit:
Beitrag "6502 Emulator PiPico"

von Günter K. (enk)


Lesenswert?

Hallo, liebe Leute,

wie soll ichs sagen? - Ich stehe dazu, dass ich nicht so klug bin.
Ich hatte mal gehört, dass Python keinen Compiler hätte; und weil -

ich nicht weiß, wie ein Compiler funktioniert, - wollte ich was über

Assembler lernen. - Und ich besorgte ein Büchlein über den 8086 und
siehe da, - da hat dieser Assembler hat auch einen Assembler.

CBM-BASIC hat keinen Assembler, sondern nur einen Interpreter. Und das
bringt ich jetzt erst (jetzt im Moment) auf die Idee, - evtl. den
-Fernschreiber- als Empfänger auf einem einfachen PC zu schreiben, denn
das GW-BASIC für den PC, erschien mir noch besser, als das von 
Commodore.
Ich möchte, -verstehen- können, was der Computer bzw. CPU macht.

Und darum, tue ich mir die Tipp-Arbeit an, um so zu versuchen,
die Beziehung zur Maschine zu behalten.
Prima, toll, was Ihr so mit den Computern macht, find ich wirklich gut!

Christoph M. schrieb:
> Christoph M. schrieb:
>> Das ist dann beim Juniorcomputer schon eine ganz schöne Tipparbeit.
> Peter D. (peda)
> 23.05.2025 12:53
>>>Da bist Du wohl der Einzige, der sich derartige Umstände noch antut.
>
> Eigentlich nicht, ich mache das per Pyhon-Script (compilieren, download
> in einem Rutsch) damit:
> Beitrag "6502 Emulator PiPico"
Immerhin, habe ich ja jetzt auch einen PiPico.
Gleich erwarte ich wieder Besuch, hab' aber schon gesagt, dass ich die
Sachen u.a. für den Junior-Computer hier auf dem Tisch stehen habe.
Was für mich auch noch interessant wäre, das wäre ein DISASSEMBLER.
Liebe Grüße
Günter K.
(ENK)

von Klaus (feelfree)


Lesenswert?

Günter K. schrieb:
> Ich stehe dazu, dass ich nicht so klug bin.

Das ist nun wirklich kein Problem und das macht dir auch niemand zum 
Vorwurf. Im Gegenteil, der Großteil will dir ja helfen.

Günter K. schrieb:
> und siehe da, - da hat dieser Assembler hat auch einen Assembler.

Aber so verwirrt wie deine Beiträge sind, würde ich mir an deiner Stelle 
nun wirklich langsam über eine beginnende Demenz Gedanken machen.

Du bekommst wirklich keinen einzigen klaren Gedanken formuliert, und das 
schon seit vielen Monaten in diesem Thread.

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


Lesenswert?

Günter K. schrieb:
> Was für mich auch noch interessant wäre, das wäre ein DISASSEMBLER.
Relativ nutzlos.
Selbst der beste Disassembler kann nicht die Intentionen des Codes 
Erstellers ermitteln.

Übrigens:
Um mal Werbung für Arduino zu machen...

Ein AVR hat ca. 130 ASM Instruktionen. Relativ leicht zu lernen.

Im Arduino Lieferumfang finden sich C und C++ Compiler.
Dazu Assembler und auch ein Disassembler

von Klaus (feelfree)


Lesenswert?

Arduino F. schrieb:
> ca. 130 ASM Instruktionen

Danke für die Warnung. Ein anfängertauglicher Rechner würde mit 100 
weniger auskommen.

von Harald K. (kirnbichler)


Lesenswert?

Arduino F. schrieb:
> Ein AVR hat ca. 130 ASM Instruktionen. Relativ leicht zu lernen.

Da ist ein 6502 mit 56 Instruktionen irgendwie überschaubarer.

von (prx) A. K. (prx)


Lesenswert?

Nicht die Anzahl Befehle ist entscheidend, sondern ob dem eine 
übersichtliche Systematik zugrunde liegt.

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


Lesenswert?

Harald K. schrieb:
> mit 56 Instruktionen
Wobei es alleine von MOV ca 1/2 Dutzend Varianten gibt, von denen keine 
einzige irgendwas moved/bewegt
Für mich heißt "move" hier wegnehmen und woanders hin legen.
Anders: Wenn man ein Auto von hier nach da moved ist hier nix mehr Auto.
Nix 2 Autos, nach dem Move.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.