Projekt Hardware Bedienung Kompatibilität Erweiterungen Programme |
AX81: Ein ZX81-Clone im ATMega
V0.29 (c) 2010-2012 Jörg Wolfram 1 RechtlichesDas Programm unterliegt der GPL (GNU General Public Licence) Version 3 oder höher, jede Nutzung der Software/Informationen nonkonform zur GPL oder ausserhalb des Geltungsbereiches der GPL ist untersagt!Eine Ausnahme bilden die fs_install.exe Datei für die Installation des Dateisystems sowie die zum Lesen und Schreiben von Dateien in den Unterverzeichnissen generierten .exe Dateien. Diese liegen nur als Freeware vor. Die Veröffentlichung dieses Projekts erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, auch ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Alle im Text genannten Marken sind Eigentum des entsprechenden Inhabers. 2 FeaturesAls Eingabegerät dient eine normale PS2-Computertastatur, als Ausgabegeräte können Fernsehgeräte mit Scart- oder BAS-Eingang (S/W), VGA-Monitore oder auch grafische LCDs (320x240, ohne Controller) verwendet werden.
3 KonzeptKernstück des Ganzen ist ein ATmega, die restliche Hardware besteht im Wesentlichen aus passiven Bauelementen und Steckverbindern. Das Videosignal wird intern über PORTC (TV) oder USART1 (nur 644P und 1284P) erzeugt, der LCD Anschluss erfolgt über PORT A. Über die config-Dateien lässt sich dies aber leicht anpassen.Die PS2-Tastatur wird über den USART0 des ATMega angeschlossen. An die SPI-Schnittstelle wird eine SD-Karte angeschlossen. 3.1 Systemvoraussetzung Host für das AssemblierenDas Ganze wurde unter Linux mit dem AVRA Assembler übersetzt. Eventuell muß der Pfad zu den Include-Dateien /usr/local/include/avr angepasst werden. Die Hex-Files sollte sich auch unter anderen Betriebssystemen brennen lassen.3.2 Das AX81 Dateisystem auf SD-Karte3.2.1 Datenformat auf der SD-KarteDie Programme liegen in einer 132 MBytes großen Image-Datei, die innerhalb der ersten 60 MB der SD-Karte beginnen muß. Jedes Tape hat darin eine eindeutige Kennung, mit der beim Systemstart der Beginn der Image-Datei bestimmt wird. Ein Programm besteht aus einem Header-Block (512 Bytes) und dem datenblock von 16 KBytes. Im Headerblock stehen der Programmname (10 Zeichen im ZX81 Zeichensatz) und danach 2 Bytes DateilängeDer Übersichtlichkeit halber sind je 32 Dateien zu (rein logisch) einem Tape zusammengefasst. Im ZX81 kann dann mittels POKE 99,x Befehl zwischen den einzelnen Tapes umgeschaltet werden. Rein rechnerisch können so maximal 8192 Dateien auf einer SD-Karte abgelegt werden und belegen dort ca.132 MBytes. Ab Version 0.25 werden auch SDHC Karten unterstützt. Zusätzlich gibt es 256 Unterordner, die die Tapes repräsentieren und über die der "Datenaustausch" mit der Image-Datei erfolgt. 3.2.2 das Dateisystem initialisierenDazu sollte die SD-Karte frisch formatiert sein. Zuerst werden entweder das Install-Programm oder die drei Install-Scripte in einen beliebigen Ordner auf der Karte kopiert. Dann wird einfach install_fs.exe oder das Perl-script mit perl install_fs.pl gestartet. Dann braucht es bis zu 5 Minuten, bis das Dateisystem angelegt ist. Neben der Image Datei gibt es einen Unterordner TAPES in dem sich die Verzeichnisse für die einzelnen Tapes befinden. Nach der Installation sollte das Installationsprogramm wieder gelöscht werden, da ein versehentlicher Aufruf eine neue, leere Image-Datei anlegt und dort bisher vorhandene Daten löscht.3.2.3 Dateien auf SD-Karte schreibenDazu dient das Script 000_write_to_tape.pl oder das Programm 000_write_to_tape.exe. Es schreibt alle im aktuellen Verzeichnis befindlichen .P Files auf die freien Plätze des dem Unterverzeichnis entsprechenden Tapes. Sollte der verfügbare Platz nicht ausreichen, wird eine entsprechende Fehlermeldung ausgegeben. Vor dem Schreiben wird das Tape formatiert (alle Programme darin gelöscht). Die drei Nullen vor dem Dateinamen der programme / Scripte sollen dafür sorgen, dass diese immer am Anfang des Verzeichnisses stehen.3.2.4 Dateien von SD-Karte lesenDazu dient das Script 000_read_from_tape.pl oder das Programm 000_read_from_tape.exe. Es liest alle im (dem Unterverzeichnis entsprechenden) Tape vorhandenen Programme aus. Bestehende Programme werden ohne Nachfrage überschrieben.3.3 config- und HexfilesDie Konfiguration für das Assemblieren erfolgt über eine Konfigurationsdatei, die über ".include" eingebunden wird. Wenn nur das Hexfile benötigt wird, muss das zum verwendeten Controller passende ausgewählt werden.4 Changelog15.7.2012 Version 0.29
created with latex2web.pl v0.62 © 2006-2011 Joerg Wolfram |