Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Frage zu LDIR-Befehl mit K7024 » Themenansicht

Autor Thread - Seiten: -1-
000
03.12.2014, 08:52 Uhr
rm2
Default Group and Edit
Avatar von rm2

Hallo an alle,

wenn ich den LDIR-Befehl (Zeichenkette auf EPROM 0400H) nutze um auf der K7024 (auf 0F000H) eine Bildschirmausschrift zu erzeugen kommt unsinniges raus. Lasse ich mir den RAM-Inhalt aufbereitet anzeigen, läuft alles prima.
Das Testprogramm läuft auf der audatec Basiseinheit im Rechenwerk.
Im Z80 IDE Simulator läuft alles bestens. Was läuft schief?



mfg ralph
--
.
http://www.ycdt.net/mc80.3x . http://www.ycdtot.com/p8000
http://www.k1520.com/robotron http://www.audatec.net/audatec
http://www.ycdt.de/kkw-stendal
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
03.12.2014, 08:57 Uhr
holm

Avatar von holm

> Lasse ich mir den RAM-Inhalt aufbereitet anzeigen, läuft alles prima.

Ich verstehe Dich nicht Ralph...

Ich hatte selbst mir einer 4MHz CPU (sogenannte GRE CPU von Gera die ich manchmal zum Debugging nutze) allerdings von RAM in Richtung K7024 keine Probleme.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
03.12.2014, 09:49 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

funkt dir eine Interrupt-Routine dazwischen und verändert die Register?
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
03.12.2014, 10:49 Uhr
felge1966



Wenn ich dich richtig verstehe, willst du direkt in den Bildschirmspeicher schreiben. Du denkst aber schon daran, daß es auch Sonderbytes für Blinken, Invers u.ä. gibt?

Gruß Jörg
--
http://felgentreu.spdns.org/bilder/jacob120.gif
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
03.12.2014, 12:32 Uhr
Ralph




Zitat:
volkerp schrieb
funkt dir eine Interrupt-Routine dazwischen und verändert die Register?


Kann das mitten im LDIR Befehl passieren ? Ich dachte immer der Z80 arbeitet den Befehl vollständig ab ?!

Gruß Ralph
--
Es geht alles erst richtig los !
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
03.12.2014, 12:58 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

ja, das kann. Der Z80 arbeitet die Schleife als Befehlswiederholung durch Dekrementieren des Befehlszeigers PC ab, und dazwischen kann durchaus ein Interrupt kommen. Das Steht sicher auch im Kieser/Meder oder online auf die Schnelle hier:

http://www.worldofspectrum.org/faq/reference/z80reference.htm

... interrupt processing will begin. For this purpose, HALT is effectively an infinite series of NOPs, and the repeated instructions (LDIR, etc) can be interrupted after each execution.
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 04.12.2014 um 08:25 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
03.12.2014, 20:17 Uhr
rm2
Default Group and Edit
Avatar von rm2

Hallo an alle,



1. hier sollte "audatec Basiseinheit" stehen (mit LDIR)
2. EPROM-Versions-Nr. (mit LD (DE),A
3. das NMI-Programm RAM-Inhalt ab 0C00H bis 0FFFH (aber keine NMI-Taste gedrückt) Es gibt aber 2 Überwachungsbaugruppen, die /NMI bilden (UEW2328 und ZNU 408)
4. hier wird ein Schleifenzähler angezeigt
5. hier wird der Stack zyklisch ausgegeben (kein IR)
6. hier sollte nochmal "audatec Basiseinheit" stehen (mit LDIR)


mit einer zusätzlichen Zeitschleife am Programmanfang kommt dann sowas:



hier scheint das NMI-Programm gleich zu kommen

weitere Infos:
- ZRE CTC0 + CTC1 bilden 1 s IR (keine Verkabelung auf ZRE, Busverkabelung ???)


mfg Ralph
PS
meine K7024-Doku ist unvollständig, mir fehlt die RAM-Adressierung
(entweder S1 bis S6 oder X11 und X12 je nach Doku-Fragment)
--
.
http://www.ycdt.net/mc80.3x . http://www.ycdtot.com/p8000
http://www.k1520.com/robotron http://www.audatec.net/audatec
http://www.ycdt.de/kkw-stendal

Dieser Beitrag wurde am 03.12.2014 um 20:26 Uhr von rm2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
03.12.2014, 21:37 Uhr
ambrosius



Bei sauber programmierter Interruptroutine dürfte es aber eigentlich nicht vorkommen, das Register verändert werden (Register sichern). Eine andere Möglichkeit wäre, um das Interruptproblem auszuschließen, vor jedem LDIR-Befehl ein DI und danach ein EI zu setzen, falls Du die Programme selbst schreibst. Passiert dann nichts mehr, liegt es am Interrupt. Ansonsten könnten evtl. noch Zeitprobleme eine Rolle spielen, da die Befehlsfolgen im LDIR sehr schnell aufeinander folgen und eventuelle Umschaltzeiten nicht eingehalten werden können.

Beste Grüße
Holger
--
Viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
04.12.2014, 06:58 Uhr
sas



Hallo,

schon mal vor der Routine ein
DI
gesetzt?
und danach ein
EI

?

Jörg

Dieser Beitrag wurde am 04.12.2014 um 06:59 Uhr von sas editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
04.12.2014, 09:10 Uhr
felge1966



Mal vorsichtig gefragt:
Hast du schon mal direkt in den Speicher (ohne Blockbefehl) geschrieben?

Gruß Jörg
--
http://felgentreu.spdns.org/bilder/jacob120.gif
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
04.12.2014, 12:14 Uhr
rm2
Default Group and Edit
Avatar von rm2

Hallo an alle,

den DI/EI Hinweis werde ich testen - aber erst am Sonnabend, wenn ich wieder in Halle bin. Die 2. audatec-Ausschrift (6. in 006) werde ich nicht mit LDIR realisieren.

Am Sonnabend werde ich auch die wichtigsten BUS-Signale mit dem Oszi begutachten (Bus-Adapter, Bus-Verlängerung und Stecker sind jetzt im 19 " Schrank vorhanden - wegen IR-Kette neben ZRE)


@ Jörg,

2. 3. 4. und 5. in 006 sind nicht mit LDIR gemacht, sondern mit LD (HL),A oder LD (DE),A


Ich suche immer noch den Adress-Plan der K7024


mfg ralph
PS
Die Basiseinheit hat 2x 11 Steckplätze, derzeit nur 5 belegt
--
.
http://www.ycdt.net/mc80.3x . http://www.ycdtot.com/p8000
http://www.k1520.com/robotron http://www.audatec.net/audatec
http://www.ycdt.de/kkw-stendal

Dieser Beitrag wurde am 04.12.2014 um 12:17 Uhr von rm2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
09.12.2014, 12:28 Uhr
rm2
Default Group and Edit
Avatar von rm2

Hallo an alle,

hier ein updtae:


so sieht die Basiseinheit aus



LDIR-Befehl mit Großbuchstaben, aber noch mit NMI-Signal
--> in diesem Zeichensatz sind keine Kleinbuchstaben




So sollte es eigentlich aussehen (noch mit einigen Kleinbuchstaben):

Am späten Nachmittag war das Programm (Version F) dann so gnädig.
Warum noch NMI aktiv war, konnte noch nicht geklärt werden.


mfg ralph


PS aber auch das:

trat mal auf. Ursache unbekannt.
--
.
http://www.ycdt.net/mc80.3x . http://www.ycdtot.com/p8000
http://www.k1520.com/robotron http://www.audatec.net/audatec
http://www.ycdt.de/kkw-stendal

Dieser Beitrag wurde am 09.12.2014 um 12:30 Uhr von rm2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
09.12.2014, 12:48 Uhr
kaiOr

Avatar von kaiOr

Arbeitest Du mit Dunkeltastung oder WAIT?
Dieser Beitrag wurde am 09.12.2014 um 12:51 Uhr von kaiOr editiert.
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