CP/M-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Memberlist || Home || Statistik || Kalender || Staff Willkommen Gast!
[ Unofficial CP/M Website ] [ Z80 Family Support Page ] [ Forum-Regeln ] [ Impressum/Kontakt ]

CP/M-Forum » CP/M-Emulatoren » Z80 Halt » Threadansicht

Autor Thread - Seiten: -1-
000
12.06.2012, 09:25 Uhr
timetube

Avatar von timetube

Zur korrekten Emulation fehlt mir eine Information bezüglich des Verhaltens des HALT Befehls.
Ich finde dazu im Netz keine oder widersprüchliche Angaben.

Der HALT Befehl führt ja solange NOP/Refresh Cyklen aus, bis ein Interrupt ihn abbricht.

Meine Frage nun ist, was passiert wenn die Speicherstelle, aus dem der HALT Befehlgelesen (wird/wurde) geändert wird. Zum Beispiel bei Dual ported RAM oder DMA. Bricht der HALT dann auch ab und der nun dort stehende Befehl wird ausgeführt oder nicht?

Mit anderen Worten, wird der Opcode bei jedem Cyklus neu gelesen und Interpretiert?

Weiss das jemand ?
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
001
12.06.2012, 14:30 Uhr
winielektronik



Hallo timetube
bei einem HALT-Befehl führt der Z80 die NPOs intern durch.
Es währe sonst kein HALT sondern ein Speicherzugriff auf immer
die gleiche Adresse. Der Z80 HALT läst sich auch mur mir Reset, Int.
abbrechen. Ich mache es genau so. DMA ist bei HALT nicht möglich.
Ergibt auch wenig sinn.
Gruss
Hansjörg
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
002
13.06.2012, 00:53 Uhr
timetube

Avatar von timetube


Zitat:
winielektronik postete
Hallo timetube
bei einem HALT-Befehl führt der Z80 die NPOs intern durch.
...

Danke, ich dachte mir das schon, war mir aber nicht sicher weil er ja auch noch weiter Refresh-Zyklen ausführt im HALT. Was er ja bei BUSREQ nicht mehr macht.

j-
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
003
13.06.2012, 22:01 Uhr
m.haardt



Wieso wäre DMA nicht sinnvoll? Ganz im Gegenteil, so muss der Bus nicht erst angefordert werden wenn es Daten gibt und am Ende weckt der Interrupt die CPU wieder auf. Schade, dass das nicht geht.

Michael
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
004
13.06.2012, 23:19 Uhr
timetube

Avatar von timetube


Zitat:
m.haardt postete
Wieso wäre DMA nicht sinnvoll? Ganz im Gegenteil, so muss der Bus nicht erst angefordert werden wenn es Daten gibt und am Ende weckt der Interrupt die CPU wieder auf. Schade, dass das nicht geht.

Michael

Die Z80 lässt den BUS nicht los bei HALT, nur bei BUSREQ. Ein DMA Controller würde also mit der Z80 um den Bus streiten und es kann nur einer gewinnen Ich habe aber eine BlueThunder Karte, die ich emuliere, so dass die original DOS Software auf einem Linux System in der DOSBOX verwendet werden kann. Die Karte ist für einen EISA Bus und mapped, über Steueradressen anwählbar, jeweils 256 Byte ihres internen Speichern (64k) in den PC Adressbereich. Über weitere Steueradressen kann die Karte Resetted,NMI und ein HALT Mode geschaltet werden. Beim HALT Mode sieht die Z80, über eine Hardware, überall nun roch 0x76 im Speicher. Daher rührte meine Frage was passiert, wenn die HALT Mode zurückgenommen wird. Der Z80 bleibt im HALT bis zum NMIREQ oder INTREQ.

mfg j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
005
15.06.2012, 19:35 Uhr
winielektronik



Hallo timetube
Der HALT-Mode kann man nicht zurücknehmen Die CPU arbeitet keine
extenen Befehle mehr ab.
Ich kann nur Reset auslösen mit Sprung auf Adresse 0000H
oder Sprung zum eingestelten INT-Mode.
Mehr geht nicht.
Habe mein ROVER Projekt mit so einer lösung versehen läuft klasse.
Gruss
Hansjörg
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
006
16.06.2012, 04:13 Uhr
timetube

Avatar von timetube


Zitat:
winielektronik postete
Hallo timetube
Der HALT-Mode kann man nicht zurücknehmen Die CPU arbeitet keine
extenen Befehle mehr ab....Hansjörg

Hoi Hansjörg

HALT Mode zurücknehmen hat hier nicht die Bedeutung "den HALT Befehl in der CPU" zurück nehmen zu wollen. Da hast Du recht, das ginge so nicht. Die BlueThunder Karte kennt einen HALT Modus, der vom PC (Host) aus Ein- und Ausgeschaltet werden kann. Ist er an, sorgt eine Hardware auf dem BlueThunder Board dafür, dass der Z80 nur noch 76h am Bus lesen kann. Damit wird er, wo immer er auch gerade eine Opcode einlesen wird, einen HALT erkennen.

Wird das Board dann wieder in den NORMALEN Modus geschaltet (HALT Mode zurücknehmen), bleibt die Z80 im HALT Befehl. Die CPU kann ja nicht erkennen, dass sich der Opcode wie durch Geisterhand von 76h auf was immer an der aktuellen Speicherstelle auch steht geändert wurde. Die Z80 ließt den Opcode bei HALT ja nicht neu ein, arbeitet den HALT nur noch durch interne NOPs ab, um die Refreshzyclen aufrecht zu erhalten.

Damit ist es notwendig, nach dem das BlueThunder Board den HALT Modus abgeschaltet hat, auch einen INT/NMI/RESET an der CPU auszulösen.

Das ist der Hintergrund, auf dem meine Frage erfolgte. Es geht nun übrigens Dank Deiner Hilfe.

Danke
j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
007
16.06.2012, 20:37 Uhr
winielektronik



hallo
find ich einfach klasse das du dich mit den deteils des Z80 befast.
Ich bin auch schon lange an meinem KISYSTEM dran.
Experimentiere auch mit möglichkeiten hier und da
lösungswege zu finden. Ich werde in meiner Homepage
anfangen kleine experimentier Tools zugänglich zu machen.
Einfach kleine Tricks die ich für mein SYSTEM ausgetüftelt
habe.
Könnte mir auch kreative ünterstützung vorstellen um das Spektum
zu erweiten.
Gruss
Hansjörg
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: -1-     [ CP/M-Emulatoren ]  



gaby.de

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