Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Z80 LD R, A » Themenansicht

Autor Thread - Seiten: -1-
000
08.06.2013, 12:05 Uhr
sas



Hallo

ich schaue mir gerade den Z80 Code der F2000 an.

Zu welchem Zweck lade ich R nach A und umgekehrt?
LD A, R
LD R, A

Jörg
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
08.06.2013, 12:52 Uhr
Andreas



Hallo Jörg

Damit kann man z.B. Pseudozufallszahlen erzeugen.Der Inhalt vom Refreshregister ist ja relativ Unabhängig vom Programmlauf.

Andreas
--
Viele Grüße
Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
08.06.2013, 19:21 Uhr
sas



Hallo Andreas,

ich glaube nicht das man das mit der F2000 beabsichtigt hatte.

Jörg


Zitat:
Andreas schrieb
Hallo Jörg

Damit kann man z.B. Pseudozufallszahlen erzeugen.Der Inhalt vom Refreshregister ist ja relativ Unabhängig vom Programmlauf.

Andreas

Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
08.06.2013, 19:36 Uhr
Andreas



Hallo Jörg

Da wäre ich mir nicht so sicher.So wäre es denkbar, das irgend welche Serviceprozeduren damit organisiert werden.Damit könnte man die einseitige Abnutzung von irgend welchen Verschleißteilen hinauszögern.(weil eben verschiedene Teile nicht immer an der selben Stelle zum Stillstand kommen)

Ich hoffe Du traust mir nicht zu, das ich das ausdrucken von Zufallszahlen meinte?

Andreas
--
Viele Grüße
Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
08.06.2013, 19:51 Uhr
ambrosius



Man könnte damit evtl. auch zählen, wie viele Befehle abgearbeitet wurden, da 'R' mit jedem M1-Zyklus erhöht wird. Für was das gut sein soll, müßte sich ja aus den umliegenden Befehlen ergeben.

Beste Grüße
Holger
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
09.06.2013, 09:45 Uhr
sas



Hallo Andreas,

der Druckkopf sollte schon an der richtigen Stelle stehen, nach der Initialisierung links.
Die Schrittmotoren in den definierten Endstellungen.
Hier Codeschnipsel 1:
0066: C5 PUSH BC
0067: D5 PUSH DE
0068: E5 PUSH HL
0069: F5 PUSH AF
006A: 21 6B 81 LD HL, 0x816B
006D: 39 ADD HL, SP
006E: 30 45 JR NC, 0x45
0070: ED 5F LD A, R
0072: F5 PUSH AF
0073: ED 57 LD A, I
0075: F5 PUSH AF
0076: 08 EX AF, AF'
0077: D9 EXX
0078: D5 PUSH DE
0079: E5 PUSH HL
007A: F5 PUSH AF
007B: C5 PUSH BC
007C: DD E5 PUSH IX

Codeschnipsel 2:
18C: F1 POP AF
018D: D3 C1 OUT (0xC1), A
018F: FD E1 POP IY
0191: DD E1 POP IX
0193: C1 POP BC
0194: F1 POP AF
0195: E1 POP HL
0196: D1 POP DE
0197: D9 EXX
0198: 08 EA AF, AF'
0199: F1 POP AF
019A: ED 47 LD I, A
019C: F1 POP AF
019D: ED 4F LD R, A
019F: 21 95 78 LD HL, 0x7895
01A2: 06 05 LD B, 0x5

Kann es sein das man das Refresh-Register sichert um es später wieder an
einem Bestimmten Punkt wieder mit dem definierten Stand weiter zu Refreshen?

Es handelt sich um dRAM keine sRAM.


Zitat:
Andreas schrieb
Hallo Jörg

Da wäre ich mir nicht so sicher.So wäre es denkbar, das irgend welche Serviceprozeduren damit organisiert werden.Damit könnte man die einseitige Abnutzung von irgend welchen Verschleißteilen hinauszögern.(weil eben verschiedene Teile nicht immer an der selben Stelle zum Stillstand kommen)

Ich hoffe Du traust mir nicht zu, das ich das ausdrucken von Zufallszahlen meinte?

Andreas

Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
09.06.2013, 10:15 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Sieht so aus, also ob der Programmierer bei NMI sicherheitshalber alle Register rettet. Das ist fürs R-Register wenig sinnvoll und kann sogar zum Verlieren von Speicherinhalten führen, wenn durch Setzen des R-Registers DRAM-Zellen nicht schnell genug den Refresh erhalten.
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
10.06.2013, 06:26 Uhr
sas



Hallo VolkerP

der Programmierer der F2000 muß sich ja was dabei gedacht haben.

Jörg


Zitat:
volkerp schrieb
Sieht so aus, also ob der Programmierer bei NMI sicherheitshalber alle Register rettet. Das ist fürs R-Register wenig sinnvoll und kann sogar zum Verlieren von Speicherinhalten führen, wenn durch Setzen des R-Registers DRAM-Zellen nicht schnell genug den Refresh erhalten.

Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
10.06.2013, 11:13 Uhr
hjs



Möglicherweise ist das Programm in irgendeiner Hochsprache geschrieben worden und der Compiler rettet eben grundsätzlich alles.

MfG
hjs
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
10.06.2013, 12:11 Uhr
kaiOr

Avatar von kaiOr

Das ist bestimmt ein Versuch den Refresh von ROMs und SRAMs zu übergehen und nur über dem DRAM kreisen zu lassen. Müsste Jörg mal schauen was da alles WAIT oder gar HALT auslösen könnte und ob es mit dem CPU-Takt eng wird.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek