ZX81-Kompatibler aus Standardbauteilen: ZX81NU

ZX-Team Forum
holmatic
User
Beiträge: 117
Registriert: 13.10.2009, 23:53
Wohnort: Bremen

ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von holmatic » 06.11.2013, 21:59

Dieses Projekt wurde in viewtopic.php?f=2&t=1009 schon diskutiert. Es geht um einen ZX81-kompatiblen Rechner aus Standardkomponenten, also ohne ULA-Spezialchip. Das Leiterplattenformat entspricht dem des Original-ZX81, und auf moderne SMD-Bauteile wurde verzichtet.
ZX81NU_lo_res.jpg
ZX81NU_lo_res.jpg (51.47 KiB) 20979 mal betrachtet
Über die ZX80/ZX81-Grundfunktionalität hinaus bietet die Schaltung

- Bis zu 56KByte RAM oder 80K mit Bankumschaltung
- HRG-Grafik
- Maschinenprogramme im Speicherbereich 32K bis 48K.
- 32Kbyte EPROM mit Bankumschaltung
- Startmenu mit Auswahl ZX81 und ZX80
- Onboard-Interface für VDRIVE2 USB-Speicher mit Treiber im EPROM

Optional bestückbar und dann vom Treiber unterstützt:

- 128Kbyte Onboard-EEPROM-Speicher für ZX81-Programme per LOAD/SAVE: "Microdisk"
- Mini-LED-Anzeige für vier ASCII-Zeichen


Das NU im Namen steht wahlweise für "No ULA", da die Schaltung ja keine ULA, sondern nur Standardbauteile aufweist- andererseits kann man "NU" englisch wie "new" aussprechen, also ein Hinweis auf einen neueren Entwurf. :lol:
ZXNU_1B01_PCB.zip
Die Leiterplatte
(107.92 KiB) 604-mal heruntergeladen
ZXNU_ROM.zip
Das ROM mit Quelltexten
(43.58 KiB) 565-mal heruntergeladen
Zuletzt geändert von holmatic am 19.02.2014, 20:07, insgesamt 3-mal geändert.

holmatic
User
Beiträge: 117
Registriert: 13.10.2009, 23:53
Wohnort: Bremen

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von holmatic » 06.11.2013, 22:01

Die Schaltung

Der ZX81NU ist kein direkter 1:1 Nachbau des ZX81. Stattdessen wurde versucht, mit möglichst wenigen Standardbauteilen die ZX81-Funktionalität nachzubilden. Gegenüber gängigen Zeddy-Schaltungen (im ZX80 oder beim NMI-Generator) weichen die hier eingeschlagenen Wege mitunter ab - die 100 prozentige Kompatibilität zum ZX81 ist also keineswegs garantiert. Es ist daher spannend zu sehen ob und wo eventuelle Unterschiede zu Tage treten.
ZX81NU_1B_Schematic.zip
Schaltung
(216.96 KiB) 721-mal heruntergeladen
ZX81NU_Aufbauhinweise_1B01.zip
Aufbau und Stückliste
(1.92 MiB) 663-mal heruntergeladen
Beschreibung der Schaltung

Die Takterzeugung übernimmt ein recht einfacher Oszillatorschaltkreis mit zwei Invertern aus IC17. Einem Schaltungsvorschlag der Herstellers TI folgend sollte man für IC17 eigentlich den Typ 74HCU04 einsetzen. Dabei steht das U für unbuffered, also einer etwas mehr 'analog-kompatiblen' Variante zum Einsatz in Oszillatoren. Der HCU-Typ ist jedoch mitunter nicht überall zu bekommen, ein einfacher 74HCT04 funktioniert bei mir aber auch. Die so erzeugten 6,5MHz liefern den Pixeltakt für das Schieberegister IC6. Ein D-Flipflop aus IC20 teilt dann den Takt auf 3,25MHz herunter, für Prozessor und NMI-Zähler. Schaltungsveröffentlichungen für NMI-Zähler (als Erweiterung für den ZX80 oder für Nachbauten) gibt es zahlreich, ein Klassiker findet sich in http://searle.hostei.com/grant/zx80/zx80nmi.html. Frühe Umsetzungen setzten den NMI-Zähler durch den Hsync-Puls der CPU zurück und waren damit nicht komplett kompatibel mit den echten ZX81-ULAs, wie der geniale Andy Rea in http://sinclairzxworld.com/viewtopic.ph ... cknowledge darlegt. Andy zufolge schaut die original-ULA auf das Interrupt-Acknowledge am Ende der Halt-Phase. Dieses Verhalten ist hier mittels IC12c nachgebildet. Als Zähler wird statt des üblichen Ripple-Clock-Zählers ('393) ein Paar synchroner Zähler des Typs '163 eingesetzt. Diese Variante erspart etwas Zusatzlogik, denn einer der Zähler liefert den 16 Zyklen breiten HSYNC-Puls quasi umsonst, und die Vorladbarkeit der Zähler kann für das spezielle Verhalten der original-ULA (Interrupt Acknowledge setzt den Zähler auf 15 Zyklen vor HSYNC-Start) ausgenutzt werden.

Insgesamt ist die interne Busstruktur des ZX81NU eine muntere Mischung aus ZX80 und ZX81. Wie beim ZX80 gibt es eine Trennung zwischen CPU-Datenbus mit NOP-Override einerseits und RAM/Videoschieberegister andererseits. Diese Variante erlaubt ein einfaches Timing, war jedoch beim ZX81 wegen der begrenzten Zahl an ULA-Pins so nicht möglich. Der Addressbus ist wie beim ZX81 zwischen CPU und ROM mittels Widerständen entkoppelt. Dabei kommt es sehr gelegen, dass der eingesetzte Zeilenzähler IC9 ('590) und das Video-Charakter-Code-Register IC4 ('574) bereits Tri-State-Ausgänge besitzen, um während des RFSH-Zyklus die ROM-Addressen zu überschreiben.

Beim ZX80 wird der Video-NOP-Override durch acht Open-Collector-Treiber realisiert. Um Platz und Bauteile zu sparen wurde hier stattdessen mit dem Schottky-Dioden-Stern-Netzwerk RN1 und dem MOSFET Q1 gearbeitet. Der für Q1 eingesetzte Typ 2N7000 ist in der Ansteuerung TTL-kompatibel und zudem sehr niederohmig, um im aktiven Zustand sämtliche Datenleitungen zuverlässig auf LOW-Pegel zu ziehen.

Die RAM-Ansteuer-Logik entspricht im Kern der Lösung in viewtopic.php?f=2&t=479 und ist damit eigentlich aus dem "Willi-RAM" hervorgegangen. D1 sorgt in Zusammenarbeit mit R21 für die HRG-Fähigkeit, das RAM belegt den kompletten Speicher mit Ausnahme des 8K ROM Bereichs. Das softwaregesteuerte Bank-Switching per Register IC21 berührt nur die Speicherbereiche 2000h-3FFFh sowie 8000h-BFFFh, also nicht den von BASIC oder Videospeicher genutzten Bereich. Damit bleibt ein Bankswitching auch im SLOW-Modus möglich. Das UND-Gatter IC13d stellt eine Erweiterung gegenüber der ZX81-ULA dar und erlaubt das Ausführen von Maschinenprogrammen im Speicherbereich 8000h-BFFFh.

Kommen wir damit zu einem zugegebenermaßen etwas billig umgesetzten Feature: Der Video-Schwarzschulter. Die RC-Entladezeit von C17 und R34 bestimmt die Schwarzschulter am Anfang jeder Bildzeile, die Zeit dafür sollte bei etwa 5 Mikrosekunden landen. Fans der alten 2C184-ULA können C17 natürlich einfach weglassen, und bekommen dann das - je nach Monitor - etwas trübe schwarzschulterfreie Bild der ganz alten Zeddies geliefert. Kurzschließen von C17 hingegen invertiert die gesamte Bilddarstellung (Jumper INV VIDEO).

An der Tastaturschaltung hat sich gegenüber ZX80/81 im Grundsatz nichts geändert, nur die Bestückungsoption IC7 (ein bereits auch im ZX80CORE eingesetzter Open-Collector-Treiber, siehe viewtopic.php?f=2&t=866&p=8757) erlaubt gegebenenfalls die zuverlässige Ansteuerung von Tastaturen mit sehr langen Kabeln. Der Anschluss einer externen Memotech-Tastatur per Erweiterungsbus ist möglich, indem man IC8 durch einen 'LS641 ersetzt - die entsprechenden Datenbus-Pullups sind mit RN1 bereits standardmäßig vorgesehen.

Der Spannungsregler REG1 ist sowohl als konvertioneller 7805 als auch per modernem Schalteregler bestückbar. Direkt am Stromversorgungsanschluss können mit L1 und L2 zwei Induktivitäten zur Unterdrückung von Hochfrequenzanteilen bestückt werden. Dabei ist zu erwähnen, dass das Thema elektromagnetische Verträglichkeit immer das ganze System mit Gehäuse, Abschirmung und Anschlussleitungen umfasst, und entsprechend das Gesamtkonzept zu betrachten wäre.


Anschluss eines VDRIVE2

Angeschlossen wird das VDRIVE am "SPI"-Port, also dort wo beim Original-Zeddy die MIC-Buchse war. In der Aufsicht ist das VDRIVE wie folgt anzuschließen:

Code: Alles auswählen

    Gelb       Braun    Orange    Rot
    Schwarz    ---       Grün     ----
Die blaue Leitung des VDRIVE bleibt dabei ungenutzt. Das VDRIVE muss sich im SPI Modus befinden (nicht UART), diese Betriebsart wird per Jumper direkt am VDRIVE eingestellt.


Extras

Neben der Zeddi-Grundfunktionalität ist auf der Leiterplattte noch Platz für zwei Extras, deren Bestückung jeweils optional ist.
MEM_DISP_hili_lores.jpg
Links die 3-Euro-Festplatte, rechts das Display.
MEM_DISP_hili_lores.jpg (21.18 KiB) 20109 mal betrachtet

Zum einen gibt es Platz für einen EEPROM-Speicherbaustein zum Speichern und Laden von ZX81-Programmen, zum anderen für ein (allerdings recht spezielles) Mini-LED-Text­display von Osram beziehungsweise Siemens.

Solid-State Festplatte

Der Speicherbaustein 25LC1024 bildet ein 128 Kilobyte großes „Microdisk“ Laufwerk. Von den Leistungsdaten her ist es mit einem Sinclair-Microdrive-Cartridge vergleichbar - nur bei der Zuverlässigkeit könnte es mit garantierten 200 Jahren Datenerhalt und einer Million Schreib­zyklen einen kleinen Vorteil gegenüber der Magnetbandschlaufe geben. Die Ansteuerung erfolgt per LOAD und SAVE vom BASIC aus, die Treibersoftware erkennt das Vorhandensein des Speicher-Bauteins automatisch.

LED-Text-Anzeige

Das Display ist ein kompaktes 4-Zeichen-ASCII-Display im DIP-16-Format. Die Typ­bezeichnungen SLR2016, SLG2016, SLY2016 unterscheiden sich nach Farbe (Red, Green, Yellow, Orange). Das Display gibt im ZX81NU beim Start gegebenenfalls einige Hinweise:

RAM? Kein RAM vorhanden oder vorhandenes RAM nicht ansteuerbar
NMI? Im NMI-Modus werden keine NMI Interrupts von der TTL-Logik ausgelöst

Freilich sind die diagnostischen Möglichkeiten begrenzt, denn um das Display für eine Fehler­meldung anzusteuern, muss die CPU erst einmal anlaufen und ROM-Code korrekt abarbeiten.

Im Normalbetrieb kann man das Display per ZX81-BASIC ansteuern (SAVE ''$TEST'' ) und für Dinge wie Statusanzeigen verwenden. Ob bei einer in ein Zeddy-Gehäuse eingebauten Leiterplatte die Bestückung eines Displays dennoch sinnvoll sein kann, ist wohl eher eine philosophische Frage, welche sich in die Frage einreiht, ob eine Kühlschranklampe auch leuchtet wenn die Kühlschranktür zu ist. Die Software jedenfalls merkt nicht, ob ein Display bestückt ist oder nicht.
Zuletzt geändert von holmatic am 20.02.2014, 22:05, insgesamt 12-mal geändert.

holmatic
User
Beiträge: 117
Registriert: 13.10.2009, 23:53
Wohnort: Bremen

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von holmatic » 06.11.2013, 22:03

Die Software

Wie beschrieben hat das ROM insgesamt 32KByte, wobei softwaremäßig zwischen vier Bänken im Bereich 0-8K umgeschaltet werden kann. Nach einem Reset startet der Rechner in Bank0. Bank0 enthält dann ein Auswahlmenü, von dem aus man dann per Tastendruck zu Bank1 (ZX81 ROM) oder Bank2 (ZX80 ROM) wechseln kann.

Das Begrüßungs- und Auswahlmenü:
StartScreen_lores.jpg
StartScreen_lores.jpg (31.76 KiB) 20892 mal betrachtet
Den erfolgreichem Zusammenbau des ZX81NU belohnt ein Begrüßungsbildschirm im 288x225-Pixel-HRG-Format mit einem 6X9-Pixel Zeichensatz, also 48x25 Zeichen. Dass der ZX81 keineswegs auf 256x192 Punkte beschränkt ist hat auch Bodo kürzlich in viewtopic.php?f=2&t=770 vorgestellt. Das brachte mich auf die Idee, solch eine Hyper-HRG mit einem kompakteren Zeichensatz (6 Punkte breit, so wie beim QL) zu kombinieren. Da mit solch schmalen Zeichen bei der Bildschirmdarstellung viel Hin- und Herschieberei notwendig ist, um die 6-Pixel-Zeichen auf die 8-Pixel-Bytes zu verteilen, hatte ich bereits mit recht träger Ausgabegeschwindigkeit gerechnet. Tatsächlich ist das aber gar nicht so schlimm, ein 1200-Zeichen Bildschirm ist im SLOW-Mode in etwa einer Sekunde geschrieben. Der Bildschirmtreiber benutzt einen speziellen NMI-Handler, man kann ihn also ohne ROM-Modifikation nicht auf einem normalen Zeddi nutzen.

Bankumschaltung:

Durch die recht sparsame Bankumschaltungselektronik wird immer der ganze 0-8K ROM-Bereich auf einmal umgeschaltet. Das heißt aber auch: Wenn ein Programm im ROM die Bank umschaltet, so zieht es sich quasi das eigene Programm "unter den Füßen weg". Dies gilt es beim Umschalten zu berücksichtigen, es muss sich also in der neuen Bank die korrekte Fortsetzung des Programms befinden.

Treiber und Extras:

Der ZX81NU weist einige Erweiterungen auf, deren Ansteuerung in das ZX81 BASIC integriert werden sollte. Die Umsetzung hatte zum Ziel, dieses "minimal-invasiv" zu machen. Das ROM liegt immer nur bei 0000-1FFF und dort kann zwischen vier Bänken geschaltet werden. Für die Vdrive/Microdisk/LED-Display-Treiber habe ich eine Anregung von Paul übernommen und den Treiber in ein Schatten-ROM gepackt - ganz ähnlich wie beim ZX Interface 1 des Speccy. Dafür wurde das Original-ZX81ROM nur um 6 Bytes verändert, quasi eine "Kellertreppe" beim Aufruf von LOAD oder SAVE.

Der Prefix für LOAD und SAVE

Der erste Buchstabe im Dateinamen gibt an, mit welchem Laufwerk man arbeiten möchte, danach folgt der Dateiname:

LOAD "+QFROG" ... lädt das Programm QFROG vom externen VDRIVE. Das Plus ist der Prefix für das VDrive (Merke: Plus für hohe Geschwindigkeit).

LOAD "+" ... gibt das Inhaltsverzeichnis des USB-Sticks aus. Auch eine Navigation durch die Verzeichnisse ist so möglich.

SAVE "+QFROG" ... speichert das BASIC-Programm QFROG auf das VDRIVE



LOAD "-QFROG" ... lädt das Programm QFROG von Cassette. Das Minus ist der Prefix für das Tape (Merke: Minus für niedrige Geschwindigkeit oder als Symbol für das Cassetten-Band) .

LOAD "-" ... lädt das nächste Programm von Cassette.



LOAD "*QFROG" ... lädt das Programm QFROG vom internen 128KByte Microdisk. Der Stern ist der Prefix für das VDrive (Merke: Fixstern für interne "Fest"-platte) .

LOAD "*" ... gibt das Inhaltsverzeichnis der internen Microdisk aus

SAVE "*QFROG" ... speichert das BASIC-Programm QFROG auf der Microdisk

SAVE "*///QFROG" ... löscht die Datei QFROG von der Microdisk ( Drei mal "/" vor dem Namen löscht die Datei )




SAVE "$TEST" ... gibt den Schriftzug "TEST" auf dem LED-Display aus. Das $-Zeichen ist der Prefix für das Display (Merke: String ($) für Text)

Nach dem vierten Zeichen wird abgeschnitten. Selbstverständlich gehen auch berechnete Ausdrücke:
SAVE "$"+STR$ PI ... gibt "3.14" auf dem Display aus
Zuletzt geändert von holmatic am 31.01.2014, 19:27, insgesamt 5-mal geändert.

Benutzeravatar
PokeMon
User
Beiträge: 4404
Registriert: 31.08.2011, 23:41

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von PokeMon » 06.11.2013, 23:07

holmatic hat geschrieben:Die Software
Bankumschaltung:

Durch die recht sparsame Bankumschaltungselektronik wird immer der ganze 0-8K ROM-Bereich auf einmal umgeschaltet. Das heißt aber auch: Wenn ein Programm im ROM die Bank umschaltet, so zieht es sich quasi das eigene Programm "unter den Füßen weg". Dies gilt es beim Umschalten zu berücksichtigen, es muss sich also in der neuen Bank die korrekte Fortsetzung des Programms befinden.

Cooles Projekt. :D
Muss ich mir mal im Detail anschauen.
Warum kann man die Bankumschaltung nicht durch ein Programm im RAM vornehmen ?
Dann dürfte das oben geschilderte Problem ja nicht auftreten.

Im Idealfall wird der Umschaltcode auch beim Startup einfach ins RAM kopiert und dort ausgeführt.
Dann hat man keine Probleme mit unterschiedlichen Einsprungspunkten in unterschiedlichen ROMs.
Wer seinen Computer ehrt, lebt nicht verkehrt.

holmatic
User
Beiträge: 117
Registriert: 13.10.2009, 23:53
Wohnort: Bremen

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von holmatic » 07.11.2013, 00:10

PokeMon hat geschrieben:Warum kann man die Bankumschaltung nicht durch ein Programm im RAM vornehmen ?

Das kann man natürlich auch machen. Die direkte Umschaltung bringt im ZX81-Mode den Vorteil, dass wirklich das komplette RAM vom User genutzt werden kann. Ansonsten ist es eher die sportliche Herausforderung.

Benutzeravatar
PokeMon
User
Beiträge: 4404
Registriert: 31.08.2011, 23:41

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von PokeMon » 07.11.2013, 00:18

Also für mich kannst Du schon mal ein Board reservieren. :D
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 2082
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von siggi » 07.11.2013, 15:44

holmatic hat geschrieben:Die direkte Umschaltung bringt im ZX81-Mode den Vorteil, dass wirklich das komplette RAM vom User genutzt werden kann. Ansonsten ist es eher die sportliche Herausforderung.
Diese Herausforderung hatte ich im USB-Filemananger auch: der läuft ja auch im Bereich 8-16K (im RAM) und muß, wenn er ein vom Stick geladenes Programm mittels MEFISDOS abspeichern will, ins MEFISDOS reinspringen, das zufällig auch bei 8-16K (im EEPROM) läuft. Meine Lösung ist, daß der Code zur Bankumschaltung in einer "Variable" des UFM läuft, die vom C-Compiler auf dem Stack abgelegt wurde. Da sich der Stack bei einem laufenden C-Programm üblicherweise im RAM befindet, kann man dieses Ram dann mit dem Bankumschaltecode beschreiben und von dort aus die Umschaltung vornehmen. Es wird dadurch kein User-Ram verplempert oder irgendwas überschrieben, was vorher im Ram gelegen hatte. Es wird nur der Stack-Space des C-Programms verwendet, das der User ja selbst gestartet hat und dem er auch den Stack-Platz dafür bereitgestellt hatte :-)

Gruß
Siggi

PS: Ich hätte auch gern ein Board, wenn's das mal gibt ...
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
msch
User
Beiträge: 3309
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von msch » 07.11.2013, 17:01

Hey, noch ein cooles Projekt :-)
Ich bin auch dabei - sprich: ein Board würde ich nehmen, am liebsten mit allen Bauteilen ;-)
Beste Grüße,
Mathias
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (Lichtung, Ernst Jandl)

Benutzeravatar
Platine64
User
Beiträge: 280
Registriert: 27.03.2013, 14:52
Wohnort: Steiermark

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von Platine64 » 07.11.2013, 17:07

Hallo Mathias, das mit dem blinkenden 'K' ist eine Super-Idee ! ;-) Passt Spitze hier in's Forum!

Benutzeravatar
msch
User
Beiträge: 3309
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von msch » 07.11.2013, 20:41

Danke :-) Allerdings macht mich das blinken irgendwie nervös...
Backrezept: Emulator*, 2 x Screenshot vom Cursor in der gewünschten Grösse erstellen (am Mac gar kein Problem) und mit einem Java-Tool** zur GIF-Animation zusammstellen.
* Für den Mac empfehle ich ZXSP, http://k1.dyndns.org/Develop/projects/z ... ributions/
** Platformunabhängig: GiftedMotion, http://www.onyxbits.de/giftedmotion
Zuletzt geändert von msch am 07.11.2013, 20:46, insgesamt 1-mal geändert.
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (Lichtung, Ernst Jandl)

Benutzeravatar
medusa
User
Beiträge: 267
Registriert: 13.01.2013, 19:34
Wohnort: Köln

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von medusa » 07.11.2013, 20:45

Hey, sehr cool.

"Leider" hab ich schon einen echten ZX81 und den ZX80Core im Steampunk Design. Sonst würde ich schwach werden. Ein Projekt, bei dem nur Standardbauteile verwendet werden, halte ich für besonders wertvoll, weil es für nachwachsende Fans trotz austrocknender Quellen von Originalteilen immer noch bedeutet, mit einem "richtigen" Rechner arbeiten zu können.
Mit dem QL wäre das mal was... die ZX8301 & ZX8302 ULAs aus Standardbauteilen... hat das überhaupt schon mal jemand auch nur angedacht?
(Ist aber ohnehin OT hier.)

Ich werde holmatic's Projekt auf jeden Fall interessiert verfolgen. 8)

~medusa.
PDP-11: 012700 176500 012760 000100 000000 000777.
68000: 4E71?
VAX: D450 908051 11FB!
Alpha: 47E8404 A4240000 A4440008 40220400 B404000C...

Benutzeravatar
PokeMon
User
Beiträge: 4404
Registriert: 31.08.2011, 23:41

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von PokeMon » 07.11.2013, 23:47

holmatic hat geschrieben:Den erfolgreichem Zusammenbau des ZX81NU belohnt ein Begrüßungsbildschirm im 288x225-Pixel-HRG-Format mit einem 6X9-Pixel Zeichensatz, also 48x25 Zeichen. Dass der ZX81 keineswegs auf 256x192 Punkte beschränkt ist hat auch Bodo kürzlich in viewtopic.php?f=2&t=770 vorgestellt. Das brachte mich auf die Idee, solch eine Hyper-HRG mit einem kompakteren Zeichensatz (6 Punkte breit, so wie beim QL) zu kombinieren. Da mit solch schmalen Zeichen bei der Bildschirmdarstellung viel Hin- und Herschieberei notwendig ist, um die 6-Pixel-Zeichen auf die 8-Pixel-Bytes zu verteilen, hatte ich bereits mit recht träger Ausgabegeschwindigkeit gerechnet. Tatsächlich ist das aber gar nicht so schlimm, ein 1200-Zeichen Bildschirm ist im SLOW-Mode in etwa einer Sekunde geschrieben. Der Bildschirmtreiber benutzt einen speziellen NMI-Handler, man kann ihn also ohne ROM-Modifikation nicht auf einem normalen Zeddi nutzen.
Hmm - Verständnisfrage.
Wird allgemein ein Zeichensatz von 6x9 Pixel (warum nicht 6x8 ?) unterstützt ?
Also abgeänderte ROM Routinen usw. ?
Gibts einen ZX81 kompatiblen Mode mit 32x24 Zeichen ?
Zumindest könnte je nach Programm wenn es direkt in den Bildschirmspeicher schreibt bei 48 Zeichen pro Zeile ein Buchstabensalat auf dem Schirm erscheinen ... :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

holmatic
User
Beiträge: 117
Registriert: 13.10.2009, 23:53
Wohnort: Bremen

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von holmatic » 08.11.2013, 00:04

Nee, der 6x9-Zeichensatz ist derzeit ein Spezialmodus nur für den Startbildschirm, so eine Art Demo. Wenn man sich dann für ZX80 oder ZX81 entschieden hat, ist der Spezialmodus beendet und es geht mit den üblichen 8x8 Zeichen weiter.

Ich fand dass 6x9 besser aussieht, weil ein normales Zeichen wie ein "E" dann sieben Pixel in der Höhe hat und somit schön symmetrisch aussieht (Habe oben mal ein Bildchen mit dem Zeichensatz eingefügt).

Benutzeravatar
msch
User
Beiträge: 3309
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von msch » 08.11.2013, 07:05

Sieht cool aus. Gibt er das Bild invers (die Fonts in Grün auf schwarz) aus oder liegt das am verwendeten Monitor?
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (Lichtung, Ernst Jandl)

Benutzeravatar
PokeMon
User
Beiträge: 4404
Registriert: 31.08.2011, 23:41

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von PokeMon » 08.11.2013, 19:33

Mathias, schönes neues Avatar.
Jedoch blinkt der Cursor des ZX80/ZX81 nicht. :wink:
Und schon gar nicht so schnell. :mrgreen:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
msch
User
Beiträge: 3309
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von msch » 08.11.2013, 20:13

wer sagt, dass es ein ZX80/81 Cursor ist? Es gibt ja auch noch den ZX Spectrum - und der blinkt und auch so schnell ;-)
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (Lichtung, Ernst Jandl)

Benutzeravatar
tokabln
User
Beiträge: 1069
Registriert: 10.11.2013, 00:24
Wohnort: D, Berlin (Mariendorf)

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von tokabln » 11.11.2013, 10:50

Hallo, bin neu hier in diesem Forum und gerade über das schöne Projekt gestolpert... an einer Platine (wenn möglich gleich mit Bauteilen) hätte ich auch durchaus Interesse.
Lieben Gruß Torsten
BMZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500, Amiga 1200, Atari Portfolio, HP200LX, IBM PC 5155, TP755c, T41, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e

Kai
User
Beiträge: 385
Registriert: 19.04.2005, 20:46

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von Kai » 24.11.2013, 19:55

Nachdem mir Oliver die Platine so schnell geschickt hat, wollte ich das auch nicht erst lang liegen lassen. Und ein bißchen neugierig war ich ja auch.
Der Aufbau der Platine ging dank der sehr guten Dokumentation reibungslos. Die Pads dürften gern etwas größer sein, das läßt sich mit einer ausgeleierten Spitze dann besser löten... :mrgreen:
Einzig beim Diodenarray habe ich ein wenig grübeln müssen. Die Dioden senkrecht direkt einlöten wollte ich nicht, da könnten die beim löten Schaden nehmen. Ein paar Millimeter Draht sollten schon bleiben. Außerdem ist das ausrichten der einzelnen Dioden fummelig. Auf Sockel stecken wollte ich aber auch nicht. Also folgendermaßen gemacht, die Anschlußdrähte auf ca. 5 mm gekürzt, die Dioden dann provisorisch in einen Sockel gesteckt und ausgerichtet:
DN1_1.jpg
DN1_1.jpg (89.05 KiB) 20673 mal betrachtet
Dann den gemeinsamen Anschluß verlötet:
DN1_3.jpg
DN1_3.jpg (90.49 KiB) 20673 mal betrachtet
Und das im Stück dann in die Platine gelötet:
DN1_4.jpg
DN1_4.jpg (121.3 KiB) 20673 mal betrachtet
Was soll ich noch lang berichten, alles fertig bestückt, kurze Sichtprüfung, alle ICs gesteckt, angeschlossen und Strom drauf. ES LIEF AUF ANHIEB! Ich kann mich nicht erinnern, ob und wann mir sowas schonmal passiert ist. Nach alter Bastlerregel ist jetzt irgendwas faul, ich bin gespannt, welcher knifflige Fehler sich später zeigen wird...

Das Bild ist jedenfalls knackescharf und verzerrungsfrei. Ich bin begeistert.

Benutzeravatar
PokeMon
User
Beiträge: 4404
Registriert: 31.08.2011, 23:41

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von PokeMon » 24.11.2013, 21:48

Kai hat geschrieben:Einzig beim Diodenarray habe ich ein wenig grübeln müssen. Die Dioden senkrecht direkt einlöten wollte ich nicht, da könnten die beim löten Schaden nehmen. Ein paar Millimeter Draht sollten schon bleiben.
Also da hätte ich mal keine Bedenken. Auch wenn sie direkt eingelötet werden, ohne größeren Drahtabstand.
Bei den SMD Dioden im Minimelf Format wird direkt am Glasgehäuse gelötet - ohne Draht.
Das überstehen die auch klaglos. :wink:

Bild
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
msch
User
Beiträge: 3309
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von msch » 25.11.2013, 00:49

super! ...gibt es die Platine schon?
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (Lichtung, Ernst Jandl)

holmatic
User
Beiträge: 117
Registriert: 13.10.2009, 23:53
Wohnort: Bremen

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von holmatic » 25.11.2013, 22:23

Momentan gibt es zwei heldenhafte Tester, die sich mit "Nullserien"-Platinen beschäftigen. Daraus könnten sich dann natürlich noch Änderungen ergeben...

Kai
User
Beiträge: 385
Registriert: 19.04.2005, 20:46

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von Kai » 26.11.2013, 19:47

Was heißt hier "heldenhaft"? Super Doku, 1a Platinen...das ist ne reine Fleißarbeit. :mrgreen:

Benutzeravatar
Paul
User
Beiträge: 2463
Registriert: 10.03.2010, 12:01
Wohnort: Germanys west end

ZX81NU Reichelt Warenkorb

Beitrag von Paul » 10.12.2013, 15:05

Reichelt Warenkorb.
https://secure.reichelt.de/index.html?& ... ROVID=2084
Es fehlen die Klinkenbuchsen, Minidisplay, Kühlkörper für 7805 (hat Reichelt nicht), es sind die Chips mit Tastaturpuffer statt Dioden und 74hct245 sowie 74HCT04 statt 74HCU04N im Warenkorb.
Statt Keyboardbuchsen sind Buchsenleisten im Warenkorb.
Man kann bei der Übernahme auswählen ob man alles will oder Teile schon hat.

Liebe Grüße
Paul
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Benutzeravatar
PokeMon
User
Beiträge: 4404
Registriert: 31.08.2011, 23:41

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von PokeMon » 16.12.2013, 16:16

Gibt es denn Platinen jetzt auch schon ? :D
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Paul
User
Beiträge: 2463
Registriert: 10.03.2010, 12:01
Wohnort: Germanys west end

Re: ZX81-Kompatibler aus Standardbauteilen: ZX81NU

Beitrag von Paul » 16.12.2013, 17:12

PokeMon hat geschrieben:Gibt es denn Platinen jetzt auch schon ? :D
Nein :twisted:
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Antworten