Hallo Besucher, der Thread wurde 81k mal aufgerufen und enthält 386 Antworten

letzter Beitrag von stynx am

Selbstbau 68k Rechner

  • Hallo,


    ich bin momentan dabei, einen kleinen Rechner zu bauen. Ich wollte dabei nicht alles in ein FPGA quetschen, aber auch nicht nur TTL verwenden. So hab ich mich dann auf genau ein CPLD eingelassen und dort eingesetzt, wo es praktisch ist, wie z.B. die Adressdekodierung.


    Als CPU hab ich einen MC68008 verwendet und u.a. gibt es SID Sound in Stereo. :) Das System ist momentan ein angepasstes EHBasic 68k.


    Hier mal zwei Fotos während des Aufbaus.



    Und hier gibts noch zwei erste kleine Videos.




    Viele Grüße
    Bogo

  • Irre! Da merkt man gleich, dass der 68k ne ganz andere Liga ist als der Z80, mit dem ich Selbstbau-Rechner gemacht habe. An mehr als 8 Bit und CP/M-basierende Systeme hab ich mich nicht rangetraut... ;) Hast du die Software auch komplett selbst entwickelt oder verwendest du ein angepasstes System? Wie hoch waren die Kosten für die Leiterplatte?

  • Hi,
    ich denk mal, da kommt der Rechner her. :)


    http://www.ist-schlau.de/downloads.html


    Gruß Höp

  • Ja, das stimmt hab ich auch gefunden. Allerdings ist es auch sein Server ;-)


    Ich würde mich echt freuen wenn es mal einen neuen Homecomputer geben würde. Die Platine macht mich auch an, die sieht richtig toll aus. Und wenn ich sehe das da gleich IDE, Floppy, PS/2 Maus und VGA dran sind, dann ist das ein feines Teil. Prozessor hätte ich mich persönlich auch lieber über einen sauschnellen Z80 gefreut, aber der ist ja auch nicht schlecht. Scheint dem Sinclair QL dann etwas näher zu sein, nur halt mit modernen I/O Ports.


    Ein Paar Details wären superinteressant.


    Gruß
    Tom / Pentagon

  • Hallo,


    erstmal vielen Dank für die positiven Rückmeldungen! Ich hatte gestern Geburtstag und bin erst jetzt wieder am Rechner. :)


    Dann erzähl ich mal etwas über den Computer. Es ist übrigens nicht das, was ich auf meinen Webseiten hab. Das ist uralt und muss dringend überarbeitet werden. Davor möchte ich aber alle Komponenten getestet und alle Fehler beseitigt haben. Kleinere hab ich bei dieser Platine bereits beseitigen müssen.


    Also, "auf den Pfaden der alten Veteranen wandern" trifft es glaub ich ganz gut. Ich bin schon öfters dararuf angesprochen worden, warum ich nicht alles in ein FPGA packe. Aber das ist irgendwie nicht dasselbe. Ich wollte etwas bauen, was es damals hätte geben können - mehr oder weniger. Viele Bauteile sind obsolet und teilweise schwer zu bekommen. Das und die Größe der Platine (34x22cm) sorgen dafür, dass man diesen Rechner eher nicht kaufen kann. Die Platine hat zwei Layer und hat im PCB Pool nicht ganz 300€ gekostet. Wobei ich aus Spaß auch mal andere Stückzahlen angegeben hab und positiv überrascht war...


    Das System besteht im wesentlichen aus diesen Teilen:
    - MC68008 CPU, 10MHz (8 Bit Datenbus!)
    - 4MB dram und 512KB VRAM
    - 2 SIDs für Stereo
    - V9990 Video Display Processor (V9990 VDP)
    - IDE/ATA
    - Floppy Disk (WD1770, DD)
    - RTC (RTC72421)
    - 10base-T Ethernet (CS8900a)
    - ps/2 tastatur & maus (über einen Atmega8)
    - zwei joystick ports (über MC68230 PI/T)
    - RS232 und parallel port (MC68681 und MC68230)
    - Timer des MC68230
    - XC95108 CPLD


    Das CPLD enthält neben der vollständigen Adressdekodierung noch den Taktgenerator für die CPU, sowie eine FSM für das DRAM (man kann alte, 30-polige SIMM MOdule benutzen. Unterstützt wird CBR-Refresh), eine FSM für Zugriffe auf den VDP, sowie eine weitere FSM zur Erzeugung des PIO Timings (IDE Zugriffe sind trotz 8-Bit Datenbus 16-Bit, da die obere Hälfte gepuffert wird). Außerdem erzeugt sie noch notwendige WR* und RD* Strobes für die RTC. Es fehlt noch eine weitere FSM für den Ethernet Controller. Den CS8900a kann man zwar auch im 8-Bit Modus betreiben, aber dann funktionieren die Interrupts nicht. Daher hängt dieser ebenfalls hinter dem 8-zu-16-Bit Puffer.
    Tastatur und Maus hängen an einem Atmega8, welcher selbst über den zweiten seriellen Port des MC68681 mit dem System verbunden ist. Momentan ist der Atmega8 nur für die Tastatur programmiert und schickt direkt ASCII und keine Keycodes.


    Die komplette Entwicklung hab ich unter Linux gemacht. Für den Schaltplan gschem und für die Platine pcb. Das CPLD hab ich mit dem Webpack von Xilinx programmiert. Den Atmega8 mit Avrdude. Lediglich die erzeugten ROMs hab ich per X1541 Kabel zum C64 übertragen und mit dem Tiny Eprommer gebrannt. :D
    Es läuft eine angepasste Version von EHBasic 68k. Hierfür gibt es den Assembler Quellcode, bei welchem ich die Eingabe- und Ausgaberoutinen angepasst hab. Die Eingabe hab ich lediglich auf die zweite serielle Schnittstelle des MC68681 gelegt. Für die Ausgabe hab ich den VDP im P2 Modus (64x26 Zeichen) programmiert. Als Zeichensatz dient der gute, alte Topaz.
    Auf der CF Karte ist ein Fat32 Filesystem. Zugegriffen wird über eine open source Bibliothek, die in C geschrieben ist. Das ganze ist etwas abenteuerlich, da ich das EHBasic nicht mit dem cross gcc assemblieren kann und so das Basic Binary aus zwei Teilen zusammen bauen muss. Aber funktioniert.


    Das Starfield ist in C mit ein wenig Inline-Assembler programmiert. Es benutzt den VBI für den Musikplayer und zum Umschalten beim Doubblebuffering, falls das nächste Frame fertig ist. Die Musik ist schlicht ein mit siddump gedumptes SID File. Besonders vom VDP bin ich richtig begeistert. Ich glaub, damit kann man tolle Sachen machen. :)


    Vielleicht schaff ich es, mal zu einer der nächsten Doreco zu kommen und den Rechner mitzubringen. So weit von Lüdenscheid ist es ja nicht... :)


    Bogo

  • Kurze Frage, der 68008 hat doch eigentlich nur einen 20-Bit-Adressbus (wenn ich mich nicht irre!) - wie klappt das mit den 4 MB? Bank-Switching?


    Ich benutze die PLCC Variante des MC68008. Dieser hat 22 Adressleitungen und kann 4MB direkt adressieren. :)

  • Cool :-) Wusste garnicht, dass es so eine Version vom 08er gibt. Man lernt echt nie aus. Schade, dass die HW so "exotisch" ist - mich juckts ja als alter Amiganer richtig, für das Ding was zu Programmieren.... 4 MB und quasi die HW direkt im Griff... Mhhh.. :-) Was kann denn der VDP so? Ist der auch Tile-basierend wie das Mega Drive, oder beherrscht der Bitmap-Grafik? Welche Auflösung und Farbtiefe kann der? (ja ich weiss, ich löcher dich grad ziemlich, aber das ist ein interessantes Projekt :-) )

  • Och, ein Einzelstück, doppelseitig und dazu noch in dieser Größe hat seinen Preis. Deshalb hatte ich weiter oben ja auch interessehalber gefragt und 300 finde ich dafür fair, wenn man es bezahlen möchte. Ich würde das nicht tun, aber ich hab ja auch eine masochistische Ader und stehe auf Kabelpr0n, bei mir werden Einzelstücke ausnahmslos handgefädelt :bgdev .

  • Ich finde auch, dass das noch ok ist. So oft lasse ich keine Platine herstellen.


    Zum VDP zitiere ich mal das programmers manual



    Und dann gibts noch diese Kommandos:



    In den Modi P1 & P2 (den Pattern Modi) hat man 125 Sprites zur Verfügung. :)