Forum: Mikrocontroller und Digitale Elektronik Akku und Speicher am 6502 auf Gleichheit überprüfen


von Tim K. (t_kasi)


Lesenswert?

Hallo,
ich habe mir einen kleinen 6502-Computer zusammengebastelt und möchte 
eine Tastatur mit Tastaturmatrix mittles eines 6522 anschließen, soweit 
so gut.

Allerdings muss ich um die Tastatur auszulesen den Akku mit einer 
Speicheradresse vergleichen und zu einer neuen Adresse springen, wenn 
Akku und Speicher gleich sind. Wie mache ich das am elegantesten? Ich 
hätte es jetzt mit dem BIT-Befehl probiert und dann die einzelnen Flags 
ausgelesen, aber das erscheint mir etwas zu kompliziert für eine 
eigentlich so einfache Aufgabe und dann müsste ich ja auch noch alle 
Flags wieder löschen.

MfG,
Tim

von (prx) A. K. (prx)


Lesenswert?

CMP Adresse1
BEQ Adresse2

von Tim K. (t_kasi)


Lesenswert?

Dankeschön, funktioniert!

von Lothar (Gast)


Lesenswert?

Da kann man wieder mal sehen wo ARM Assembler herkommt ...

von RISC (Gast)


Lesenswert?

Lothar schrieb:
> Da kann man wieder mal sehen wo ARM Assembler herkommt ...

6502 war schon RISC als noch keiner den Begriff RISC kannte :-)

von Peter D. (peda)


Lesenswert?

Tim K. schrieb:
> Wie mache ich das am elegantesten?

Indem Du einfach mal ins Instruction Set schaust.

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

Beitrag #7059330 wurde vom Autor gelöscht.
von 888 (Gast)


Lesenswert?

RISC schrieb:

> 6502 war schon RISC als noch keiner den Begriff RISC kannte :-)

Das waren damals Glaubenskriege. Der 6502 mit simplen Befehlen und einem 
Buszyklus pro Taktzyklus, d.h. ein 3 byte-Befehl braucht nur drei Takte 
zur Ausführung, und auf der anderen Seite der Z80 mit seinem Mikrocode 
und seinen T-states. 4 MHz Z80 (CISC) entsprachen 1 MHz 6502 (RISC).

von Andras H. (kyrk)


Lesenswert?

Soul E. schrieb:
> 4 MHz Z80 (CISC) entsprachen 1 MHz 6502 (RISC).

War auch mit dem PIC vs AVR genau so :)

von (prx) A. K. (prx)


Lesenswert?

Soul E. schrieb:
> Der 6502 mit simplen Befehlen

Ich würde Befehle wie
   ADC (00,x)
   ADC (00),y
nicht wirklich als simpel betrachten.

von asd (Gast)


Lesenswert?

> Ich würde Befehle wie
>    ADC (00,x)
>    ADC (00),y
> nicht wirklich als simpel betrachten.

Die haben ja auch 6 und 7 Takte gebraucht.

Der 6502 war vermutlich so effizient weil er nicht als voll synchrones 
Design geplant wurde, sondern mit einigen eher schmutzigen Tricks wie 
dass einige Signale "dynamisch" gespeichert wurden, d.h. einfach durch 
die Kapazität eines Stücks einer Verbindung. Deswegen hatte der 
ursprüngliche 6502 einen Mindest-Takt. Erst spätere Versionen waren dann 
voll synchron und konnten beliebig langsam getaktet werden.

von (prx) A. K. (prx)


Lesenswert?

asd schrieb:
> dass einige Signale "dynamisch" gespeichert wurden

Kapazitive Speicherung war damals normal. Auch 6800 hatte dies.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Das waren vermutlich die CMOS-Versionen.

>"dynamisch" gespeichert
da gab es einen üblen Trick für Apple II, um die Zugriffe auf das 
Grafik-RAM mit dem Videosynchronimpuls zu synchronisieren. Irgendeine 
Speicherstelle hatte noch kapazitiv diese Info gespeichert und konnte 
vom Programm ausgelesen werden.

von 888 (Gast)


Lesenswert?

Christoph db1uq K. schrieb im

> da gab es einen üblen Trick für Apple II, um die Zugriffe auf das
> Grafik-RAM mit dem Videosynchronimpuls zu synchronisieren. Irgendeine
> Speicherstelle hatte noch kapazitiv diese Info gespeichert und konnte
> vom Programm ausgelesen werden.

Das hatte aber nichts mit dem 6502 zu tun. Man hat einfach eine 
Speicheradresse gelesen, wo nichts angeschlossen war. Damit hatte man 
dann einen Schatten des letzten der Videologik gelesenen Bytes, das 
durch die Leitungskapazität des Datenbusses gehalten wurde.

von (prx) A. K. (prx)


Lesenswert?

Soul E. schrieb:
> Das hatte aber nichts mit dem 6502 zu tun.

Wahrscheinlich aber mit dem ungemuxtem Bus der 6502.

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

Hier der Originaltext aus der Computersteinzeit
ISBN 0912985011 "Understanding the Apple II" von 1983

: Bearbeitet durch User
von Apple Interfacer (Gast)


Lesenswert?

Apple II (und IIGS) und Assembler, ach waren das schöne Zeiten.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Hach ja
Da gab es noch einen Trick um die horizontale Auflösung der Hires-Grafik 
zu verdoppeln. Die Phasenverschiebung der Farbpixel wurde irgendwie dazu 
genutzt, um doppelt so viele SW-Pixel zu bekommen. War irgendwo im 
"Peeker" aus Heidelberg veröffentlicht. Ich habe damals angefangen damit 
ein Fax- oder ähnliches Empfangsprogramm zu bauen.
Das alles geht natürlich nicht mit irgendwelchen Emulatoren.

von hex-fan (Gast)


Lesenswert?

Apple Interfacer schrieb:
> ach waren das schöne Zeiten.

Es gibt ein Möchtegern-Nachfolgeprojekt:
Beitrag "8bit-Computing mit FPGA"

Leider bisher erfolglos. Unklar warum.

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Apple Interfacer schrieb:
> Apple II (und IIGS) und Assembler, ach waren das schöne Zeiten.

Ja der IIGs so einen habe ich heute noch im betrieb und ein Apple-BOX
Auf den bin ich richtig stolz, da gab's nämlich nicht sehr viele :-)

hex-fan schrieb:
> Leider bisher erfolglos. Unklar warum.

Wiso hast du Interesse?

Ich habe irgend wo ein lauffähiges VHDL für einen Apple IIGs rumliegen, 
müsste mal schauen wo die Files sind ;-)

: Bearbeitet durch User
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.