NKC Forum |
Autor | Thema: Fehler in Z80 Programmen |
---|---|
DerInder Fast schon Admin Seitenadmins ![]() ![]() ![]() ID # 2 |
![]() ![]() ![]() ![]() ![]()
Moin Moin,
da ich mich z.Zt. etwas um ein Z80 System kümmere, ist mir aufgefallen, dass das Grundprogramm, Gosi und Basic nen Bug haben. Und zwar leseen alle Drei den Port 60h (Seitenregister der GDP) aus. Bei der GDP-64 ist Der aber nur schreibbar, bei der GDP-HS und der GSP-FPGA ist dieser Port auch lesbar, liefert dann aber Pixels zurück. Von daher sind diese Routinen Müll. Das macht sich bei der GDP-FPGA durch fehlende Pixel bemerkbar, da auch der XOR-Modus über den Port 60h (Bit 0) gesteuert wird. Ich hab daher mal alle Drei gepatcht. Für Leute die es selbermachen wollen: Einfach nur nach DB 60 (IN A,(60h)) suchen und durch 3E 00 (LD A,0) ersetzen. ----------------------- Gruß -=jens=- |
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |
m.haardt Voll in Gange ![]() ![]() ![]() ID # 93 |
![]() ![]() ![]() ![]() ![]()
Meinst Du sowas wie in flomon?
in a,(page) and 00001111b or b out (page),a Steht im Datenblatt, dass der nur schreibbar ist, und ist das auch wirklich so? In Datenblaettern steht ja auch schon mal Unsinn. Michael |
Beiträge: 517 | Mitglied seit: April 2008 | IP-Adresse: gespeichert | |
DerInder Fast schon Admin Seitenadmins ![]() ![]() ![]() ID # 2 |
![]() ![]() ![]() ![]() ![]()
Moin Moin,
also ist der FLOMON auch betroffen ![]() Das Page-Register ist bei der GDP-64 definitiv nur schreibbar, aber wie gesagt bei der GDP-HS und GDP-FPGA wird darüber der Video-Speicher ausgelesen. ----------------------- Gruß -=jens=- |
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |
m.haardt Voll in Gange ![]() ![]() ![]() ID # 93 |
![]() ![]() ![]() ![]() ![]()
Ich kenne den Grafikchip gar nicht. Wenn Du einen Patch hast, nehme ich den aber gerne auf, weil ich sowieso an flomon arbeiten werde. Der betroffene Code sieht so aus:
clear:: ;bildschirm loeschen eine page ;akku = pageadresse ;loeschen ist flickernd push af call wait ;warten bis cmd fertig von frueher pop af and 11110000b ; ld b,a in a,(page) and 00001111b or b out (page),a Aktuell habe ich flomon 4 erstmal so geändert, dass man es ohne Fehlermeldungen bauen kann. Wenn die bestellten Teile angekommen wären, würde ich den Pullup auf das CPU Board löten und danach ergibt ein IN, was niemand dekodiert, hoffentlich auch 0xff und die Funktion zur Erkennung der KEY würde funktionieren, damit in dem Fall die SER mit 9600 8N1 benutzt wird. Langfristig möchte ich von sdcard booten können. Michael |
Beiträge: 517 | Mitglied seit: April 2008 | IP-Adresse: gespeichert | |
DerInder Fast schon Admin Seitenadmins ![]() ![]() ![]() ID # 2 |
![]() ![]() ![]() ![]() ![]()
Moin,
wenn du direkt mit den Sourcen arbeitest, kannst du die Sequenz auf: clear:: ;bildschirm loeschen eine page ;akku = pageadresse ;loeschen ist flickernd push af call wait ;warten bis cmd fertig von frueher pop af and 11110000b ; out (page),a eindampfen. Ich hatte nur am Hexcode gepatcht. Übrigens ist das die Setpage Routine, die ist im Grundprogramm, Gosi und Basic identisch. Copy and paste error und das vor 30 Jahren ![]() ----------------------- Gruß -=jens=- |
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |
m.haardt Voll in Gange ![]() ![]() ![]() ID # 93 |
![]() ![]() ![]() ![]() ![]()
Klar, copy & paste war damals schon so beliebt wie heute.
![]() Die Änderung in flomon ist also: @@ -657,10 +667,6 @@ clear:: ;bildschirm loeschen eine page call wait ;warten bis cmd fertig von frueher pop af and 11110000b ; - ld b,a - in a,(page) - and 00001111b - or b out (page),a clear1: ld a,00000111b ;blank of sonst fehler beim clear Ja, ich benutze den Source, dafür gibt's den ja. Es kostete Hans Werner und mich etwas Mühe, herauszufinden, wie genau man das baut, aber nun gibt es ein SUB File. Da ich git benutze, sind alle Änderungen nachvollziehbar. Ich habe allerdings noch kein öffentliches Repository, kann aber bei Interesse Snapshots und ROM Images ins Web stellen. Michael |
Beiträge: 517 | Mitglied seit: April 2008 | IP-Adresse: gespeichert | |
DerInder Fast schon Admin Seitenadmins ![]() ![]() ![]() ID # 2 |
![]() ![]() ![]() ![]() ![]()
Moin Michael,
genau so wie du es beschrieben hast, ist es in Ordnung. Wie kommt es, das du auf dem FLOMON4 aufbaust? Der FLOMONCG ist doch wesentlich übersichtlicher und dazu noch sehr gut dokumentiert. ----------------------- Gruß -=jens=- |
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |
hschuetz Administrator Seitenadmins ![]() ![]() ![]() ![]() ![]() ![]() ID # 3 ![]() |
![]() ![]() ![]() ![]() ![]()
Hallo Jens,
FlomonCG macht dir richtig Stress, deine VGA kannste knicken, macht nur Müll, läuft ohne Grafikkarte nicht, und Michael möchte den NKC nur mit der SER bedienen... Ich hatte verschiedenes ausprobiert... und die Quellen vom Flomon 4 ist auch vorhanden... und für Zeat ist auch Platz. Wir haben uns auf Flomon 4 geeinigt...da könnten noch einige bauen!! ----------------------- Ob 8bit oder 16 oder 32 ist doch egal, Haupsache selbstgebaut! |
Beiträge: 962 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |
m.haardt Voll in Gange ![]() ![]() ![]() ID # 93 |
![]() ![]() ![]() ![]() ![]()
So ist es. Drum nehme ich git, damit hat man alle Änderungen einzeln und kommentiert, falls doch mal jemand auf flomoncg aufbauen möchte.
Michael |
Beiträge: 517 | Mitglied seit: April 2008 | IP-Adresse: gespeichert | |
DerInder Fast schon Admin Seitenadmins ![]() ![]() ![]() ID # 2 |
![]() ![]() ![]() ![]() ![]()
Nochmal zu den Fehler.
FLOMON bietet ja seit der 1.x Version auch die Unterstützung für den XOR-Modus (RMW-Modus). Von daher müsste der Code für die Seitenumschaltung korrkt lauten: call wait ;warten bis cmd fertig von frueher pop af and 11110000b ; ld b,a ld a,(RMW) and 00000001b - zu Sicherheit or b out (page),a Das setzt allerdings vorraus, dass der Zustand des RMW-Modus in einem Byte gespeichert wird (hier RMW). Das muss dann mit den Befehlen: "r CR" bzw. "r rmw CR" gesetzt/gelöscht werden. Ach ja der Befehl "F n1 n2 n3 rmw CR" ist davon auch direkt betroffen. ----------------------- Gruß -=jens=- |
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |
m.haardt Voll in Gange ![]() ![]() ![]() ID # 93 |
![]() ![]() ![]() ![]() ![]()
Da ich keine GDP habe: Du sprichst von einem page Register. Im Datenblatt des 9366 ist Register 0 beim Schreiben "cmd", beim Lesen "status". Ein page Register finde ich nicht.
Wenn Du einen fertigen Patch fuer flomon 4 hast, waere mir das sehr lieb, weil ich es nicht selbst testen kann. Da ich mit dem 9366 nicht vertraut bin: Gibt es ein Register, was man beim Start von flomon setzen und zuruecklesen kann (idealerweise mit 0x55 oder 0xaa), um die Anwesenheit der GDP zu erkennen, ohne was kaputtzumachen? Da die KEY das nicht erlaubt und das mit dem Pullup nicht geht, sehe ich keinen sonstigen Weg. Michael |
Beiträge: 517 | Mitglied seit: April 2008 | IP-Adresse: gespeichert | |
DerInder Fast schon Admin Seitenadmins ![]() ![]() ![]() ID # 2 |
![]() ![]() ![]() ![]() ![]()
Moin,
das page-Register ist nicht vom 9366 sondern ist ein '273er auf der GDP-Karte (Adr.: 60h). Als Register zur Erkennung kann man z.B. X LSB (Adr.: 79h) nehmen, wenn man die Erkennung gleich zum Anfang macht, spielt es keine Rolle wenns verändert wird. Das Gleiche würde ich auch mit der SER machen, da kann man das Command oder Control-Register dafür nehmen. Mein Vorschlag wäre: Erkennung der beiden Karten, wenn nur eine davon vorhanden ist, wird die Ein- und Ausgabe darüber abgewickelt. Für den Fall, dass beides Vorhanden ist (wäre bei mir der Fall), könnte man den Startschirm über GDP und SER ausgeben und je nachdem ob ein gültiges Zeichen über die SER oder KEY empfangen wird, wird der jeweilige IO-Kanal genutzt. Übrigens noch ein Problem, das Auftritt wenn man über die SER arbeitet: Der FLOMON stellt ein MT950.. Terminal dar. Z.B. Wordstar benutzt diese Schnittstelle. Mir ist leider keine Terminalemulation unter Windoofs/Linux bekannt, die dieses Terminal kann. Deshalb sollte man den FLOMON vielleicht auf VT100 umschreiben (Wordstar lässt sich auch daran anpassen). Dadurch wüder die Grafikbefehle wegfallen und man bekämme einiges an Platz z.B. für SD-Card Anbindung. ----------------------- Gruß -=jens=- |
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |
m.haardt Voll in Gange ![]() ![]() ![]() ID # 93 |
![]() ![]() ![]() ![]() ![]()
Ah, jetzt verstehe ich das. Es geht um ein nicht lesbares Latch!
Wenn beides vorhanden ist, dann hat man vermutlich doch auch eine KEY mit den Schaltern, oder? VT100 ist durchaus aufwaendig. Vielleicht waere VT52 eine Loesung. Ich habe auch schon ueberlegt, die Grafikfunktionen zu entfernen. CP/M Programme sollten GSX benutzen oder von mir aus selbst die GDP ansprechen, so wie Basic und Gosi. Das wird durch die Terminalemulation im Flomon nicht schneller. Danke fuer die neue Version. Ich habe sie eingepflegt, aber ich probiere das heute nicht mehr aus. Bei naechster Gelegenheit versuche ich erstmal den GDP Test, um ohne GDP dann SER zu benutzen. Michael |
Beiträge: 517 | Mitglied seit: April 2008 | IP-Adresse: gespeichert | |
DerInder Fast schon Admin Seitenadmins ![]() ![]() ![]() ID # 2 |
![]() ![]() ![]() ![]() ![]()
Nun, ich gehe einfach mal davon aus, dass wenn man die GDP hat auch eine KEY da ist. Ich sehe also GDP/KEY als eine Einheit, die SER wäre die Andere.
VT52 wäre auch ne Möglichkeit ![]() ----------------------- Gruß -=jens=- |
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert |
| https://nkcforum.de | Boardregeln | Datenschutzerklärung
Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts
Seite in 0,049638 Sekunden erstellt
17 Dateien verarbeitet
gzip Komprimierung eingeschaltet
2187,30 KiB Speichernutzung