Forum: Digitale Signalverarbeitung / DSP / Machine Learning 6502 sound generation


von Christoph M. (mchris)


Lesenswert?

Im Moment wird gerade die Programmierung eines 6502 Computers 
diskutiert.

In diesem Thread soll es ausschließlich um die Sounderzeugung mit einem 
6502 gehen.

Der 6502 ist ein ziemlich historischer Mikroprozessor:
https://de.wikipedia.org/wiki/MOS_Technology_6502

Hier ein Codebeispiel die Ausgabe über einen Portpins am Juniorcomputer.

Ausprobieren kann man das auch auf einem PiPico:
Beitrag "6502 Emulator PiPico"
1
; intial version: mchris
2
; improve version: Thomas W.
3
4
.ORG  $300
5
PAD EQU $1A80
6
PADD equ $1A81
7
PBD equ $1A82
8
PBDD equ $1A83
9
10
; generate a 440 Hz square wave
11
    lda #$1
12
    sta PBDD     ; set PB0 to output
13
14
loop:
15
    ldx #222     ; 5us×222+5us
16
    jsr shortdelay
17
    lda PBD      ; Read port B
18
    eor #$01     ; Toggle bit 0
19
20
    sta PBD      ; Write back
21
22
    jmp loop
23
24
shortdelay:
25
    dex             ; 
26
    bne shortdelay  ; 
27
    rts             ;

Hier das Abspielen einer Tonleiter:
Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"

: Bearbeitet durch User
von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Wenn es Dir um Sounderzeugung aus der 6502er Zeit geht,
dann google doch mal nach 6581.

Edit:
Ich weiß, Du willst nur mit dem 6502 alleine - aber das macht keinen 
Spaß wenn man mit ein wenig zusätzlicher Hardware viel bessere 
Möglichkeiten schafft.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Sorry, Rechteckbeeps sind kein Sound.

Kein Wunder dass alte 8 bit Rechner spezielle Soundchips hatten.

Erst 68k (Mac) konnte 'real sound' wiedergeben.

Die Frage wäre, ob man mit hardwaregetimter Ausgabe eines Puffers (z.B. 
15 kHz Zeilenfrequenz der Videoausgabe als Samplerate) und 
softwareberechneter Füllung dieses Puffers wenigstens 8 bit Qualität 
erreichen könnte auf einem 1MHz 6502.

Ich habe damals auf einem Original IBM PC (4.77MHz 8088) mit 4 bit 
gesampelte Tonausgabe per PWM mit dem Hardwaretimer über den eingebaute 
Lautsprecher geschafft. Als die Prozessoren schneller wurden habe ich 
gemerkt, daß ich jeden zweiten angeforderten Sample nicht verarbeitet 
hatte, die Tonausgabe lief dann doppelt so schnell.

: Bearbeitet durch User
von Thomas (kosmos)


Lesenswert?

kannst auch ne alte Soundkarte schlachten, so ein Yamaha YM3812 OPL2(9 
Kanal) oder der Nachfolger YMF262 OPL3(18 Kanal) sind nochmal einige 
Hausnummern besser als ein SID aus dem C64

von Christoph M. (mchris)


Lesenswert?

Michael B. (laberkopp)
21.05.2025 10:13
>Sorry, Rechteckbeeps sind kein Sound.

Das könnte man so sehen. Allerdings wurden auch mit einem einfachen 
Portpin in den 80er Jahren wesentlich komplexere Sounds als 
Rechteckschwingungen erzeugt. Und genau darum geht es mir: Wie kann man 
mit reduzierter, alter Hardware mit neuartigen Softwaremethoden neue 
Sounds generieren.

von Georg M. (g_m)


Lesenswert?

Neque mittunt vinum novum in utres veteres

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ich denke mal, dass der Prozessortyp da eher zweitrangig ist. Also 
erstmal ziemlich wurst, ob Z80, 6502, attiny oder sonstwer.
Wenn's drum gehen soll, durch Portpinwackeln ggf. mehr als nur ein 
Rechteck zu erzeugen, ist die dafuer noetige Signalverarbeitung 
(vermutlich wirds auf Sigmadeltamodulation rauslaufen) eher unabhaengig 
von der CPU.
Und wenn ich dann halt mehr als 1 Bit Aufloesung haben will, aber nicht 
mehr als 1 Bit Portpin spendieren will, muss ich halt entsprechend 
zeitlich ueberabtasten (und ggf. einen Tiefpass hinter dem Portpin 
spendieren). Ist auch unabhaengig von der CPU.
Laeuft also drauf raus, moeglichst viel von der digitalen 
Signalverarbeitung moeglichst "vorher" machen zu lassen, dann in Sachen 
"digitale Filter" auf low-End-CPUs kann man zwar schon das ein- oder 
andere machen, aber so richtig dolle wirds keinesfalls.

Gruss
WK

von Yalu X. (yalu) (Moderator)


Lesenswert?

Für den Apple (6502, 1-Bit-Sound) wurde schon damals in einer
Computerzeitschrift eine Software zur Sprachausgabe veröffentlicht. Die
klang natürlich sehr schlecht, aber deutlich besser als ich erwartet
hätte.

von Joachim B. (jar)


Lesenswert?

ich fand die Sounds aus dem PET2001 über die Via6522 (space invader)
https://www.youtube.com/watch?v=IJYRlXkHfyE
und aus dem apple2 mit 1 Bit PWM schon OK oder sagen wir zeitgemäß.
Im AtariST faszinierte mich AxelF. aus dem Soundchip
https://www.youtube.com/watch?v=p2WGo5qgjng

: Bearbeitet durch User
von G. K. (zumsel)


Lesenswert?

Yalu X. schrieb:
> Für den Apple (6502, 1-Bit-Sound) wurde schon damals in einer
> Computerzeitschrift eine Software zur Sprachausgabe veröffentlicht. Die
> klang natürlich sehr schlecht, aber deutlich besser als ich erwartet
> hätte.

Ungefähr so?

https://www.youtube.com/watch?v=8fgok9eHqO8&t=1680s

von Joachim B. (jar)


Lesenswert?

G. K. schrieb:
> Ungefähr so?

IMHO besser, über die Jahre sind viele Umsetzungen zum stille Post Spiel 
geworden, entweder sind die Umsetzungen schlecht oder auf meinem 
Soundchip oder meinen PC-Brüllwürfeln inkompatibel, meine Ohren sind 
sicher nicht besser geworden.

https://www.youtube.com/watch?v=7tZ44fz8MDU&list=PLmb0WjGtyZZTZAxtetMcspP-F2htIx1cW&index=3

: Bearbeitet durch User
von Dirk B. (dirkb2)


Lesenswert?

Joachim B. schrieb:
> Im AtariST faszinierte mich AxelF. aus dem Soundchip
> https://www.youtube.com/watch?v=p2WGo5qgjng

Beim Atari war meist ein MIDI Gerät dabei.

von Michael B. (laberkopp)


Lesenswert?

Joachim B. schrieb:
> Im AtariST faszinierte mich AxelF. aus dem Soundchip

Auf nem 1984 Mac wäre das keine Erwähnung wert gewesen.

https://youtube.com/shorts/3ELOFcGPj1o

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Michael B. schrieb:
> Auf nem 1984 Mac

auch CAD auf dem MAC in der AtariST Emulation war toll, GEM sowieso, da 
haben sich alle Compis bis win gut gehalten, seit dem Kacheldrama bei 
win verstehe ich die Abkehr von GEM nicht alle Compis hatten das X zum 
Fenster schliessen, Datei laden und speichern war immer an der selben 
Stelle uvam.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Christoph M. schrieb:
>
1
> 
2
> ; intial version: mchris
3
> ; improve version: Thomas W.
4
> 
5
> .ORG  $300
6
> PAD EQU $1A80
7
> PADD equ $1A81
8
> PBD equ $1A82
9
> PBDD equ $1A83
10
> 
11
> ; generate a 440 Hz square wave
12
>     lda #$1
13
>     sta PBDD     ; set PB0 to output

PB0 ist am 6532 des Junior-Computers. Das ist ein PIO, oder auch RIOT 
genannt. So, damit wäre dann schon mal klar dass es nicht um 
Sounderzeugung rein mit dem 6502 geht. Denn kein I/O, keine Kekse ...

Allgemein kann man bei so was zuerst mal ins Bücherregal mit der 
klassischen Literatur greifen: Rodney Zaks "6502 Anwendungen". Ich habe 
gedruckt nur die deutsche Ausgabe von 1983 hier. Die englische von 1979 
findet man auf https://archive.org/details/6502_Applications Ich meine 
er nimmt einen 6522 VIA für I/O.

Darin u.a.

Morsetonerzeugung
Sirene
Musikprogramm (Melodien abspielen)

Damit ist klar dass die einfachen Dinge schon vor > 40 Jahren erledigt 
wurde. Das Rad muss man nicht neu erfinden. Bleibt eine wahrscheinlich 
endlose Diskussion welche Hardware man anschließen soll oder darf und 
welche Algorithmen man gerade noch in einen 6502 Computer mit ein paar K 
Speicher rein quetschen kann.

Angeschlossen wurde damals zum Beispiel so was wie ein AY-3-8910. Aus 
dem Hersteller wurde später Microchip und der AY-3-8910 wurde an Yamaha 
lizenziert.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

annes J. (Firma: _⌨_) (pnuebergang)
21.05.2025 11:29

>PB0 ist am 6532 des Junior-Computers. Das ist ein PIO, oder auch RIOT
>genannt. So, damit wäre dann schon mal klar dass es nicht um
>Sounderzeugung rein mit dem 6502 geht.

Oder auch 'PIA' genannt ..

Das 440Hz Beispiel nutzt den Timer, weil ich die Timerimplementation auf 
dem PiPico testen wollte.
Das zweite Beispiel
Beitrag "Re: Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?"
nutzt nur den Port. Den kannst du auch durch die Portadresse für den 
Lautsprecher eines Apple2 ersetzen und ist damit ziemlich universell.
Der Grund für die zweite Implementierung war, weil ich die Zyklentreue 
des Simulators testen wollte.

Hardwarevoraussetzungen sind also:

6502, Speicher und irgend ein Portpin, an dem ein Lautsprecher hängt.

: Bearbeitet durch User
von G. K. (zumsel)


Lesenswert?

Christoph M. schrieb:
> Den kannst du auch durch die Portadresse für den
> Lautsprecher eines Apple2 ersetzen und ist damit ziemlich universell.
> Der Grund für die zweite Implementierung war, weil ich die Zyklentreue
> des Simulators testen wollte.
>
> Hardwarevoraussetzungen sind also:
>
> 6502, Speicher und irgend ein Portpin, an dem ein Lautsprecher hängt.

Kleines Detail zur Ergänzung am Rande:

Der Lautsprecher vom Apple II hängt an einem FlipFlop was toggelt wenn 
man  eine bestimmte Adresse irgendwie anspricht:

https://8bit-museum.de/scans/apple/apple2shematic.jpg

von Michael B. (laberkopp)


Lesenswert?

Christoph M. schrieb:
> Hardwarevoraussetzungen sind also:
> 6502, Speicher und irgend ein Portpin, an dem ein Lautsprecher hängt.

Na ja, besser ein Analogausgang mit mehreren bit Auflösung, dann musst 
du nicht so hohe Samplerate nutzen.

von Christoph M. (mchris)


Lesenswert?

G. K. (zumsel)
21.05.2025 13:11

>Der Lautsprecher vom Apple II hängt an einem FlipFlop was toggelt wenn
>man  eine bestimmte Adresse irgendwie anspricht:

Ein sehr guter Hinweis. Das hat zumindest den Vorteil der Zeitersparnis, 
weil man das Bit nicht zurück lesen und manuell toggeln muss.

Der Link
https://8bit-museum.de/scans/apple/apple2shematic.jpg
geht nicht: "Zugriff nicht gestattet - stephan(at)8Bit-Museum.de"

von Christoph M. (mchris)


Lesenswert?

In diesem Link wird auf die Rechtecksignaltonerzeugung eingegangen:

https://www.xtof.info/making-apple-ii-sing.html

Ganz unten im "Softdac Soundediter Video" gibt es eine erstaunlich gute 
Sprachausgabe.

von Thomas (kosmos)


Lesenswert?

und hier mein ein Beispiel des OPL3

https://www.youtube.com/watch?v=a7I-QmrkAak

von G. K. (zumsel)


Lesenswert?

Christoph M. schrieb:
> G. K. (zumsel)
> 21.05.2025 13:11
>
>>Der Lautsprecher vom Apple II hängt an einem FlipFlop was toggelt wenn
>>man  eine bestimmte Adresse irgendwie anspricht:
>
> Ein sehr guter Hinweis. Das hat zumindest den Vorteil der Zeitersparnis,
> weil man das Bit nicht zurück lesen und manuell toggeln muss.
>
> Der Link
> https://8bit-museum.de/scans/apple/apple2shematic.jpg
> geht nicht: "Zugriff nicht gestattet - stephan(at)8Bit-Museum.de"

Vorhin ging es noch, egal, anderer link: 
https://www.applefritter.com/content/apple-ii-europlus-schematics

von Thomas W. (datenreisender)


Lesenswert?

Hannes J. schrieb:

> Angeschlossen wurde damals zum Beispiel so was wie ein AY-3-8910. Aus
> dem Hersteller wurde später Microchip und der AY-3-8910 wurde an Yamaha
> lizenziert.

Ich erinnere mich: Das Ding war relativ teuer, konnte aber so eine Art 
Synthesizer sein. Zwei, drei Jahre spaeter waren die Apple ][ und die 
ersten IBM-PC auf dem Markt. Und dann begann der PC-Markt zu einen 
wirklichen Massenmarkt zu werden.

Nur bei uns im pysikalischen Institut, da blieb der Commodore 8032 noch 
lange in Benutzung. Das IEEE488 (oder GPIB)-Interface war halt eingebaut 
(ohne Zusatzkosten) und man konnte schoene HP-Messgeraete anschliessen 
(Diplom-Studenten waren kostenlos und Doktoranden Halb-Preis haben dann 
die Software geschrieben)

von Peter N. (alv)


Lesenswert?

Damals gab es für die C= CBM eine Bastelei, da wurde ein 
Widerstandsnetzwerk an den Userport angeschlossen, das bildete einen 
passiven DA-Wandler.
Das erzeugte einen erstaunlich guten Sound...

von Manfred S. (manfred_s136)


Lesenswert?

Ich hatte damals schon mit einem ZN427 8 Bit A/D Wandler "With or 
Without You" von U2 gesampelt auf einem C64 - das war 1987 !

: Bearbeitet durch User
von G. K. (zumsel)


Lesenswert?

Manfred S. schrieb:
> Ich hatte damals schon mit einem ZN427 8 Bit A/D Wandler "With or
> Without You" von U2 gesampelt auf einem C64 - das war 1987 !

Wir driften ab, um noch weiter weg zu driften hier mein erstes Lied 
welches ich 1994 nach mp3 gewandelt habe:

https://www.youtube.com/watch?v=Obx7AqboHz8&list=PLWblg5ArERS_7CY2MQQe3UwGerRFba4GO

:-)

: Bearbeitet durch User
von G. K. (zumsel)


Lesenswert?

Back to Topic:

Hier kann man per Browser einen Merlin Macroassembler auf einem Apple II 
laufen lassen:

https://archive.org/details/544_Merlin_Big_Mac

Hier gibt es etwas Doku dazu:

http://www.textfiles.com/apple/DOCUMENTATION/

Es gab auch einen lustigen Debugger für den Apple II, IMHO "Quicktrace", 
diesen konnte man in das RAM der 80-Zeichen-Karte verschieben.
Und es gab auch einen Einsprung in Quicktrace in den man via Interrupt 
reinspringen konnte, praktisch war ein entsprechender Taster an den 
entsprechenden Kontakten der Slots oder an der CPU.

Das ist alles ziemlich lange her.

Und Echtzeit Strategie für 2 menschliche Player gleichzeitig (via 
Paddles) gab es bereits 1982 für den Apple II:

https://www.youtube.com/watch?v=CgNIOkkGTQc
https://www.youtube.com/watch?v=9D-z3dQwxcg

Die Steuerung der Rakete mit dem Paddle war allerdings ziemlich 
schwierig.
Quasi ein Vorgänger von Command & Conquer.

Noch mehr back to topic: Es gab auch Software für den Apple II die 
polyphone Musik abspielen konnte.

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite


Lesenswert?

Christoph M. schrieb:
> Im Moment wird gerade die Programmierung eines 6502 Computers
> diskutiert.
Von wem?

Christoph M. schrieb:
> Hier das Abspielen einer Tonleiter:
Ist der Beitrag eine Frage oder ein Denkanstoß?

Michael B. schrieb:
> Sorry, Rechteckbeeps sind kein Sound.
Ja und nein - einige der bekanntesten Sounds der Technogeschichte sind 
tatsächlich Rechtecksignale, freilich durch marod(ierend)e HW deformiert 
und resoniert.

Hannes J. schrieb:
> Damit ist klar dass die einfachen Dinge schon vor > 40 Jahren erledigt
> wurde.
Vor allem muss man mal klären, WAS hier programmiert werden soll:
A) die CPU
B) ein spezieller Computer mit dieser CPU
C) ein SoundChip in einem Computer mit dieser CPU?

Für a) bin ich ebenfalls der Meinung dass die CPU keine Rolle spielen 
kann, wenn es ums Pintoggln geht.

Für b) reden wir von z.B. dem VC20 mit dem das weidlich gemacht wurde. 
Neben den Stimmen des SoundChips konnte der in der Tat auch Portpins 
tooglen, u.a. mit selbstgebauter HW:
http://engineer.bplaced.net/arcor/c64ioboard.html
Die funktionierten am C64 und auch am VC20. Und ja, das ist in der Tat 
40 Jahren her. Schock!

Für c) reden wir wahrscheinlich vom SID. Auch der konnte DAC, wenn man 
es richtig anstellte und auch PWM. Als Emulation im (damaligen Cyclone 4 
mit z.B. 8 virtuellen Chips)
http://www.96khz.org/htm/sidemulation2.htm
(oops auch schon 20 Jahre her)

Oder reden wir von geschickter 1-Bit Musik? Wenn man wirklich mit 1Bit 
als Port Musik machen will, braucht es PDM mit Filter und damit einen 
Modulator mit rund 1MHz, wenn es nach was klingen soll. Die Qualität aus 
einem 8Bit-6810 oder 6502 reicht dafür nicht. Das wird zu sehr Roboter, 
wegen der harmonischen Oberwellenverzerrungen infolge des 
Abtastproblems.

Und dann blieben noch die Alarmsirenen, die ich hier schon mal im Forum 
vorgestellt hatte:

Man nimmt zwei Zähler mit zwei unterschiedlichen Primzahlen und togglt 
nach Überlauf den jeweilige Port-Pin. Beide Auasgänge werden mit Exor 
verknüpft. Damit kann man mit einem langsamen Prozessor eine PDM-Dreieck 
erzeugen. Durch Hinzunahmen weiterer Zähler dieser Art kommt man additiv 
zu dissonanten Akkorden.

von Christoph M. (mchris)



Lesenswert?

> J. S. (engineer)

Da freue es mich ja, dass ein echter Profi antwortet :-)

Ich habe mal versucht, deinen Vorschlag mit dem hier

Beitrag "6502 Emulator PiPico"

umzusetzen.

Die Soundausgabe erfolgt über einen RC-TP mit 330Ohm,100nF auf dem 
PC-Lautsprecher. Leider ist das Mikrophon der Webkamera ziemlich 
schlecht.
1
; Prime Sound
2
3
; Algo Proposal von J. S. (engineer): 
4
; Man nimmt zwei Zähler mit zwei unterschiedlichen Primzahlen und togglt 
5
; nach Überlauf den jeweilige Port-Pin. Beide Auasgänge werden mit Exor 
6
; verknüpft. Damit kann man mit einem langsamen Prozessor eine PDM-Dreieck 
7
; erzeugen.
8
9
; assembler: ca65 ( https://cc65.github.io/doc/ca65.html )
10
; 6502 instruction set: https://www.masswerk.at/6502/6502_instruction_set.html
11
; Hardware:
12
;  Junior-Computer-Emulator
13
;  https://www.mikrocontroller.net/topic/577887
14
15
; 2025-05-24 mchris
16
17
; Primzahlen
18
; 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199
19
20
; MOS6532 PIA Adressen
21
PAD  = $1A80
22
PADD = $1A81
23
PBD  = $1A82
24
PBDD = $1A83
25
26
27
; Programmstart
28
    .org $300
29
    lda #$1
30
    sta PBDD     ; set PB0 to output
31
32
loop:
33
    lda #0
34
    dex
35
    bne n1
36
    ldx #13 ; Primzahl1
37
    eor #1
38
n1:
39
    dey
40
    bne n2
41
    ldy #17 ; Primzahl2
42
    eor #1
43
n2:
44
    sta PBD         ; Speaker
45
    jmp loop

von Rbx (rcx)


Lesenswert?

J. S. schrieb:
> Vor allem muss man mal klären, WAS hier programmiert werden soll:

Die Casios hatten ja zwei CPUs. Einen für die Grundwellen und die 
Stimmung, den anderen für die "Filter"-Berechnungen.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Ich habe mal versucht, deinen Vorschlag mit dem hier
> ... umzusetzen.
Ich sehe noch nicht, wieso man die Primzahlentabellen braucht. Es sind 
nur 2 Zähler mit zwei Zahlen, also z.B. einer rennt bis 17 und ein 
anderer bis 19 - und das auf derselben Frequenz. Damit ergibt sich eine 
kontinuierlich ändernden PDM. In der gefilterten Version ist das ein 
Dreieck, je nach High-Cut geht es Richtung Sinus.

Der Ton im mp3 hört sich nicht so an. Da höre ich zwei Töne. Exor 
involviert?

von Rbx (rcx)


Lesenswert?

J. S. schrieb:
> Der Ton im mp3 hört sich nicht so an.

Die typischen Wellenformen im Prophet VS oder als Synthemu für den 
Yamaha TX16W konnten sich öfter so anhören.
Wobei man bei letzterem besser beraten war, mit gesampleter 
Schallplattenmusik zu arbeiten.
Erst das neuere alternative Betriebsystem brachte einen netten Filter 
mit. Der Programmierer meinte dazu, so gut es halt ging bei dem Ding. 
Hatte er aber doch erstaunlich gut hinbekommen.

von Christoph M. (mchris)


Lesenswert?

J. S. (engineer)
>Ich sehe noch nicht, wieso man die Primzahlentabellen braucht. Es sind
>nur 2 Zähler mit zwei Zahlen, also z.B. einer rennt bis 17 und ein
>anderer bis 19 - und das auf derselben Frequenz.
Das ist keine Tabelle, sondern ein Kommentar (es steht ein ; davor ). 
Ich habe die Primzahlen rein kopiert, damit man sie schnell ablesen und 
im Code ändern kann.
Der Code repräsentiert zwei Zähler x und y, die mit der selben Frequenz 
dekrementiert und bei 0 mit der jeweiligen Primzahl geladen werden.
'eor #1' ist der Exor-Befehl.
1
; Definition der MOS6532 PIA (Peripheral Interface Adapter) Adressen
2
PBD  = $1A82   ; Port B Data Register (Speaker-Ausgang)
3
PBDD = $1A83   ; Port B Data Direction Register
4
5
    .org $300  ; Programmstartadresse
6
7
    lda #$1
8
    sta PBDD     ; Setze PB0 (Port B, Bit 0) als Ausgang
9
10
loop:
11
    lda #0      ; Lade Akku mit 0 (Vorbereitung für XOR-Operation)
12
    dex         ; Dekrementiere X-Zähler
13
    bne n1      ; Wenn X != 0, überspringe nächsten Block
14
    ldx #13     ; Primzahl 13 als Überlaufgrenze für Zähler 1
15
    eor #1      ; Toggle Bit 0 im Akku (A ^= 1)
16
17
n1:
18
    dey         ; Dekrementiere Y-Zähler
19
    bne n2      ; Wenn Y != 0, überspringe nächsten Block
20
    ldy #17     ; Primzahl 17 als Überlaufgrenze für Zähler 2
21
    eor #1      ; Toggle Bit 0 im Akku (A ^= 1)
22
23
n2:
24
    sta PBD     ; Schreibe Wert auf Port B (Speaker-Ausgang)
25
    jmp loop    ; Endlosschleife

von Christoph M. (mchris)


Lesenswert?

Apropos: Könnte es sein, dass sich die Folge nach 13*17=221 Durchläufen 
wiederholt? Damit wäre dann die Grundperiode immer das Produkt der 
Primzahlen mal der Zyklenzahl und Zykluszeit des Codes.

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