Ich entwerfe meinen eigenen Computer basierend auf dem Zilog Z80. Es verfügt über 256 KB statischen RAM mit Paging sowie einige Megabyte Flash-Speicher. Alles läuft ziemlich gut, bis * BAM * ich in eine Sackgasse geriet.
Das Problem, das ich habe, ist das Entwerfen eines Videocontrollers. Ich dachte an eine Art Terminal oder Display. Ein 24x80 oder 25x80 Terminal wäre wunderbar. Aber selbst ein VGA-Display mit 640 x 480 Pixeln würde enorm viel Speicherplatz beanspruchen.
640 * 480 = 307.2 Kbits
Das ist sogar mehr als die Menge an Speicher, die vom Z80 gleichzeitig adressiert werden kann!
Wenn ich Farbe möchte, sagen wir, ein Bit pro Farbe, würde ich 3 Bits pro Pixel benötigen.
307.2 Kbits * 3 = 921.6 Kbits
Müsste es nicht außerdem zwei Ports haben, um den Zugriff von Z80 und dem Monitor zu ermöglichen?
Da dies extrem schwierig in Software und Hardware zu implementieren ist, wäre es eine gute Entscheidung, ein Zeichen-ROM zu verwenden? Es wäre sehr schwierig für mich, Fuse-Link-PROMs oder UV-EEPROMs zu bekommen. Was soll ich machen? Kann ich ein Zeichen-ROM im Flash-Speicher ablegen? Wie würde ich es in der Steuerung implementieren? Wie sage ich dem Charakter-ROM, welchen Charakter er ausspucken soll? Sollte ich überhaupt VGA verwenden? Wäre Component-Video (NTSC oder PAL) einfacher als VGA?
Wenn ein gutes System entworfen werden kann, können wir es vielleicht sogar für Mikrocontroller verwenden! Gib mir alles, was du hast, ich brauche so viele Ideen wie möglich.
Aus diesem Grund gab es VGA-Displays erst lange nach dem Z80.
Blockgrafiken mit Sprites oder monochrome Grafiken mit 1 Bit pro Pixel oder auf Zeichen-ROM basierende Anzeigemodi waren an der Tagesordnung. Manchmal konnte man den Modus zwischen ihnen wechseln.
Unter Verwendung von Zeichen-ROMs lieferte der ASCII-Zeichencode den größten Teil der Adresse in das ROM, wobei (Scan Line Mod 10) 4 LSBs der Adresse bereitstellte. Sie haben also ASCII-Zeichencodes in einem kleinen (vielleicht 2 kByte) RAM gespeichert, und die Hardware des Videocontrollers hat eine Zeichenfolge von 80 aus diesem RAM gelesen (10 Mal hintereinander für 10 aufeinanderfolgende Abtastzeilen), um 80 Bytes (640 Bits) pro Zeile zu liefern .
Diese 80 Byte können aus einem 128-Byte-Abschnitt des 2K-RAM stammen, um die Videoadressierung zu vereinfachen. Ebenso stammen die 10 Abtastzeilen aus einem 16-Byte-Abschnitt des Zeichen-ROM, um die Adressierung zu vereinfachen. Mit einem geeigneten Design können Sie mit nur geringfügigen Änderungen an der Videohardware eine andere Zeichen-ROM-Seite mit 14 oder 16 Bytes pro Zeichen für eine hübschere Schriftart (und weniger Textzeilen auf dem Bildschirm!) auswählen.
Der 6845-Videocontroller war ein beliebtes Gerät, das mit dieser Art der Adressierung und einfachen Bitmap-Grafiken umgehen konnte. Es sollte immer noch einfach sein, viele Informationen darüber zu finden.
Vielleicht entscheiden Sie sich für ein serielles LCD-Display: -
Ich habe das Bit rot eingekreist, das über die serielle Schnittstelle spricht. Dies ist nur eine Idee - es gibt viele LCDs, die passen könnten. Sie können den Z80 UART oder DART verwenden (wenn sie ihn noch herstellen und Ihre Informationen an das Modul senden.
Ich weiß, das ist eine alte Frage, aber ich mache eigentlich so ziemlich dasselbe. Ich entwerfe eine Konsole im Stil der 80er Jahre, die auf der Z80
.
Wofür ich mich entschieden habe, ist der Propeller
Mikrocontroller von Parallax
. https://www.parallax.com
Der Propeller (manchmal auch „Prop“ genannt) hat 8 Kerne, die gleichzeitig laufen. Jeder Kern ist in der Lage, NTSC/PAL- und VGA-Video mit wenig Programmierung anzuzeigen. Es ist ein sehr leistungsfähiger Chip, und obwohl ihm einige der integrierten Hardwarefunktionen von Atmel fehlen, gleicht er dies in den 8 Kernen mit jeweils 20 MIPS (160 MIPS) aus.
Außerdem ist die Community fantastisch und es wurden viele Audio-/Video-Emulatoren dafür geschrieben. Tatsächlich glaube ich, dass ein kompletter Z80 auf einem Kern laufen kann, sodass 7 andere andere Dinge wie Video und Audio erledigen können.
Ich kann sie nicht genug empfehlen. Besonders für alles, was mit VGA- oder NTSC/PAL-Video zu tun hat.
Sie können etwas wie Tellymate , AVR VGA Generator , AVR-VGA oder Simple VGA/Video Adapter verwenden .
Wouter van Ooijen
Superkatze
Superkatze