Regime

Fragen zu Programmiersprachen und Software für den Hive und die Propellerchips
Benutzeravatar
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Regime

Beitrag von Rainer »

Ich habe die letzte Zeit ein bischen in Regime "rumgewurstelt".
Ich habe ein paar neue (MSDos-) Befehle eingebaut, ein paar Sachen verändert und versuche gerade, Regime Batchfähig zu machen.

@drohne235:

Hast Du irgendwelche Probleme damit ? Ich habe nirgends Lizenzbestimmungen gefunden. Ich lasse natürlich Deine Kommentare drin und verweise nochmal extra auf den Urheber.
Ich werde den Quellcode selbstverständlich hier veröffentlichen, wenn alles läuft.
Und .... ich brauche einen "ios.unload" -Befehl ! (kleiner Wink mit dem Zaunpfahl) ;) .
Soll dafür da sein, Cogs wieder frei zu machen, ohne einen neuen Treiber zu laden und den ganzen Propeller neu starten zu müssen (denke da an Ethernet, usw.).
An den IOS-Funktionen will ich nicht gerne rumfummeln, sonst werde ich komplett inkompatibel.

@alle:
Arbeitet vielleicht zufällig jemand anderes auch noch daran ? Dann könnten wir ja die Quellcodes konsolidieren und zusammenarbeiten.
Außerdem können Vorschläge gemacht werden, was ihr gerne drin hättet. Vielleicht ist es ja schon drin.

Gruß.
Rainer
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Regime

Beitrag von drohne235 »

Hast Du irgendwelche Probleme damit ? Ich habe nirgends Lizenzbestimmungen gefunden. Ich lasse natürlich Deine Kommentare drin und verweise nochmal extra auf den Urheber.
Betrachte den Code als vogelfrei! :) Ich glaube da muß ich mir mal was bzgl. der Lizenz ausdenken was man als Text da drunter setzt, hab ich ehrlich ein wenig vernachlässigt - konnte ja keiner ahnen das irgendwer Interesse dran hat.
Und .... ich brauche einen "ios.unload" -Befehl !
Was meinst du konkret damit? Das ios belegt ja keine Cog, sondern es sind ja nur Funktionsaufrufe.
"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
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: Regime

Beitrag von Rainer »

drohne235 hat geschrieben:
Und .... ich brauche einen "ios.unload" -Befehl !
Was meinst du konkret damit? Das ios belegt ja keine Cog, sondern es sind ja nur Funktionsaufrufe.
Umm .. ich meine natürlich nicht das IOS zu entladen. Ich denke dabei an einen Umkehrbefehl von "bload(stradr) | n,rc,ii,plen"

Aber wenn ich gerade darüber nachdenke, ist das wahrscheinlich zu umständlich zu realisieren. Mann weiß im Regefall ja nicht in welchem(n) Cog(s) genau die Treiber laufen. Na, ist jetzt auch nicht sooo wichtig.

Und zu Regime:
Auch wenn Du immer betonst, es wäre nur eine "Werkstattversion" ... sie funktioniert. Ich bin Pragmatiker genug um zu wissen, daß wir erst einmal irgendwas brauchen das läuft, uns das Leben erleichtert, damit wir uns auf die Sachen konzentrieren können, die uns wirklich gerade interessieren.

Wenn irgend jemand irgendwann die SuperDuper HIVE-Shell schreibt ist das Klasse, aber bis dahin "lebe" (zumindestens ich) mit Regime bestimmt ganz gut um rudimentäre Sachen am Hive zu machen. Hundert mal am Tag den Hive zu reset'en, nur weil ich dauernd mein neues Programm ändere, kann's ja irgendwie auch nicht sein.
Wenn ich mir PropDOS so ansehe muß ich mich außerdem schon fragen, was genau an Regime "Werkstatt" sein soll ;)

Gruß.
Rainer
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Regime

Beitrag von drohne235 »

Umm .. ich meine natürlich nicht das IOS zu entladen. Ich denke dabei an einen Umkehrbefehl von "bload(stradr) | n,rc,ii,plen"

Aber wenn ich gerade darüber nachdenke, ist das wahrscheinlich zu umständlich zu realisieren. Mann weiß im Regefall ja nicht in welchem(n) Cog(s) genau die Treiber laufen. Na, ist jetzt auch nicht sooo wichtig.
Ok, jetzt ist mir klar wo es hin soll. :) An sich gibt es diese entsprechende Möglichkeit, indem man sich einen minimalen Treiber macht und diesen mit bload rüberschiebt. Minimal wäre ein Treiber welcher eine COG belegt und einzig auf den Reset-Befehl reagiert, damit man mit einem weiteren bload einen entsprechenden anderen Treiber laden kann. Wenn es um Ethernet geht ist allerdings bload falsch (<b>ellatrix<load>), dafür brauchen wir erstmal ein aload (<a>dministra<load>), zumindest war es so von mir gedacht. Und einen Administra-Loader müssen wir erstmal basteln. Ein minimaler Administra-Treiber würde dann wohl neben der Reset-Funktion noch die grundlegenden FAT16-Routinen, wenn man nicht doch ein Reset riskieren will. :) Momentan sind die Treiber halt relativ "monolitisch", d.h. der Treiber ist immer komplett für Bellatrix, man kann da nicht modular nur den Maustreiber "entladen", aber man kann sich halt problemlos eine Version ohne Maus erstellen welche man einfach "überprügelt".
"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
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: Regime

Beitrag von Rainer »

LOL .. JETZT komme ich mit. Habe wohl zu lange AVR's programmiert. BLOAD war ein Befehl in BASCOM-AVR um große Bereiche auf einmal in's SRAM zu laden.
Auf die Idee mit "<B>ellatrix load" wäre ich im Leben nicht gekommen :lol:
Wäre da ein "xload(ZielMCU,stradr) | n,rc,ii,plen" nicht günstiger ?
Wäre einfacher in Schleifen oder Arrays abzuarbeiten als 3 unterschiedliche Befehle für eigentlich die gleiche Funktion.
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Regime

Beitrag von drohne235 »

Naja, das meinte ich mit Werkstattcode - da eweitert man halt pragmatisch wie es kommt. Konnte ja keiner ahnen was ihr alles noch einbauen wollt... :o

Und so gab es als erstes die ios-Funktion ldbin(stradr) welche ein Programm von SD-Card in Regnatix startet. Als nächstes kam dann halt bload(stradr) um ein Programm in Bellatrix zu starten, weil ich das ab einem bestimmten Punkt ganz praktisch fand.

Wobei sich das Regime-Komando "bload" ein wenig von der ios-Funktion unterscheidet, da es erst ein ios.breset aufruft um bei Belletrix ein Reset auszulösen und überträgt nach einer kleinen Pause den Treiber mit ios.bload. Zum Schluß kommt noch eine Initialisierung des Bildschirms (CLS und Prompt).

Aber wenn noch ein ios.aload fertig ist könnte man es vereinheitlichen. Ich hatte es halt getrennt, da die Mechanismen auch verschieden sind.
"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
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: Regime

Beitrag von Rainer »

Kein Problem.
Wenn die wirklich so unterschiedlich sind, dann kann ich eher mit 3 Funktionen leben als mit einer übermäßig aufgeblasenen Funktion die versucht, alles zu vereinigen.
War nur so ein Gedanke.

Gruß.
Rainer
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Benutzeravatar
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: Regime

Beitrag von Rainer »

So, ich habe mir mal ein bischen die Zeit "vertrieben" bis ich den Hive-Bausatz in Händen halte.
Alle beschriebenen Funktionen sind programmiert und lassen sich kompilieren, allerdings kann ich es nicht testen. Wahrscheinlich knallt es noch an allen Ecken und Enden.

Schon vorhandene Funktionen von drohne235:
help
mount
dir
type
load
cls
bload
del

Neue Funktionen (manche fertig, andere noch in Bearbeitung ):
Ringpuffer für die letzten 10 Befehle. Cursor up/down wechselt durch die Befehle (ähnlich doskey)
Einfache Batchverarbeitung. Autoexec.bat für Abarbeitung nach start.

- prompt [text] ( prompt $G ) : Ändert Prompt
- choice [/C[:]Tasten] [Text] ( choice /c:jnw Ja, Nein oder Weiter )
- compress <filename> ( compress test.txt ) : Einfache Dateikomprimierung (RLE)
- expand <filename> ( expand test.txt ) : Einfache Dateidekomprimierung (RLE)
- encrypt <key><filename> ( encrypt Fischsemmel test.txt ) : Einfache Verschlüsselung (XOR Cipher)
- decrypt <key><filename> ( decrypt Fischsemmel test.txt ) : Einfache Entschlüsselung (XOR Cipher)
- color <Schriftfarbe,Hintergrundfarbe> ( color 3,1 ) : Vorder- und Hintergrundfarbe der Shell setzen
- rem ( rem echo Diese Zeile wird nicht bearbeitet ) : Wird in Batchprogrammen verwendet
- if [not][exist]<Zeichenfolge1>[==][Zeichenfolge2][goto label] ( if exist test.txt del test.txt /j ) ( if not %1 == blub goto ende )
- goto <label> ( goto ende ) : Unbedingter Sprung
- :<label> ( :ende ) : Sprungziel
- rs232 [/start][/stop][baud:bit.start.stop] ( rs232 /start 19200:8.1.1 )
- pause ( pause ) : Hält Bearbeitung an und wartet auf Taste
- > [CON:][RS232:][Filename] ( echo. |time >test.txt ) : Ausgabeumleitung. Bei "RS232:muß vorher "rs232 /start" erfolgen. Fileausgabe ist immer "Append"
- echo (ECHO j | del *.*) (ECHO. |time ) : Ausgabe inkl. Ein-/Ausgabeumleitung
- time [/start][/stop][/set <yyyy.mm.dd hh:mm:ss>] (time /set 2009.07.17 20:10:00 ) : Zeigt Datum/Uhrzeit an oder ändert diese. Fragt RTC-Chip ab wenn vorhanden. Muß gestartet werden. Belegt 1 Cog
- rename <filename1><filename2> ( rename test.txt test2.txt ) : Da fsrw nur 1 Filehandle zulässt, wird das Quellfile erst mit neuen Namen kopiert, dann gelöscht.

Geplant:
Volle Unterstützung von Wildcards (*, ?)
Hexeditor (extern) : sRAM, eeprom, Hub-RAM, SD-Karte anzeigen/editieren
Editor (extern) : Wie MS-DOS Edit. Arbeitet im sRAM
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Regime

Beitrag von drohne235 »

Das klingt schonmal mächtig gewaltig. :)
"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
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: Regime

Beitrag von Rainer »

@drohne235

Die einzigen belegten Adressen vom IOS im eRAM sind von $0FFFAC - $0FFFFB.
Sehe ich das richtig ?
Ich frage deshalb, weil ich den Ringpuffer von Regime in's eRAM legen will ... wäre ja blöd wenn ich da was überschreibe ;)

Gruß.
Rainer

[EDIT]
Hat sich erledigt. Ich mache es jetzt anders.

Nebenbei: Mein Videoconverter hat sich gerade verabschiedet :(
Na, im Moment arbeite ich eh unter VGA .. werde ich ein anderes mal nach Alternativen suchen oder versuchen, das Ding zu reparieren.
[/EDIT]
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Antworten