Seite 1 von 1

BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 24.04.2009, 16:22
von cm
Siehe http://www.heise.de/ct/projekte/machmit ... /FPGABasic

Gleichzeitig Firmware 2.5 fertig, die um einige wichtige Dinge (Speichern von Texten und Messdaten auf SD-Karte, XMODEM-Kommunikation, BlockLoad/BlockSave, Unterstützung der gepufferten Echtzeituhr DS1302 etc.) erweitert wurde.

Wer Lust hat, sich an der 6502-Entwicklung zu versuchen (z.B. für Interpreter-Erweiterung auf Farbgrafik), bitte laut "Hier!" rufen. Meine Interpreter-Sourcen sind im Ordner "ehbasic" enthalten und gut kommentiert.

Ich suche noch nach einem Text-Editor für 6502, der zusätzlich im "ROM" untergebracht wird, vielleicht unter Nutzung der 512KByte RAM-Pages als Textspeicher. Der BASIC-Zeileneditor ist ja so ziemlich annoknips.

CORERAM-Layout geht demnächst an Segor, die wissen aber noch nichts von ihrem Glück.

cm

Pacman-Sourcen für ISE ebenfalls online

Verfasst: 24.04.2009, 16:32
von cm
Pacman-Sourcen für ISE sind ebenfalls online!

Oh, hoffentlich habe ich nicht vergessen, die Original-ROMs aus den Sourcen rauszunehmen...

cm

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 24.04.2009, 17:37
von magicroomy
Hurra,
danke für das Engagement....


Gruß
Magic Roomy

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 24.04.2009, 17:45
von Viviatis
Ja, ich bin auch höchst begeistert! Aber eine kleine Frage hätte ich da noch zu Folgendem:
"Kann nicht zusammen mit DACRAM-Karte eingesetzt werden, da sich die I/O-Belegung teilweise überschneidet."
Was bedeutet das jetzt genau:

a.) Ich kann dauerhaft beide Karten im FPGA lassen, darf aber nur eine softwareseitig ansteuern (betreiben).
b.) Ich muss die DACRAM-Karte komplett entfernen, wenn ich mit der CORERAM-Karte arbeiten will.

Ich meine zu erahnen, dass a zutrifft, oder?

Gruss

Frank

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 25.04.2009, 13:45
von cm
Die zweite serielle Core-Schnittstelle benutzt bereits belegte Leitungen. Wenn man die und das SRAM (wäre ja dann doppelt) weglässt, geht's sehr wohl, etwa, wenn man nur PS/2-Tastaturinterface und RTC bestückt. Diese Leitungen waren ja auch vorher frei.

Werde noch näher darauf eingehen.

Achtung: vorhandenes Platinenlayout ist für stehende Steckkarte ausgelegt. Ich will das Ding aber liegend anordnen, damit die zwei Buchsen (PS/2 und serielle) zur Frontplatte weisen und eine kompakte Einheit entsteht. Dafür muss ich die VG-Leiste aber noch "spiegeln". Also besser noch nicht Platinen nach dieser Vorlage ätzen!

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 26.04.2009, 09:35
von magicroomy
Hallo cm,
wäre es möglich die zweite serielle Schnittstelle (MAX232) auf die FPGA Leitungen FP97/FN98 (a9/b9) zu legen. Falls ich mich nicht verguckt habe sollten die ja frei sein?
Dann gibts keine Probleme mit dem Parallelbetrieb DACRAM, CORERAM (ein RAM muß man natürlich weglassen).

Gruß
Magic Roomy

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 26.04.2009, 13:03
von cm
magicroomy hat geschrieben:Hallo cm,
wäre es möglich die zweite serielle Schnittstelle (MAX232) auf die FPGA Leitungen FP97/FN98 (a9/b9) zu legen. Falls ich mich nicht verguckt habe sollten die ja frei sein?
Nein, die sind auf dem FPGA-Modul von den VGA-Buchsen-Farbbits belegt.

Habe sie jetzt auf P99 und P103 gelegt, damit ergibt sich nur noch eine Überschneidung mit dem Clk-Signal des optionalen TxDAC.

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 26.04.2009, 15:42
von Viviatis
Habe sie jetzt auf P99 und P103 gelegt, damit ergibt sich nur noch eine Überschneidung mit dem Clk-Signal des optionalen TxDAC.
Ich habe die DACRAM-Karte in Vollbestückung aufgebaut.

Bedeutet das also, dass ich die CORERAM Karte dann nicht mit der zweiten seriellen Core-Schnittstelle betreiben kann oder die Schnittstelle gar nicht erst bestücken sollte? Oder sollte ich auf den TxDAC verzichten und Ihn in Folge dessen besser ganz von der DACRAM-Karte entfernen?

Wie schon oft angesprochen läuft das FPGA ja ein wenig als "Experimentierplattform", das ist mir klar. Man sollte es aus diesem Grunde sicherlich außerhalb des Lab-Gehäuses betreiben. Trotzdem finde ich persönlich, dass die Möglichkeiten der CORERAM-Karte in Verbindung mit einigen Optionen der DACRAM Karte für mein Lab eine abgerundete Sache ergeben könnten, die ich fix im Gehäuse installieren und natürlich auch mit den entsprechenden Anschlüssen versehen möchte.

Notfalls würde ich auch zwei FPGA-Platinen im Gehäuse integrieren, wenn DACRAM und CORERAM sich im Vollausbau physikalisch nicht parallel auf einem FPGA betreiben lassen würden.

Oder sehe ich das vollkommen falsch und beide Karten könnten in Zukunft im Vollausbau dauerhaft auf dem FPGA verbleiben, und ich müsste sie nur softwaremäßig so ansteuern, dass z.B. TxDAC und die Core-Schnittstelle nicht gleichzeitig angesteuert werden?

Gruß

Frank

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 27.04.2009, 08:56
von magicroomy
Na im Moment sieht es so aus (Wenn ich mich nicht vertan hab):
Sobald die 2. serielle Schnittstelle sendend benutzt wird, wird der TxDAC seine Dateneingänge abfragen und als analogsignal bereitstellen. Je nachdem was also zu diesem Zeitpunkt zufällig auf den Datenleitungen anliegt wird als Spannung erscheinen.
Anders herum: sobald der TxDAC benutzt wird, wird die serielle Schnittstelle evtl. wilde Impulsfolgen rausschreiben mit denen kein Empfänger was anfangen kann.
Man kann aber durchaus beide Karten stecken.

Ne ganz andere Frage. Wozu dient denn der AUX Out auf der DACRAM Karte? Sicherlich kann man damit verschiedene Spannungen erzeugen. Aber wofür ist es gedacht? Braucht man es umbedingt? Evtl. kann man die abklemmen und hat wieder 7 Leitungen des FPGA frei?


Gruß
Magic Roomy

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 27.04.2009, 09:08
von cm
magicroomy hat geschrieben:Noch ne ganz andere Frage. Wozu dient denn der AUX Out auf der DACRAM Karte? Sicherlich kann man damit verschiedene Spannungen erzeugen. Aber wofür ist es gedacht? Evtl. kann man die abklemmen und hat wieder 7 Leitungen des FPGA frei?
Die liegen parallel zu den Farb-Bits und sind bei der Asteroids-Implementation der Sound-Ausgang. Gehen aber auch als FBAS-Signalquelle, wer's braucht...

Wenn man die niederwertigen 2. und 3. Farbbits pro RGB-Farbe nicht benötigt (ct-BASIC nutzt sie nicht), kann man die Leitungen auch andersweitig verwenden. Die zugehörigen "Video-DAC"-Widerstände sollten dann natürlich entfernt werden, ggf. auch die an AUX.

FPGA-Firmware 2.6 und FPGA-Demo online

Verfasst: 28.04.2009, 17:34
von cm
Firmware 2.60b und FPGA-Demo ist fertig (Firmware brennen, Inhalt von FPGA_2.6_demo.zip auf SD-Karte kopieren und BASIC.INI starten). Benötigt DACRAM- oder CORERAM-Karte mit 512 KByte RAM. Zeigt die Möglichkeiten des Basic-Terminals in Verbindung mit LabScript. Viel Spaß.

CORERAM-Platine wird morgen in Auftrag gegeben.

cm

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 29.04.2009, 18:57
von HSiebrecht
Hallo cm,

zwei Fragen hätte ich noch zur CORERAM-Karte ( V#1.5 ).

- C8 und C9 = 22pF ?

- B1 und C10, Alternativbestückung, entweder die Batterie oder Goldcap, beides zusammen
macht ja keinen Sinn oder ? Wie lange ist denn ca. die Stützzeit bei Einsatz des Goldcap
mit 0.22F ?

Vielen Dank im voraus.

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 30.04.2009, 10:22
von magicroomy
Ich hätte da auch noch eine Frage...
Kann man dem Basic im laufenden Betrieb (Cursor blinkt, kein Programm läuft) per Optobus ein anderes Programm unterschieben?
Für die Entwicklung wäre das von Vorteil.
Ich würde meine Programme ungerne mit Tastatur und Bildschirm am FPGA entwickeln. Die Tastatur ist da recht träge und schnell tippen ist nicht ohne Zeichenverlust drin.
Wenn ich aber die Programme am PC entwickle wäre es noch viel nerviger, wenn ich sie dann auf die SD Karte kopieren müsste um sie im Basic laden zu können.

Gruß
Magic Roomy

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 30.04.2009, 12:31
von cm
magicroomy hat geschrieben:Ich hätte da auch noch eine Frage...
Kann man dem Basic im laufenden Betrieb (Cursor blinkt, kein Programm läuft) per Optobus ein anderes Programm unterschieben?
Für die Entwicklung wäre das von Vorteil.
Ich würde meine Programme ungerne mit Tastatur und Bildschirm am FPGA entwickeln. Die Tastatur ist da recht träge und schnell tippen ist nicht ohne Zeichenverlust drin.
Wenn ich aber die Programme am PC entwickle wäre es noch viel nerviger, wenn ich sie dann auf die SD Karte kopieren müsste um sie im Basic laden zu können.

Gruß
Magic Roomy
Ja, das geht auf dreierlei Arten.

Erste Möglichkeit:

Wenn man ein tokenisiertes File hat (Konverter BASIC-Textdatei ->.BAS müsste man aber selbst schreiben, die Tokens sind in basic_cm.asm definiert) mit dem XMR?-Befehl (XModem-Receive), der ein Binärfile an das Autoincrement-Register schickt. Ich nehme dazu das simple, aber Makro-fähige TeraTerm. Das Teraterm-Makro sieht dann so aus:

Code: Alles auswählen

wait '#0:255=0 [OK]'
sendln  'AIS=0'
sendln  'AIR=128'
sendln  'AIW=1'
sendln  'AIM=2048!'                     -- BASIC-Programmspeicher-Start
wait '#0:255=0 [OK]'
sendln  'XMR?'
pause 1
xmodemsend 'h:\ProjFPGA\ct-BASIC\ehbasic\PROGRAMM.BAS' 1
sendln
wait '#0:255=0 [OK]'
XMR? funktioniert natürlich nur, wenn außer dem FPGA-Modul nichts am Optobus hängt. Danach Warmstart ausführen.

Zweite Möglichkeit: Man schickt die BASIC-Textdatei zeichenweise mit "0:67=49" usw. als ASCII-Zahlenwerte (hier eine "1") an das Tastatur-Simulationsregister SubCh 67, mit einer Pause von 50 ms (vielleicht auch weniger) nach jedem CR. Dauert wg. dem immensen Overhead natürlich deutlich länger (Durchsatz so um die 500 Zeichen/Sekunde).

Dritte Möglichkeit: Man schickt eine Datei zum ferngesteuerten Abspeichern auf SD-Karte mit

Code: Alles auswählen

'TSF', // 881 Text Save (append) to File, TSF="<filename>"<CR>
<Textdaten>, Ende mit ETX ($03) = Ctrl-C <CR>
an das Modul, auch hier mit einer Pause von 50 ms (vielleicht auch weniger) nach jedem <CR>, und schickt diese dann mit

Code: Alles auswählen

'TTF', // 800 Type File an SPI, TTF <SPI-Register>="<filename>"


an Register 67. Ist umständlich, sehe ich ein.

Vierte Möglichkeit: Ich baue noch einen Befehl ähnlich TTF ein, der Zeichen nicht aus einer Datei liest und an ein Register (hier natürlich das Tastatur-Simu) schickt, sondern vom OptoBus, so wie sie reinkommen. Vielleicht sollte ich ihn "RTX" oder "TTO" (TeleType from Optobus) nennen. Anwendung dann etwa so:

Code: Alles auswählen

TTO 67?<CR>
<Textdaten beliebiger Länge>, Ende wiederum mit ETX ($03) = Ctrl-C <CR>

oder auch

TTO 67=<Textlänge in Bytes><CR>
<Textdaten bestimmter Länge><CR>

Ich weiß aber noch nicht, wie schnell das gehen kann. Der Interpreter benötigt nach jeder Zeile (<CR>) immer eine kurze Zeit zum Tokenisieren (die erwähnten 50 ms sind vielleicht etwas sehr großzügig, wenn Zeilen lediglich angehängt und nicht umsortiert werden müssen). Mit den knapp 5000 Zeichen/s Input bei 38400 Bd sollte er aber klarkommen, die Tastatur-Simulation ist nicht entprellt...

Vielleicht sollte man sich aber doch lieber ein Befehlszeilen-Tool zum Tokenisieren machen und beim schnellen XMR bleiben. BTW: Der ct-BASIC-Core wird nur resettet, wenn die Memory-Zieladresse (AIM=) oberhalb einschließlich 49152 ($C000) liegt.

Re: BASIC-Steuerrechner (HoC) auf FPGA fertig

Verfasst: 30.04.2009, 12:46
von cm
HSiebrecht hat geschrieben:Hallo cm,

zwei Fragen hätte ich noch zur CORERAM-Karte ( V#1.5 ).

- C8 und C9 = 22pF ?
Kommt auf den 32,768kHz-Quarz an. Entfallen, wenn dessen Bürdekapazität 6 pf beträgt (meistens...). Ansonsten Empfehlung des Quarz-Herstellers minus 6 pf parasitär.
- B1 und C10, Alternativbestückung, entweder die Batterie oder Goldcap, beides zusammen
macht ja keinen Sinn oder ? Wie lange ist denn ca. die Stützzeit bei Einsatz des Goldcap
mit 0.22F ?
Alternativ. Goldcap-Laden wird derzeit noch nicht unterstützt, dazu muss ein Register im DS1302 freigeschaltet werden. Laut Erfahrungen von Segor soll ein 0,22F-Goldcap mind. zwei Wochen halten.