Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?

Gast #7871089
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.

OP #7871103
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.

Gast #7871143
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.

#7871182
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.

#7871300
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)

#7871309
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.

Angehängte Dateien:
#7871319
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)

Gast #7871333
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.

OP #7871419
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)

#7871427
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!

#7871487
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.

Angehängte Dateien:
#7871496
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.

#7871501
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.

OP #7871599
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.

#7871821
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?

Angehängte Dateien:
#7871844
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.

Gast #7871859
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.

#7871876
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 ..).

#7871885
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.

OP #7871913
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)

OP #7872037
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)

#7872093
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
"""
#7872095
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

#7872118
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
(Firma: Gast) #7872144
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.

OP #7872199
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.

#7872210
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.

#7872251
Lesenswert?

Hallo, Günter K. schrieb im Beitrag #7872199:

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

#7872355
Lesenswert?

Hallo, Thomas Z. schrieb im Beitrag #7872290:

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

OP #7875212
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)

Gast #7875299
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?

OP #7875351
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.

OP #7875451
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)

#7875457
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.

Angehängte Dateien:
OP #7875530
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)

#7875550
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.

Angehängte Dateien:
#7875554
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.

OP #7875581
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.

Angehängte Dateien:
OP #7875599
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)

OP #7875615
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)

#7875625
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.

OP #7875783
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)

#7875788
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???

OP #7875823
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)

#7875825
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.

#7875864
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.

Angehängte Dateien:
#7875892
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.

#7875920
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.

OP #7875929
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.

OP #7875930
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)

#7875942
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.
#7876302
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.

#7876334
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.

#7876338
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."

#7876463
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.

#7876480
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.

#7876553
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.

#7876559
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.

#7876565
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.

#7876570
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.

#7876574
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.

#7876586
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.

#7876647
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?

#7876654
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.

(Firma: Gast) #7876656
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.

#7876679
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.

OP #7876706
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)

#7876743
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.

OP #7876844
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)

#7876850
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.

OP #7876885
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)

Gast #7877453
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?

Angehängte Dateien:
OP #7877858
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)

OP #7878019
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 im Beitrag #7876743:

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)

#7878055
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.

Angehängte Dateien:
#7878066
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.

#7878209
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.

OP #7878267
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)

#7878268
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.

#7878282
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.

#7878330
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.

#7878389
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.

OP #7878735
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)

#7878754
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.

Gast #7878779
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

OP #7879020
Lesenswert?

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

Christoph M. schrieb im Beitrag #7875942: > 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)

#7879122
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
OP #7879286
Lesenswert?

Klaus schrieb im Beitrag #7879228: 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)

#7879316
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.

#7879348
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.

#7879355
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.

#7879388
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?

#7879401
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.

#7879408
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.

(Firma: www.wolfgangrobel.de) #7879442
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!

Angehängte Dateien:
#7879453
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.

(Firma: www.wolfgangrobel.de) #7879463
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

#7879498
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.

OP #7879526
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)

(Firma: Gast) #7879573
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.

OP #7879839
Lesenswert?

Hallo liebe Leute,

Soul E. schrieb im Beitrag #7879498: .... 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)

#7879862
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.

OP #7879865
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)

#7879874
Lesenswert?

Enk schrieb:

Vetragt Euch bitte.

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

1
 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)

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

#7879876
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.

#7879992
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.

#7880045
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.

#7880470
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.

Angehängte Dateien:
OP #7880483
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)

#7880500
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.

#7880506
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?

#7880578
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.

OP #7881138
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)

#7881145
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.

(Firma: Gast) #7881155
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren