FemtoBasic überarbeitet

Fragen zu Programmiersprachen und Software für den Hive und die Propellerchips
Benutzeravatar
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

FemtoBasic überarbeitet

Beitrag von zille9 »

Hallo Hive-Gemeinde
Habe mich als alter Basic-Liebhaber etwas mit FemtoBasic auseinandergesetzt. Mir ist es gelungen diverse Fehler zu beheben und es wurden 28 neue Befehle eingearbeitet. Es ist sicher noch um einiges von einer stabilen Version entfernt aber als Anfang sollte es schon brauchbar sein. Es würde mir weiterhelfen, wenn der eine oder andere als Tester fungieren könnte. Im folgenden nun die Änderungen: -LOAD,SAVE funktionieren jetzt richtig
-RENAME-Befehl integriert und in REN umbenannt ->REN"Dateialt.xxx","Dateineu.xxx"
-Befehl FILES wurde in DIR umbenannt (hab mich ständig vertippt, weil ich dir gewohnt war)
-Befehl DELETE in DEL umbenannt (man muss schon soviel tippen, da können die Befehle ruhig etwas kürzer sein)
-Befehl CLEAR für löschen aller Variablen
-Befehl BYE beendet von Femto-Basic (macht natürlich nur Sinn wenn Basic von einem Hostprogramm aufgerufen wurde)
-COLOR 0-7 setzt eine von acht möglichen Zeichenfarben
-CLS Bildschirm loeschen cursor oberste Zeile Pos1
-HOME Cursor auf oberste Zeile Pos1 Bildschirm bleibt erhalten
-LOCATE x,y Cursor an Pos x,y setzen
-GETX Cursorposition x abfragen ->print getx
-GETY Cursorposition y abfragen ->print gety
-SCROLL Scrollbereich y1,y2 setzen -> Scroll y1,y2
-SCRDOWN n-Zeilen runterscrollen -> Scrdown n
-SCRUP n-Zeilen hochscrollen -> Scrup n
-CUROFF Cursor ausschalten
-CURON Cursor einschalten
-SETSEC Sekunde setzen ->Setsec n
-SETMIN Minute setzen ->Setmin n
-SETHOUR Stunde setzen ->Sethour n
-SETDAY Tag setzen ->Setday n
-SETMONTH Monat setzen ->Setmonth n
-SETYEAR Jahr setzen ->Setyear n
-GETSEC Sekunde abfragen ->print getsec
-GETMIN Minute abfragen
-GETHOUR Stunde abfragen
-GETDAY Tag abfragen
-GETMONTH Monat abfragen
-GETYEAR Jahr abfragen
-GETDOW Tag der Woche abfragen
-SETDOW Tag der Woche setzen ->Setdow(n) n 1...7
Letztlich handelt es sich lediglich um Aufrufe aus der reg-ios, die eigentliche Arbeit hat also Drone235 :ugeek: geleistet (ziehe meinen Hut vor Deiner Leistung).
WICHTIGER HINWEIS: Zum kompilieren muss entweder die von mir gekürzte reg-ios benutzt werden oder die reg-ios aus dem TriOS-release r48 vom 27.11.2011
sonst meckert der Compiler, das zuviele Longs verplempert wurden.
Viel Spaß beim testen
Dateianhänge
femto-basic-09-10-2012-kr.rar
(45.53 KiB) 775-mal heruntergeladen
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: FemtoBasic überarbeitet

Beitrag von drohne235 »

Coole Geschichte! Ich glaube laserjones Gebete wurden erhört... :twisted:

http://hive-project.de/board/viewtopic. ... welcome+to

Hast du das Basic schon mit einem längeres Programm getestet? Werden die korrekt geladen und gespeichert?

Habe es gerade angetestet und auch ohne Probleme mit R50 und der normalen IOS compilieren können. Ich vermute, du hast im BST die Optimierungen ausgeschaltet, da meine BIN-Datei auch kleiner ist (trotz R50). Probiere doch mal bei dir, ich habe alle Optimierungen angeschaltet.

Was für Befehle würden für den Hive Sinn machen? Sound, Grafik?
Vielleicht könnten ja auch noch Befehle ausgefügt werden, die keinen Sinn machen. Zum Beispiel die I/O-Befehle machen keinen Sinn, da wir ja mit Regnatix keine Roboter, sondern nur die Slaves steueren wollen. So könnten wir den Speicher entlasten um Sound und Grafikbefehle zu integrieren.

Die Version ist auch ziemlich alt und ich habe damals den Quelltext nur überflogen um ihn überhaupt startbar zu machen.

Irgendwie hab ich grad auch nicht richtig verstanden, wo genau im Speicher das Basic seine Token ablegt. Ist die Berechnung der Adressen und der Programmspeichergröße korrekt?
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

Re: FemtoBasic überarbeitet

Beitrag von zille9 »

Wo die Token landen hab ich auch noch nicht herausgefunden. Bin ich aber bei. Grafik und soundbefehle sind in Planung. Dank der guten reg-ios sollte das relativ einfach sein zumindest was Sound angeht. Mit den Grafikmodi muss ich mich noch auf den Hosenboden setzen und testen. Unsinnige Befehle werden rausgeschmissen. Besteht eigentlich eine möglichkeit den H-Ram zu nutzen? Bin gerade bei peek und poke Befehlen aber irgendwie peekt er mir Speicherstellen, die ich nicht nachvollziehen kann. Mach warscheinlich noch was falsch.
Habe auch schon Programme über die magischen zehn Zeilen eingegeben, die auch liefen.Alleding waren das nur ganz simple Sachen mir den neuen Befehlen, Schleifendurchläufe und Speicherdumps.
Die Speichergröße wird nicht wirklich richtig angezeigt, da die Berechnungsgrundlage für die Speicheranzeige in den Variablenfestlegungen eingetragen ist und daher jeden Wert haben kann.
Wenn ich ein Speicherdump von allem (mit Variablenspeicher) habe lässt sich das auf realistische Angaben bringen. Aber das wird schon. Langsam steig ich auch hinter den Code vom Grundgerüst, damit lässt sich schon was anfangen. Durch die jetzt funktionierenden Dateifunktionen, ist zumindest erstmal die Möglichkeit da, den eigegebenen Code zu sichern und nicht jedesmal bei null anzufangen. Ein Basic, indem man seine Werke nicht sichern kann ist absolut unbrauchbar (zumindest in meinen Augen).
Den Tip mit den Compilereinstellungen werd ich gleich mal überprüfen, an die hab ich ja noch gar nicht gedacht,danke.
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: FemtoBasic überarbeitet

Beitrag von drohne235 »

Routinen um auf den hRAM zuzugreifen sind im IOS enthalten. Man kann einfach mit ram_rdbyte/ram_wrbyte usw. zugreifen, oder auch den hRAM als RAMDisk verwenden und auf Speicherfiles zugreifen. In dem Codeabschnitt im IOS steht in dem einleitenden gelben CON-Block (eRAM/SPEICHERVERWALTUNG) eine Minianleitung dazu. Keine Ahnung ob man damit was anfangen kann. Wenn nicht, beantworte ich einfach hier deine Fragen.

Poste doch mal die Codesequenz für peek/poke hier.

Sound ist vielleicht erstmal eine gute Idee: Damit könnte man erstmal einen kleinen spaßigen Musikplayer oder etwas ähnliches in Basic programmieren, um die diversen Funktionen zu testen. (Hey, wie in alten Zeiten bei den ersten Gehversuchen am 8Bitter... :mrgreen: )

Was mir noch aufgefallen ist (durch den Sound): "dir" enthält ein mount/unmount. Im Prinzip könnte das entfallen, da das Medium gemounted ist, wenn Basic geladen wird.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
quix
Beiträge: 233
Registriert: Sa 22. Okt 2011, 16:10

Re: FemtoBasic überarbeitet

Beitrag von quix »

Jetzt rückt die kalte Jahreszeit wieder näher und ich hoffe etwas mehr Zeit zum Basteln zu haben. Ich bin auch eher an Basic, als an einer anderen Programmiersprache interessiert. Wenn ich mal meinen Senf dazugeben darf. An Befehlen würden mir einfache Grafikbefehle gefallen, bei denen ich die Schriftfarbe und den Hintergrund des jeweiligen Zeichens einfärben kann. Das ging damals bei vielen 8bittern (KC und Commodore) so.

Wie soll denn der Sound "benutzt/angesprochen" werden? Als Befehl, eine MP3-Datei abzuspielen oder mit Hilfe von Befehlen, Tonhöhe und Toneigenschaften selbst zu gestalten, ähnlich wie "SOUND"? Ein Befehl "BEEP" könnte einen Standardton ausgeben.
Benutzeravatar
TuxFan
Beiträge: 1022
Registriert: So 6. Sep 2009, 11:18

Re: FemtoBasic überarbeitet

Beitrag von TuxFan »

Hallo!
Erstmal Dank an Zille9 für den Einsatz an der BASICfront.
Ist ja fast wie Vorfreude auf Weihnachten.
Dann hab ich mal eine Frage zum Befehlssatz :
Ist es Möglich die Befehle "shiftin" und "shiftout" für SPI und ähnliches für I2C im Basic zu implementieren?
Grund :
An Administra sind 4 Portleitungen frei, die auf dem Busstecker liegen. Nun wäre es doch schön, wenn man von Basic aus über Regnatix und Administra auf diese Leitungen zugreifen könnte um periphere SPI- oder I2C-Chips anzusteuern. In Administra müßte eigentlich noch Platz für deartige Routinen sein. Z.B. die SPI-Routinen (SPI-ASM) von Beau Schwabe in Assembler V1.3.
Gruß
TuxFan
Wunder gibt es immer wieder.......
Benutzeravatar
digger
Administrator
Beiträge: 676
Registriert: Sa 23. Mai 2009, 22:44
Wohnort: Schorfheide
Kontaktdaten:

Re: FemtoBasic überarbeitet

Beitrag von digger »

Hi zille9,
deine Arbeit am FemtoBasic find ich absolut genial. Ein funktinierendes BASIC müssen wir dann sofort an prominenter stelle bewerben. :D ... Hab ich schon gesagt dass ich es genial finde? ;)
Benutzeravatar
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: FemtoBasic überarbeitet

Beitrag von kuroneko »

Hat sich jemand mal PropellerBASIC angesehen? Basiert auf FemtoBASIC ging dann aber eigene Wege.
Benutzeravatar
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

Re: FemtoBasic überarbeitet

Beitrag von zille9 »

Freut mich, so eine Fangemeinde ins Leben gerufen zu haben. Meine Arbeit am Basic geht weiter, bin gerade bei der Soundeinbindung und bin offen für Vorschläge an sinnvollen Befehlen.
I2C-Interface hab ich schon drüber nachgedacht, wird möglicherweise auch realisiert, mal sehen.
Zur Zeit versuche ich wie gesagt, Sound. Danach sollen Grafikbefehle folgen, hauptsächlich liegt der Umfang letztlich am Speicher aber einiges ist noch möglich.
Am schönsten wäre es den gesamten externen Ram verfügbar zu machen aber da überleg ich noch am Konzept (wie was wo gespeichert werden soll).
Bitte an alle, die mit Femto arbeiten ->meldet euch bei Fehlern oder Wünschen oder was weiss ich noch. Ich werde versuchen alles zu berücksichtigen.
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
Benutzeravatar
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

Re: FemtoBasic überarbeitet

Beitrag von zille9 »

An Drone 235
der mount und unmount-Befehl war eigentlich gedacht um ein sauberes Arbeiten mit den SD-Karten zu ermöglichen aber mir ist aufgefallen, das nach einem Kartentausch (Karte raus, Karte rein) das System die Karte meist nicht mehr sauber erkennt (wird nur Müll beim Befehl DIR angezeigt).
Ist eventuell ein Bug im administra-code? Keine Ahnung, das müsstest Du vielleicht mal testen oder (ein (Un)Mountbefehl der nicht korrekt ausgeführt wird?) :?
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
Antworten