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?
Beitrag #5974166 wurde von einem Moderator gelöscht.
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!
Beitrag #5974169 wurde von einem Moderator gelöscht.
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.
https://www.youtube.com/watch?v=pv2NzQFL3F4 (Fortsetzung von hier: Beitrag "Basic Editor und Interpreter auf dem STM32F429-Disco" )
:
Bearbeitet durch User
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;-)
:
Bearbeitet durch User
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.
1 | //----------------------------------------------------------------------
|
2 | // Beispiel Basic-Program
|
3 | //----------------------------------------------------------------------
|
4 | static const char basic_prg[] = |
5 | "10 print \"Hello STM32F429 Discovery\"\n\ |
6 | 20 gosub 100\n\ |
7 | 30 for i = 1 to 10\n\ |
8 | 40 print i\n\ |
9 | 50 next i\n\ |
10 | 60 print \"end\"\n\ |
11 | 70 end\n\ |
12 | 100 print \"subroutine\"\n\ |
13 | 110 return\n"; |
14 | static uint32_t BASIC_ROM_SIZE = sizeof(basic_prg); |
15 | }
|
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.
am weitesten verbreitete scheint mir BASCOM zu sein https://de.wikipedia.org/wiki/BASCOM und das alte 8052-Basic habe ich auch mal kurz ausprobiert http://b-kainka.de/mikrocontroller.htm -> BASIC-52 aber ob die schon float kennen?
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....
Keine blöde Idee! So könnte man sogar eine SD-Karte nehmen und dort die Bas-Files ablegen. Damit hat man auch keine Flash-Grenze.
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.
Christian J. schrieb: > Zielsystem STM32F103, Christian J. schrieb: > Aber nur unter > CP/M lauffähig. Christian J. schrieb: > Der RC2014 macht was her, Z80, nettes Baukasten system und Basic ist > fertig drin im EPROM. Noch Fragen?
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
:
Bearbeitet durch User
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.
Wenn du den Z80 ohne CP/M mit BASIC befeuern möchtest, Leo C. hatte mal ein IMSAMI Basic [1] für den Z180 angepaßt. [1] Beitrag "Re: Z180-Stamp Modul"
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: > Hast du den Code vielleicht? Da reagiert niemand auf meine Anfrage.... Nein, habe ich leider nicht.
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:-)
:
Bearbeitet durch User
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)
Einen "MOS6502 Emulator in C++" https://github.com/gianlucag/mos6502 .. mit einem "6502_EhBASIC_V2.22" https://github.com/Klaus2m5/6502_EhBASIC_V2.22 betreiben. Das Zahlenformat ist recht gut. http://www.crbond.com/calc65.htm
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.
Ein fertiges Projekt mit Tastatur: 2018-Supercon-Badge https://github.com/Hack-a-Day/2018-Supercon-Badge
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.