Forum: Mikrocontroller und Digitale Elektronik Basic Interpreter für avr


von Tassilo (Gast)


Lesenswert?

Hallo

Ich wollte nur mal fragen ob es einen Basic Interpreter für die avr's
gibt ?

gruss

Tassilo

von Ralf Kellerbauer (Gast)


Lesenswert?

Praktisch nicht.

Es gibt ATTO-Basic /TinyBasic Variante, aber mangels genügend RAM beim
AVR ist da nicht viel sinnvolles programmierbar.

s. http://cappels.org/dproj/AB/atb.htm
s. http://cappels.org/dproj/ab163/163bbu.htm


Die klassischen Basic-Versionen aus der 8 Bit / DOS Zeit sind für heute
Programmier-Stile einfach zu karg oder konfus (s. Zeilennummern).Moderne
Basic-Versionen hingegen kommen ohne viel RAM nicht aus, was zudem für
ein stand-alone Gerät eh für den Programmtext/ Editor nötig wäre.

Basic-Compiler mit PC-Unterstützung haben es da viel leicher.
Zudem haben diese (z.B. Bascom / 8k Freeware erhältlich) noch einen
Simulator, was das Debugging stark vereinfacht.

Der Wunsch nach einem Interpreter ist nicht neu, aber die Liste an
Problemen für ein praxistaugliches Design ist schon groß.
Vielleicht wird das Thema BASIC-Interpreter aber wieder interessant im
Zusammenhang mit den ARM-CPUs, denn mit 16-64k Byte RAM auf dem Chip
ist ein Editor und ein stand-alone System wieder denkbar.
Wobei da sogar ein Compiler onchip denkbar wäre (z.B. als 1-Pass wie
damals bei Turbo-Pascal 2-3), vielleicht als Byte/Word-Code
Zwischencode Interpreter, der dann interessante Performance hätte.

von neuer (Gast)


Lesenswert?

es wäre so viel denkbar, wenn es das wörtchen wär nicht gebe.

neuer

von Dirk (Gast)


Lesenswert?

bascom ist auch einn Basiccompiler von www.mcselec.com für AVR.
demo kann bis 4Kbyte Daten herstellen für den AVR.

von Tassilo (Gast)


Lesenswert?

Danke Ralf für deine umfassende Antwort.
So etwas in der Art dachte ich mir fast schon (zu wenig RAM).
Auf die Idee mit den ARM's bin ich nicht gekommen ich werd da mal
suchen.
Sieht so aus als ob mir nur der 8051 bleiben wird, dafür hab ich schon
mal einen Basic Interpreter gesehen, nur hatte noch nie was mit dieser
Familie gemacht.

Danke

Tassilo

von MArko (Gast)


Lesenswert?

wozu denn n interpreter,
die Logik will mir nicht so recht rein.

Wofür brauchste das?

von Tassilo (Gast)


Lesenswert?

Hi

Damit man sich ne art "Homecomputer" basteln kann.
Kennst du noch den c64 oder den cpc von amstrad/schneider?
Einfach an ein VT520 (von denen hab ich noch einige) und ich dürfte nen
netten "Computer" haben. Ok massenspeicher etc iss noch Problem aber
ich denke man kann zumindest da auf i2c zurückgreifen.
Einen praktischen Nützen hat das nat. nicht, aber ich würde mir einen
lang gehegten Kindheitstraum erfüllen.

Gruss

Tassilo

von Hans (Gast)


Lesenswert?

dann lieber nen arm... man will ja was vernünftiges.. und am arm kannst
dir gleich uclinux drauftun mit busybox und schon hast das terminal
komplett :D

73

von Tassilo (Gast)


Lesenswert?

Hi Hans

nee.. sowas sollte eher notlösung sein. Ich suche nach was schönen
8-bittigen das mich noch an "damals" erinnert. Ein ARM war ja damals
ein "Supercomputer" in a chip G

gruss

Tassilo

von MArko (Gast)


Lesenswert?

jaja, die gute alte Brotkiste,
klar kenn ich den noch bzw. ich hab damals
noch aufm C16 und dann +4 und erst
ganz zuletzt aufm 64er gewerkelt
BASIC 2.0 ... so ein Mist, wär ich
doch beim C16 Basic 3.5 geblieben
wie war das noch mal ... 32K als
Basicspeicher frei?

von Hannes L. (hannes)


Lesenswert?

Sowas ist mit dem AVR aufgrund seiner Harvard-Architektur nicht möglich.
Da brauchst du V.Neumann-Architektur...

@Marko:
Ja, das waren noch Zeiten. Ich bin dem Plus/4 aber treu geblieben, das
war BASIC 3.5 und das hatte um die 60KB frei.

...

von thkais (Gast)


Lesenswert?

Prinzipiell ist das auch mit dem AVR möglich: Externen Speicher an die
SPI-Schnittstelle und dann per PreFetch die nächsten Befehle aus dem
Speicher herausholen, während die aktuellen abgearbeitet werden. Wenn
dann noch eine Wahrscheinlichkeitsvorhersage für die Verzweigungen
drinnen ist... Wenn man im RAM einen entsprechend großen Buffer
einrichtet, könnten sogar Schleifen komplett im RAM gehalten werden,
andere Programmteile werden bei Bedarf nachgeladen.
So etwas juckt mir schon lange in der Nase.

von Hannes L. (hannes)


Lesenswert?

Ja, schon...

Aber kompatibel wir's kaum werden, denn reine BASIC-Programme gab es
ja nicht allzuviele, meist war es eine Mischung aus BASIC und
ASM-Routinen, zumindest beim Plus/4. Und die Ansteuerung des TV mit 121
Farben dürfte auch "etwas schwierig" werden.

Platinen vom Plus/4 hätte ich ja noch einige da, wenn da jemand
Interesse hat? Aber mit TED und CPU sieht es ziemlich dünne aus.

Aber inzwischen gibt es doch einige Emulatoren für den PC.

Ich nutze meinen Umbau-Plussi inzwischen auch immer seltener.
Gelegentlich brenne ich damit noch EPROMs.

...

von Andreas Jakob (Gast)


Lesenswert?

Die Idee eines kleinen Retro-Homecomputers mit
möglichst wenig bauteilen schwirrt mir auch schon
lange im Kopf rum :-)
Muss ja nicht unbedingt Sinn machen sowas heutzutage
zu bauen, aber es wär schon faszinierend :-)

TV-Ausgang und Anschluss für ne PC-Tastatur und ein kleiner
Basic Interpreter drauf :-)

Der ZX-81 damals (meine erster Computer :-) hatte das alles und
nichtmal einen Grafikchip, alles in Software. Okay beim betätigen einer
Taste wurde eben kurz der Bildschirm schwarz, lol.
Aber wenn ein 4 MHz Z80 mit 1 (eins) KB RAM das konnte, müsste ein AVR
das doch auch schaffen können :-)

http://www.zock.com/8-Bit/D_ZX81.HTML

von klaus (Gast)


Lesenswert?


von Andreas Jakob (Gast)


Lesenswert?

Ja, so ähnlich, nur minimalistischer :-)
Im DTV ist auch ein Atmel Chip am werkeln, allerdings
kein AVR sondern ein ASIC.
Die Enwicklerin hat das ganze glaub ich in einem FPGA
realisiert.

http://home.wanadoo.nl/richard.lagendijk/Pagina/INFO-DTV-GB.htm

von Tassilo (Gast)


Lesenswert?

@Marco

Weis nicht wie es beim c64 war, ich hatte damals einen cpc (und der
hatte noch ca 32k frei von den 64)

@Klaus

Ja sowas in der Art. Aber doch Aufgebaut in einer Weise die ich noch
verstehe :) Es gibt ja sachen wie den c-one und dafür imho auch einen
"cpc-core" aber das ist mir zu komplex

Ich möchte eher nur einen kleinen Basic Rechner haben der sachen wie
10 print "hallo welt"
20 goto 10
macht... ok ein paar spielchen währen nicht schlecht, aber das würde
imho scho wieder den Rahmen sprengen.

Ich hab schon mal über diese sachen nachgedacht. Das www.tvterminal.de
(soweit ich weis gabs das auch mal hier im forum was drüber) würde auch
zum "look&feel" der alten zeit beitragen, da man ihn an den tv
anschliesen kann...

Gruss

Tassilo

von thkais (Gast)


Lesenswert?

@tassilo: Dann ist der MCS-51 Basic-Interpreter genau das Richtige für
Dich. Der ist zwar saulangsam (weil alle Variablen als float
definiert sind), aber sehr schnell aufgebaut.

von Tassilo (Gast)


Lesenswert?

hallo

@thkais
ok dann werd ich das mal versuchen.

dann werd ich mich erst mal mit dem 8051 anfreunden mussen..
hoffentlich find ich ein gutes howto. dessen bin ich mir aber fast
sicher bei der verbreitung von dem teil

danke nochmals

Tassilo

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Einen völlig anderen Ansatz gibt es hier:

http://members.fortunecity.de/bodo4all/zx/jupiter.htm

Das ist ein kleiner 8-Bit-Rechner aus der Zeit der ZX81 und Commodore
VC16, ist aber im Gegensatz dazu aus Standardbausteinen aufgebaut, was
den Nachbau deutlich vereinfacht.

Diesen Rechner mit Z80 und 3 kByte RAM (von denen bei laufendem
"Betriebssystem" noch sagenhafte 956 Byte für eigene Programme übrig
blieben) unterscheidet auch dessen im ROM untergebrachter Interpreter
von seinen Zeitgenossen - nämlich nicht Basic, sondern Forth.

Auf der genannten Seite ist sogar ein disassembliertes und
deutschsprachig kommentiertes ROM-Listing zu finden.

von karlheinz (Gast)


Lesenswert?

....Der ZX-81 damals (meine erster Computer :-) hatte das alles und
nichtmal einen Grafikchip, alles in Software. Okay beim betätigen
einer
Taste wurde eben kurz der Bildschirm schwarz, lol....

das stimmt nicht , ich habe noch einen zx-81. läuft wunderbar.
habe als bandgerät ein winziges diktiergerät anschlossen,12x5x2cm.
tolle sache. das bild stelle ich mit wintv auf dem pc dar.

mfg karlheinz

von Andreas Jakob (Gast)


Lesenswert?

Hmm, war das beim ZX80 ?
Den hatte ich auch mal und Ärger mich immer wieder
das der verloren gegangen ist. Wird bei Ebay als absolute
Rarität für mehrere hundert Euro gehandelt :-(
@rufus
Ja, es gibt einige solcher Projekte.
Aber fast alles in klassischer Technik mit TTL Grab aussenrum oder
CPLD.
Komplett alles in einem oder zwei Microcontrollern mit fast keiner
Peripherie wäre das was ich gern sehen würde :-)
Ein Microcontroller für Grafik und I/O und einer fürs Basic, müsste
ohne weiteres machbar sein. Alles in einem unterzubringen wär das
nonplusultra.
Dann noch den neuen Ethernetcontroller von Microchip dran .... :-)

von Andreas Jakob (Gast)


Lesenswert?

Es gibt nichts, was es nicht schon gibt :-)
Hab ein entsprechendes Projekt gefunden :

http://www.kmit.sk/~peto/AVR/smallpmd/index.php

8088 Emulator im AVR inkl TV Out und ein Basic gibts
auch dafür.

von Tassilo (Gast)


Lesenswert?

@Andreas Jakob

Wirklich nett, wirklich nett...

Das sollte man mal ausprobieren...

gruss

Tassilo

von Andreas W. (Gast)


Lesenswert?

Ein freier C-Control Clone auf ATmega32/128 Basis:

http://www.nettypes.de/mbasic

http://www.nettypes.de/b-control

von Christoph Kessler (Gast)


Lesenswert?

also ich lese da 8080 nicht 8088 (8088 war die erste DOS-kompatible
CPU)


Ich hatte mal eine 8080-Emulator aus der Funkschau abgetippt, der wurde
auf dem 6502 emuliert. Leider hatte der Autor beim Unterprogrammaufruf
die falsche Rücksprungadresse auf den Stack geschrieben, nach dem
Fehler hab ich eine Weile gesucht. Ich hatte irgendein 8080-Programm
und wollte es auf dem AIM65 laufen lassen, ging aber nicht. Der 6502
incrementiert erst nach dem Rücksprung und 8080 schon beim Ablegen,das
war falsch implementiert.

von Christoph Kessler (Gast)


Lesenswert?

Ach ja der 8080-Programmierer hatte die seltsame Idee anstelle eines
gewöhnlichen "Jump"-Befehls die Sprungadresse auf den Stack zu
schreiben und dann einen "Return from Subroutine" auszuführen - sehr
kreativ...

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
Noch kein Account? Hier anmelden.