Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Z1013 - Strahlenrücklauf » Themenansicht

Autor Thread - Seiten: -1-
000
12.07.2022, 18:52 Uhr
Asato

Avatar von Asato

Hallo,

gibt es eine Möglichkeit, softwareseitig (Assembler) den Beginn/Ende des vertikalen Strahlenrücklaufs der Bilderzeugung in irgendeiner Weise zu erkennen? Ich möchte verhindern, dass beim direkten Zugriff auf den Bildschirmspeicher sichtbare Artefakte entstehen, wenn zeitgleich zum Aufbau Änderungen vorgenommen werden.

Gehe ich richtig in der Annahme, dass die Adresse $EC00 des Bildschirmspeichers nicht veränderbar ist?

Viele Grüße
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
12.07.2022, 18:58 Uhr
ralle



Viel Bildspeicher ist nicht. die 2 Statischen RAM und der ROM für den Zeichensatz. Und ja, der ist festgelegt. Du könntest vermutlich nur durch Abschalten ausblenden. Bei Pharao für den KC85/2 und 3 ist das auch nicht anders. Das Bild wird jedes mal neu aufgebaut. Sonst wären bei diesem Type die Nadeln sichtbar.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
12.07.2022, 19:59 Uhr
PIC18F2550

Avatar von PIC18F2550

Nein es gibt auf dem Bord kein signal was von der CPU gelesen werden kann.

Du könntest den NMI auf die Schwarzschulter schalten und damit Triggern.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
13.07.2022, 05:00 Uhr
Hobi



Oder auch das Signal an die PIO legen.
--
-------------------------------------------
Corontäne
-------------------------------------------
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
13.07.2022, 06:09 Uhr
gerritsoft

Avatar von gerritsoft

Mir ist aufgefallen dass beim KC 85.3 mit Chaos 3.4 i die Bild Artefakte durchaus weniger und erträglicher sind; seht ihr das genauso?

Vielleicht hat auch der Vorbesitzer da was umgebaut. Und dann gab es ja viele Layouts für Grafikkarten zum selber basteln wo man dann schon ein bisschen überlegt hat und keine Artefakte auftreten ich weiß aber gar nicht welche weil ich kann Bastler für Hardware bin ich kann eigentlich nur Software und mal das ein oder andere Brötchen anlöten.
--
Ich kann auch geschweißte Kassetten reparieren.
Null eins fuenf sieben acht eins neun zwei zwei vier vier neun. Bringen wir sie raus! Energie!

Dieser Beitrag wurde am 13.07.2022 um 06:14 Uhr von gerritsoft editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
13.07.2022, 07:38 Uhr
PIC18F2550

Avatar von PIC18F2550

Pio ist ungünstig da die von vielen anderen Prozessen genutzt wird und Interuptroutinen von anderen Anwendungen würden die Ausgabe Stören.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
13.07.2022, 10:31 Uhr
Hobi



Nicht beim Z1013. Viele andere Prozesse laufen da nicht, eigentlich gar keiner.

Die PIO funktioniert genau wie ein Latch. Wenn man will könnte man sogar einen Interrupt programmieren. Nimm man den NMI, kann man das Signal nicht mehr abschalten, hat aber im Gegenzug einen coolen Zeitgeber Takt.
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 13.07.2022 um 10:34 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
13.07.2022, 18:11 Uhr
Bert




Zitat:
Asato schrieb
Ich möchte verhindern, dass beim direkten Zugriff auf den Bildschirmspeicher sichtbare Artefakte entstehen, wenn zeitgleich zum Aufbau Änderungen vorgenommen werden.


Die Artefakte sind doch das Salz in der Suppe ;-)
Ich musste jetzt erstmal schauen, wie die beim Z1013 aussehen:
https://www.youtube.com/watch?v=REnzRXSItZs
Die Emulatoren unterschlagen einfach die Artefakte...


Zitat:

Gehe ich richtig in der Annahme, dass die Adresse $EC00 des Bildschirmspeichers nicht veränderbar ist?


Nur mit dem Lötkolben und dann läuft die Software nicht mehr auf anderen Geräten.
Was gefällt Dir denn an der Adresse nicht?



Zitat:
gerritsoft schrieb
Mir ist aufgefallen dass beim KC 85.3 mit Chaos 3.4 i die Bild Artefakte durchaus weniger und erträglicher sind; seht ihr das genauso?


Ich habe da keinen Vergleich. Da aber bei 3.4i einige Systemroutinen deutlich optimiert wurden, ist das gut möglich.

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
13.07.2022, 22:04 Uhr
Asato

Avatar von Asato


Zitat:
Bert schrieb
Die Artefakte sind doch das Salz in der Suppe ;-)
Ich musste jetzt erstmal schauen, wie die beim Z1013 aussehen:
https://www.youtube.com/watch?v=REnzRXSItZs



Autsch, das sieht echt übel aus, viel schlimmer als befürchtet (leider habe ich keine echten Z1013, um das selbst zu testen) .. vielleicht kann ja einer mal ein etwas höherwertiges Video machen ..


Zitat:

Die Emulatoren unterschlagen einfach die Artefakte...



das lässt sich wohl nicht vermeiden, aber was das Thema angeht - ist der JKCEMU im Übrigen exakt genug, dass man sich darauf verlassen kann?


Zitat:

Nur mit dem Lötkolben und dann läuft die Software nicht mehr auf anderen Geräten.
Was gefällt Dir denn an der Adresse nicht?



Kenne das von anderen Systemen, da ist die Adresse manchmal veränderbar, was double buffering vereinfachen würde, sofern man einen Z1013 mit mehr als 2 Kb RAM hat
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
14.07.2022, 04:40 Uhr
Hobi



double buffering beim Z1013 ist nicht ohne HW-Änderung möglich. Ganz einfach, weil nur der Bereich von EC00-EFFF ausdekodiert wird. Man kann nicht noch ein 1k drauf legen und dann den eine andere Adresse nehmen


Bei der KRT Grafik ist das dagegen ohne große Probleme möglich. Dort werden schon 3 Bits zur Bankumschaltung genutzt. Immer noch im Bereich von EC00, aber mit eben dieser Bankumschaltung.
Beim 4-fach Multiplexer ist noch ein Gatter frei. Das kann man benutzen fûr das double bufferung.
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 14.07.2022 um 05:01 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
14.07.2022, 08:22 Uhr
Bert




Zitat:
Asato schrieb
Autsch, das sieht echt übel aus, viel schlimmer als befürchtet


Ich glaube so schlimm ist das gar nicht. Zwischen den 'Programmbildern' gibt es oft längere Pausen, bei denen auf einen Tastendruck gewartet wird. Und selbst in laufenden Spielen werden nur wenige Objekte neu gezeichnet, wo der Zugriff kaum auffällt.


Zitat:

ist der JKCEMU im Übrigen exakt genug, dass man sich darauf verlassen kann?


Die Originaltastatur ist so schlecht (Haptik & Layout), das kann man gar nicht emulieren :-)
Ansonsten wüsste ich nicht, was es an der Emulation des Z1013 im JKCEMU zu bemängeln gäbe.


Zitat:

sofern man einen Z1013 mit mehr als 2 Kb RAM hat


Speicher war zu der Zeit verhältnismäßig teuer. Und man muß auch zwischen 'normalen' Hauptspeicher und dem Videospeicher unterscheiden. Die Videoausgabelogik (heute würde man Grafikkarte dazu sagen) hat keinen Zugriff auf den Hauptspeicher.

An den sichtbaren VRAM-Zugriffen hat man sich damals nicht gestört.
Viel eher war Vollgrafik gefragt, als Ergänzung zur Pseudografik.

Ein Zwischenschritt dazu war der Programmierbare Zeichengenerator, bei dem der Zeichen-EPROM durch einen RAM (mit zusätzlicher Schreiblogik) ersetzt wurde:
https://hc-ddr.hucki.net/wiki/doku.php/z1013/erweiterungen/vollgrafik

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
15.07.2022, 07:56 Uhr
Asato

Avatar von Asato

Lese ich das beim Z9001/KC87 in Funktionsbeschreibung richtig (http://www.sax.de/~zander/z9001/module/basic/z9_kcba.pdf), dass man das Problem der Störung des Bildaufbaus durch Zugriffe auf den Bildspeicher dort von "außen" gelöst hat ... wie muss ich mir das praktisch vorstellen: wird der Zugriff auf den Bildschirmspeicher "angehalten" bis horizontaler/vertikaler Strahlenrücklauf erfolgt, oder erfolgt das auf Seiten der Bildwiedergabe?

Auch hier scheint es kein softwareseitige Abfragemöglichkeit des jeweiligen Strahlenrücklaufs zu geben.
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
15.07.2022, 11:01 Uhr
Bert




Zitat:
Asato schrieb
wie muss ich mir das praktisch vorstellen: wird der Zugriff auf den Bildschirmspeicher "angehalten"


Ja. Auf der von Dir verlinkten Seite gibt es auch schöne Schaltpläne.
Vom Videoteil (http://www.sax.de/~zander/z9001/z9sch_3.pdf) wird unter bestimmten Bedingungen das /WAIT-Signal der CPU bedient (Q14).


Zitat:

Auch hier scheint es kein softwareseitige Abfragemöglichkeit des jeweiligen Strahlenrücklaufs zu geben.


Ja, da habe ich auch nichts entdeckt. Immerhin ist auf Steckverbinder X7, Pin 1C ein Eingang der CTC zugänglich gemacht.

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
15.07.2022, 12:56 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Ganz allgemein gesagt: Z1013 und Z9001 haben eine alphanumerische "Grafikkarte", die sich mit dem Prozessor einen RAM-Bereich teilen.
Am Z1013 darf der Prozessor jederzeit lesen und schreiben, das verursacht die Bildstörungen.
Beim Z9001 ist der Zugriff nur während der Dunkeltastung möglich. Diese Synchronisation wird über ein WAIT-Flip-Flop realisiert, das das WAIT-Signal auf dem Bildschirm aktiviert, wenn ein Zugriff während der Bildschirmausgabe erfolgt.

Eine Synchronisation auf den Elektronenstrahl z.B. für Lichtgriffel etc. oder am Z1013 zu Verhinderung des Flackerns ist hardwaremäßig nicht vorgesehen.
--
VolkerP

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

Dieser Beitrag wurde am 15.07.2022 um 12:56 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
16.07.2022, 07:54 Uhr
Asato

Avatar von Asato


Zitat:
volkerp schrieb
Am Z1013 darf der Prozessor jederzeit lesen und schreiben, das verursacht die Bildstörungen.
Beim Z9001 ist der Zugriff nur während der Dunkeltastung möglich. Diese Synchronisation wird über ein WAIT-Flip-Flop realisiert, das das WAIT-Signal auf dem Bildschirm aktiviert, wenn ein Zugriff während der Bildschirmausgabe erfolgt.



So hatte ich es dem Handbuch entnommen, war mir aber nicht sicher, wie die Formulierung "auf dem Bildschirm aktiviert" zu verstehen ist, klingt (wenn man wie ich nicht aus der Hardwareecke kommt), als ob die Ausgabe pausiert würde und nicht der Zugriff auf den Speicher ...

Lässt sich das Wait-Signal irgendwie softwareseitig detektieren (vermutlich nicht ? Mit sowas wie einem PIT könnte man ja vielleicht die verlangsamte Ausführung messen und so zumindest auf vsync schließen ..
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
16.07.2022, 08:22 Uhr
Asato

Avatar von Asato


Zitat:
Bert schrieb
Die Artefakte sind doch das Salz in der Suppe ;-) ...
Die Emulatoren unterschlagen einfach die Artefakte...



Könnte man für ein warmes Nostalgiegefühl einbauen Bei PCs - gerade bei CGA gibt's vergleichbare Resultate und Bemühungen, das für eine perfekte Emulation zu realisieren

https://www.pcjs.org/blog/2017/07/15/
https://github.com/joncampbell123/dosbox-x/issues/256

Ich finde ja schon den CRT shader beim https://floooh.github.io/virtualkc/ großartig!


Zitat:
Ansonsten wüsste ich nicht, was es an der Emulation des Z1013 im JKCEMU zu bemängeln gäbe.



Ist ein toller Emulator! Mir ist bisher nur aufgefallen, dass der JKCEmu frameskipping betreibt, wenn der Host zu langsam ist.
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
16.07.2022, 09:41 Uhr
PIC18F2550

Avatar von PIC18F2550

Mit einem Wait Signal kommst du beim z1013 nicht weiter weil der Prozessor trotzdem auf den Speicherbereich zugreift.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
16.07.2022, 12:31 Uhr
ralle



Vielleicht findest du hier Hinweise zum Thema Bildspeicher: https://www.tiffe.de/robotron/Z1013/Practic_z1013.pdf
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
16.07.2022, 14:05 Uhr
Asato

Avatar von Asato


Zitat:
ralle schrieb
Vielleicht findest du hier Hinweise zum Thema Bildspeicher: https://www.tiffe.de/robotron/Z1013/Practic_z1013.pdf



Wow, das ist tolles Material! *Seufz*

Leider habe ich keinen Z1013 und muss auf Emulatoren für meine Spielereien zurückgreifen. Vielleicht hat ja einer von Euch einen im Einsatz, dem ich vielleicht mal bei Gelegenheit was zum Testen zukommen lassen könnte?
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
16.07.2022, 14:35 Uhr
Hobi




Zitat:
PIC18F2550 schrieb
Mit einem Wait Signal kommst du beim z1013 nicht weiter weil der Prozessor trotzdem auf den Speicherbereich zugreift.



Der Schaltungsaufwand für eine flimmerfreie Darstellung ist gering. Man kann die CPU recht einfach in den WAIT Zustand schicken. Das Signal dazu liegt am Multiplexer an.

Der Prozessor ist zwar aktiv, aber durch Multiplexer und Bustreiber getrennt. Dadurch kann man erst den Bildschirmzyklus beenden und dann mit der CPU weitmachen.

Die Strafe dafür ist sehr gering. Bei einem gleichzeitigen Bildschirmzugriff, wird der Speicherzugriff nur um 1-Taktzyklus(WAIT) verlängert.
--
-------------------------------------------
Corontäne
-------------------------------------------
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
16.07.2022, 14:56 Uhr
PIC18F2550

Avatar von PIC18F2550

Dein Timing stimmt nicht.
Ein /MREQ benötigt 2 Takte von den 2 Mhz das macht genau 8 Takte vom 8 Mhz Pixeltakt.
Damit kann entweder CPU oder Bildwiedergabe auf dem Ram zugreifen.
Und CPU ist Dominant.

Wesentlich besser sieht es bei einem 4Mhz CPU Takt aus.
Hier könnte man mit Wait bessere Ergebnisse erzielen.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 16.07.2022 um 15:52 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
16.07.2022, 16:19 Uhr
Hobi



Der Logik kann ich nicht ganz folgen. Der Bildschirmspeicher wird alle 8 Takte gelesen. Dies dauert 125ns, sprich LOAD Eingang am Shifter. Man muss die CPU nur für diesen Zeitraum ausbremsen. Die restlichen 7 Takte ist der BWS frei.
Sollte es eine Herrausforderung sein, wäre ich bereit sie anzunehmen.
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 16.07.2022 um 16:54 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
16.07.2022, 16:53 Uhr
Hobi





Ich habe mal ein Bildchen angefertigt. In der Mitte fehlt genau ein gelber Impuls, aufgrund des Schreibzugriffs.

Der BWS Zugriff (gelb) dauert 0.125us. Der MREQ dauert 1µs oder auch mal 2µs bei 1MHz. Eigentlich ist es hier nicht mehr der MREQ, sondern etwas Zeitversetzt das Signal am Multiplexer MREQ+DK13. WR ist Lila.

Das BWS Signal und MREQ kommen von der gleichen Taktquelle. Daher gibt es nur 2 Fälle (bei 2MHz):
1. MREQ kommt zusammen mit den BWS, dementsprechend würde der nächste BWS Zyklus am Ende von MREQ kommt und somit stören.

2. MREQ kommt einen Taktzyklus später als der BWS (wie hier im Bild). In dem Fall kommt der nächste BWS in der Mitte des Zugriffs. Eventuell könnte man sogar den Fall ignorieren. Da ja nur am Ende gelesen oder geschrieben wird.
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 16.07.2022 um 17:29 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
16.07.2022, 19:00 Uhr
Asato

Avatar von Asato


Zitat:
Hobi schrieb
Oder auch das Signal an die PIO legen.



Das scheint mir eine schöne Variante zu sein (sofern man basteln kann und will oder man baut es in einen Emulator ein) ... sowas wurde schon auf anderen Systemen versucht, dann kann man das Signal abgreifen, wenn man es verwenden will ...

https://tiki100.blogspot.com/p/tiki-tiki-ta-writeup.html

und hier im Detail

https://tiki100.blogspot.com/p/initial-work.html
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
16.07.2022, 23:44 Uhr
PIC18F2550

Avatar von PIC18F2550

Der BWS Zugriff kann mit 125ns nicht stimmen da die Signallaufzeiten vom SRAM und PROM länger sind.
Das ist nur der Ladeimpuls des Schieberegisters der nach 8 Takten erfolgt.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 16.07.2022 um 23:46 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
17.07.2022, 06:16 Uhr
Hobi



stimmt, das hätte ich noch beim Original mit Aufzeichnen sollen. Bei den Nachbauten sind SRAM und PROM verdammt schnell. Da lasse ich das gern mal unter den Tisch fallen (30-100ns?).

Ich schätze aber, dass es original kaum mehr als 300-400 ns sind.
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 17.07.2022 um 06:19 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
17.07.2022, 09:41 Uhr
PIC18F2550

Avatar von PIC18F2550

Es kann sein das es auch mehr ist, da im Z1013 auch ICs verbaut wurden die nicht unbedingt der Norm entsprachen.
Die Signallaufzeit musste über SRAM und PROM nur unter 850ns liegen.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
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