Hallo,
bitte nicht erschlagen, wenn es zu trivial ist aber ich suche folgendes:
BASIC Interpreter mit möglichst C64 ähnlichem Befehlssatz. Natürlich
auch floating Point. Muss in C geschrieben worden sein und als Quelltext
vorliegen, idealerweise C99 oder ähnlich. Ohne komplexe Make Files, ich
kann die in meiner sowieso IDE nicht einbinden.
Interface:
Tja, da scheiden sich noch die Geister. Mein Z80 Bastelbord steuert ein
VT100 Terminal an, (dank mcurses.c von Frank), kann von dort Eingaben
übernehmen, Curso Steuerung und dieses auch ausgeben.
Fangen wir einfach mal an mit einem UART Interface und einem einfachen
Terminalprogramm, was keine Cursorsteuerung braucht. Hatte der C64 auch
nicht im Editor. Glaube da musste man jede Zeile neu schreiben, wenn man
sie ändern wollte? Ganz sicher bin ich mit aber nicht mehr, zu lange
her.
Zielsystem STM32F103, dafür habe ich alles, meinetwegen auch Arduino
Mega.
Kennt da jemand etwas in der Richtung?
Liest sich ganz gut, nur leider kein float und auch sonst keine math
Funktionen und auch wohl keine Ausgabe auf Pins. Ich lese es mir heute
abend mal weiter durch, für einen ersten Wurf sieht es gut aus. Danke!
Christian J. schrieb:> BASIC Interpreter mit möglichst C64 ähnlichem Befehlssatz.
Der C64 ist ein "Basic Interpreter für uC". :-)
"Interpreter" sind aber heutzutage selten geworden.
Meist benutzt man Compiler.
Harald W. schrieb:> Der C64 ist ein "Basic Interpreter für uC". :-)> "Interpreter" sind aber heutzutage selten geworden.> Meist benutzt man Compiler.
Ja.... schön wäre sowas wie der MCS BASIC-52, der damals von Elektor
raus kam für den 51er und in ein 8k EPROM passte. Muss aber Interpreter
sein, anders wäre das Konzept nicht machbar. Uart als Interface,
Terminalprogramm als Sichtgerät. Und möglichst in C, da ich keine
Möglichkeit habe historische Assembler zu benutzen. Viele wurden ja in
asm damals geschrieben.
Hugo H. schrieb:> Youtube-Video "Basic Editor and Interpreter with a STM32F429 Discovery> Board"
Habe ich das Ding, sogar zwei Stück davon. Danke erstmal! Uwe B hatte
mal eine schöne STM32 Homepage, die dann irgendwann weg war.
Ich weiß ehrlich noch nicht mal für welchen Prozessor Du was suchst.
>Mein Z80 Bastelbord steuert ein...>MCS BASIC-52...>Zielsystem STM32F103, dafür habe ich alles, meinetwegen auch> Arduino Mega...
Das sind immerhin 4 verschiedene, untereinander inkompatible Linien,
wovon zwei eine richtig dicke Staubschicht besitzen.
Oder ist es gar für den Eigenbau800L?
Übrigens hast Du auch ein Betriebssystem, so was wie Fenster oder
Pinguin?
Zugegeben die Formulierung von Franko S. ist bestenfalls mittelprächtig,
aber tendenziell hat er nicht ganz unrecht.
Sebastian S. schrieb:> Das sind immerhin 4 verschiedene, untereinander inkompatible Linien,> wovon zwei eine richtig dicke Staubschicht besitzen.
C ist (meistens) für alle Systeme kompilierbar und wenn da eine putchar
und getchar Routine drin sind reicht mir das für die Anpassung an alles,
was ich habe. Sowohl für den Z80 Eigenbau Platinencomputer mit SIO und
passendem "Treiber" (putchar, getchar, geschrieben mit SDCC unter Linux)
als auch die modernen 32 Bit Systeme Arduino und EmBitz IDE. Mehr
braucht es nicht. Das frickel ich mir zusammen. Reines Textsystem, wie
eine Konsole eben.
@Christian
Das letzte Mal, dass ich Alkohol getrunken habe, ist schon etliche
Wochen her! Wenn ich aber lese: "Basic Interpreter für uC" und "C ist
(meistens) für alle Systeme kompilierbar", so scheinen die Nachwirkungen
wohl immer noch präsent zu sein. Oder liegt es etwa an Dir?
Oder anders ausgedrückt:
Zu den 4 inkompatiblen Systemen und dem unbekannten Betriebssystem kommt
noch eine unbekannte Programmiersprache hinzu;-)
Ausserdem hat Elektor nie einen Basic Interpreter rausgebracht.
Der kam von Intel auf einem bestimmten MCS51 Derivat, 80C52 AH BASIC.
Konnt man auch kopieren. Den Code sollteste heute noch im Netz finden.
Wenn der gut ist, dann brauchst du noch einen MCS51 Emulator auf einem
modernen Controller, z.B. STM32. Sollteste auch im Netz finden und so.
Ich schliesse das Thema dann mal, da ich mir den Source von Uwe B
besorgt habe, der auf dem 429er läuft und auf dem Code von Adam Dunkel
basiert. Mal gucken, was da für ein Unterbau für das Display drin ist,
ich habe da einiges mit gemacht damals.
Sebastian: Ich spreche doch hoffentlich kein Spanisch, oder? Um einen
Basic Interpreter zum Laufen zu kriegen bedarf es nur einer CPU mit RAM
und einer Uart zum "Datensichtgerät". Mehr nicht! Keine Pins, keine
Knöpfe, keine Displays, kein I2C usw. Mehr war der C64 auch nicht
damals.
Hier isser, das reicht mir vollkommen aus! Den Code nur überflogen aber
da sind überall Platzhalter für Ausgabe und Eingabe von Code, hauptsache
er steht nachher im internen RAM drin. Das stricke ich mir auch für den
Z80 zurecht.
Vielleicht wäre dieses Open Source PRoject von Interesse:
http://geoffg.net/maximite.html
Es existieren angeblich auch von dritter Seite Ports auf STM32,
Der Source Code ist auf Anfrage erhältlich und in C geschrieben.
Mit diesem Grundgerüst könnte man etwas hinsichtlich C64 Befehlssatz
machen.
Christoph db1uq K. schrieb:> aber ob die schon float kennen?
Naja, wenn Basic 52 diese Funktionen hat laut des manuals, dann wird der
es haben. Das ist schon sehr mächtig!
INT() SGN() SQR() RND LOG() EXP() SIN() COS() TAN() ATN()
Und den hier habe ich noch gefunden
https://tbspace.de/rc2014-z80-computer.html
Der RC2014 macht was her, Z80, nettes Baukasten system und Basic ist
fertig drin im EPROM. Microsoft Basic von Annodazumal....
RC2014 Beispiele... natürlich auch mit CREAL Datenytp, Heap Speicher usw
https://github.com/RC2014Z80/RC2014-BASIC-Programs
Ich bestelle mir den! Spass am Basteln und echt ausgereift!
Nix SD! Floppy Laufwerk auf einer Compact Flash Karte! Aber nur unter
CP/M lauffähig.
Sebastian schrieb:> Gerade entdeckt, es gibt noch ein Neues:> https://sites.google.com/site/annexwifi/home
Wenn ich mir anschaue was der kann und schon an Treibern mitbringt, dann
bröselt das Retro-Feeling in sich zusammen, was bei BASIC aufkommt.
Siehe auch hier: http://www.esp8266basic.com/
Programmierung über einen einfachen Web-Server, der vom 8266 aufgezogen
wird.
Inzwischen bin ich vom STM32 schon wieder bei Z80 und dazwischen lag mal
der 80C51.... jetzt den ESP8266, den ich bisher nur mit dem Arduino IDE
bespielte und der meine Wettervorhersagen macht auf einem LED Board.
Muss mal drüber schlafen..... es ist ja nur Hobby und Spass am Machen.
Anbei auch noch mein potentielles Zielsystem, sofern ich da nach 4
Jahren Pause noch durchblicke.... Programmieren und Uploaden nur unter
Linux und Eprom Brennen nur unter Windows, also zweiten Rechner aus dem
Keller holen.
Christian J. schrieb:> BASIC Interpreter mit möglichst C64 ähnlichem Befehlssatz. Natürlich> auch floating Point.Christian J. schrieb:> Hier isser, das reicht mir vollkommen aus!
Fließkomma? Fehlanzeige!
Christian J. schrieb:> Inzwischen bin ich vom STM32 schon wieder bei Z80 und dazwischen lag mal> der 80C51.... jetzt den ESP8266,
Ich glaube, Du weißt nicht, was Du willst.
Mir ist auch nicht ganz klar was der Threadstarter wirklich will.
Der Klassiker für kleine BASICs ist Tiny BASIC
https://en.wikipedia.org/wiki/Tiny_BASIC. Im Laufe der letzten 45 Jahre
sind auch mehrfach Versionen mit Floating-Point entstanden.
Marten Morten schrieb:> Mir ist auch nicht ganz klar was der Threadstarter wirklich will.
Unter den vielen Möglichkeiten hier, die vorgestellt wurden eine schöne
heraus suchen! Und dann bauen....
Christian J. schrieb:> C ist (meistens) für alle Systeme kompilierbar und wenn da eine putchar> und getchar Routine drin sind reicht mir das für die Anpassung an alles,> was ich habe.
Die Tatsache, dass C für ein System kompilierbar ist, bedeutet noch
nicht zwingend, dass das kompilierte Programm auch auf dem jeweiligen
Zielsystem funktioniert. Viele Interpreter und "Semicompiler" bilden
Sprachelemente auf Sprungtabellen und selbstmodifizierenden Code ab.
Andreas S. schrieb:> Viele Interpreter und "Semicompiler" bilden> Sprachelemente auf Sprungtabellen und selbstmodifizierenden Code ab.
Ich habe gestern abend noch den Uwe B. Basic Interpreter auf dem F429
Demo Board zum Laufen gekriegt, was out of the Box funktionierte. Das
strippe ich jetzt runter für das "Blue Pill Board". Die Demo Boards vom
F429 werden leider auch immer teurer, meine habe ich mal für 25 Euro
gekriegt.
Darüber hinaus habe ich den RC2014 bestellt, da mir das Projekt gut
gefällt und auch erweiterbar ist.
Sebastian schrieb:> Gerade entdeckt, es gibt noch ein Neues:> https://sites.google.com/site/annexwifi/home
Habe heute mal etwas intensiver da rein geschaut. Wer wirklich etwas
Modernes machen will ist da genau richtig. Auch wenn das Projekt wohl
erst 170 Tage läuft, wie der Zähler wohl angibt und die Release
Versionen, nichts unter 2019.
Das BASIC ist um dermaßen viele Extensions erweitert worden, dass wohl
alles abgedeckt ist, was man braucht um eine grafische Oberfläche zu
haben und einen ESP, der irgendwas da anzeigt und nebenbei etwas misst
oder regelt. Alles über Wifi an den PC, der wohl mit einem Wlan Stick
ausgerüstet sein muss, damit er sich mit dem AP verbinden kann. (Ob das
mit der Fritz Box geht weiss ich nicht)
Nachteil: Der User muss sich mit HTML, CSS Styles und Javascript befasse
- und zwar mit der Erzeugung von skalierbaren grafischen Objekten - ich
habe dazu nie einen Dreh gefunden, hat mich aber auch nie interessiert.
Und das per Trial & Error, jeder Syntax Fehler, jedes Zurechtrücken usw
wird erst nach dem Hochladen aufgedeckt, korrigiert, neu hochgeladen
usw. Und das kann dauern....
Die Beispiele sind schon heftig teilweise im Browser Tachos und
Anzeigetafeln dar zu stellen. Wer sich nie mit Webdesign befasst hat
wird da schnell den Frust bekommen.
Wirklich viel habe ich darüber nicht finden können. Die breite Akzeptanz
scheint noch nicht da zu sein. Da scheinen einige Profis alles was geht
zu implementieren aber nicht nach hinten zu blicken, ob ihnen auch die
Anwender folgen. Das Forum wird leider eher spärlich besucht.
Erinnert mich an UDOO und Cubie, wofür ich mal viel Geld ausgab. Sind
senkrecht hoch gestartet aber nie wirklich in der Luft geblieben. Das
Cubie Forum war schon 2016 völlig verwaist und seit 2017 ist das Ding
auch tot.
Wenn du tatsächlich ein rein terminalbasiertes BASIC haben möchtest,
dann schaue dir mal MMBasic [1] an. Den Code [2] gibt es in Standard
ANSI C.
[1] http://mmbasic.com/
[2] http://mmbasic.com/source.html
Joe G. schrieb:> Wenn du tatsächlich ein rein terminalbasiertes BASIC haben möchtest,> dann schaue dir mal MMBasic [1] an. Den Code [2] gibt es in Standard> ANSI C.
Hallo Joe,
es ist Hobby, eine Anwendung steckt nicht dahinter. Das schaut gut aus,
dieser Graham Geoff hat schon einiges klasse Sachen gemacht aber alles
für PIC-32. Eine vorkompilierte Version für den STM32 muss ich mal
suchen, oder es eben selbst kompilieren. Habe nur eine Embitz IDE, was
da nicht reingeht kann ich auch nicht umsetzen.
Mir stellt sich das so dar, dass man entweder auf Retro geht, mit allen
Beschränkungen 51er oder Z80 Systeme zum laufen zu kriegen. Ich wüsste
ja nicht mal wie ich heute noch den A51 Assembler zum laufen kriegen
sollte unter DOS. Oder man geht auf die modernen Sachen, wie eben den
ESP8266 oder was Du da gezeigt hast.
Christian J. schrieb:> Das schaut gut aus,> dieser Graham Geoff hat schon einiges klasse Sachen gemacht aber alles> für PIC-32.
Anstatt 8051, 6502 oder Z80 nimmst Du dann halt einen PIC32.
Oder hole die c-Dateien und baue sie auf STM32 um. Ich hatte das mal vor
einiger Zeit gemacht:
Beitrag "Re: PIC 32 schneller Basic Interpreter"
Schon damals war die Ausführungsgeschwindigkeit sehr hoch. Mit heutigen
STM32H7xx Controllern kann man die double-Rechnerei per Hardware
erledigen, was noch einmal deutlich schneller sein wird.
Nachteil bei der Geschichte ist, daß Du den Quellcode nicht weitergeben
darfst, sofern sich dies nicht zwischenzeitlich geändert hat.
m.n. schrieb:> Nachteil bei der Geschichte ist, daß Du den Quellcode nicht weitergeben> darfst, sofern sich dies nicht zwischenzeitlich geändert hat.
Der Source Code kam gar nicht erst an..... habe den angefragt gestern
mittag. Naja, warten wir mal.....
Joe G. schrieb:> Wenn du tatsächlich ein rein terminalbasiertes BASIC haben möchtest,> dann schaue dir mal MMBasic [1] an. Den Code [2] gibt es in Standard> ANSI C.
Hast du den Code vielleicht? Da reagiert niemand auf meine Anfrage....
"If you do not receive the email within 48 hours please check your spam
directory and if you do not find it there contact Geoff at geoff (at)
mmbasic.com with your details and request assistance."
Christian J. schrieb:> Joe G. schrieb:>> Wenn du tatsächlich ein rein terminalbasiertes BASIC haben möchtest,>> dann schaue dir mal MMBasic [1] an. Den Code [2] gibt es in Standard>> ANSI C.>> Hast du den Code vielleicht? Da reagiert niemand auf meine Anfrage....
Vor ein paar Jahren überließ Geoff mir den Projekt Code weil ich das
Projekt auf STM32 portieren wollte. Er schickte mir damals die Sourcen
Übernacht.
Gerhard O. schrieb:> Vor ein paar Jahren überließ Geoff mir den Projekt Code weil ich das> Projekt auf STM32 portieren wollte
Und hast du es protiert? Ich hatte ja genau das vor, auch wenn ich den
CCS Compiler für PIC32 habe. Jahrelang Microchip gemacht, dann
umgestiegen.
Christian J. schrieb:> Gerhard O. schrieb:>> Vor ein paar Jahren überließ Geoff mir den Projekt Code weil ich das>> Projekt auf STM32 portieren wollte>> Und hast du es protiert? Ich hatte ja genau das vor, auch wenn ich den> CCS Compiler für PIC32 habe. Jahrelang Microchip gemacht, dann> umgestiegen.
Leider nicht. Damals mußte ich mich bald ein paar Jahre um meine Mutter
kümmern und da verloren sich die Hobby Ambitionen.
Wußte gar nicht, daß CCS MIPS unterstützt. Ich verwendete früher den CCS
in der Firma auch für 8/16-bit CPUs. Dann stiegen wir auf NXP und ST
32-bit um. Und jetzt wird nur noch alles mit 32-bit gemacht. Die PICs
machten allerdings schon Spaß.
Ob ich wieder Interesse an STM32 MMBasic haben werde, kann ich im
Augenblick nicht ermessen. Es sind zu viele andere mitstreitende Themen
aktuell. Ich kaufte damals seine MMBasic Bord und es funktionierte sehr
schön. Aber ich verwendete es allerdings nie für irgendwelche Aufgaben.
UC in C programmieren liegt mir dann doch mehr. Mit Arduino Nano und
Pro-Minis lassen sich viele kleinere Projekte schmerzlos durchziehen.
Früher mußte ich mir für jedes Projekt eine PIC oder AVR Lp stricken.
Vielleicht wurde ich auch nur ein bischen bequemer:-)
Christian J. schrieb:> ... und auch wohl keine Ausgabe auf Pins.
Und wozu sind wohl die folgenden Basic Befehle definiert?
Commands
PIN - to control the pin output signal (0, 1) or make it input (-1)
POKE - to put data byte into memory address (register, or io-port)
Function
PIN - read logical signal (0, 1) from the given pin
PEEK - read byte from given memory address (register, or io-port)
Christian J. schrieb:> BASIC Interpreter
Das Sonderheft "Make ESP 32 special" von Heise behauptet, dass der ESP32
ab Werk einen Basicinterpreter hat. Beim ersten Programmupload wird
dieser aber zerstört.
Sowohl das von heise mitgelieferte Joy-it-Board als auch meine
China-Developer-Boards erlauben leider keinen Zugriff mehr, da ist ab
Werk schon irgendwas anderes drauf :-(
In der Sonderheft-Make gibt es einen Link "make-magazin.de/xe5f", von
dem einer zu Github führt: https://github.com/BleuLlama/TinyBasicPlus
Ob das hilft - ich brauche es nicht.
Manfred schrieb:> Das Sonderheft "Make ESP 32 special" von Heise behauptet, dass der ESP32> ab Werk einen Basicinterpreter hat.
Es gibt auch ein super komfortables Basic dafür.... perfekt für
Interaktion mit einem PC.
Ich warte aber immer noch auf meinen Z80 Zeta V2 Bausatz....
Gibt es C-Control von Conrad noch? Das war jedenfalls immer Basic. Wird
unter Windows programmiert und dann als Bytecode an den µC übertragen.
Basis war meine ich ein HCS08.
C-Control gibt es wohl noch, vor Jahren hatte ich mal Sourcen von beiden
teilen gehabt.
Aber ich fürchte das waren keine Original Quellen.
Der Rechner ist ohne Backup platt, sonst könnte ich nachsehen.
Manfred schrieb:> Das Sonderheft "Make ESP 32 special" von Heise behauptet, dass der ESP32> ab Werk einen Basicinterpreter hat. Beim ersten Programmupload wird> dieser aber zerstört.
Hier ist das Super-duper-Basic mit Rundum Vollversorgung für den ESP8266
http://www.esp8266basic.com/
Reference:
https://docs.google.com/document/d/1EiYugfu12X2_pmfmu2O19CcLX0ALgLM4r2YxKYyJon8/pub
Leider ohne die klassischen Zeilennummern :-( Und als Editor kann man
nur den Browser verwenden, weil der vom ESP über wlan bedient wird.
Naja, gab ja auch sehr viele Raspberry Klones, Banana Pi, UDOO,
BeagleBoard usw. Letztlich sind die alle tot bis auf das Original.