
TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
Für ein paar Experimente mit dem SID-Player einige DMP-Files. Der Stereomodus mit zwei SIDCogs ist echt cool... 

- Dateianhänge
-
- comp1.zip
- Monsterpaket :)
- (7.37 MiB) 598-mal heruntergeladen
-
- SID.zip
- Kleines Paket
- (510.42 KiB) 595-mal heruntergeladen
"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
Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
Hallo drohne 235
Du hast mir kopf schmerzen gegeben.
Ich habe nun zwei tage gebraucht um eine AUTOMOUNTER zu kreieren.
Erst eine DIRTY, es virkt.
Es war nicht der AUTOMOUNTER sondern der fehlerzuge.
Erst wenn ich in der SYSTEM das file admflash.adm gesperrt,
hatte es angefangen zu fungieren.
Deine letzte ZIPFILE hast CRC fehler, selbst unter Windows.
I like your work.
HIVE 085
Du hast mir kopf schmerzen gegeben.
Ich habe nun zwei tage gebraucht um eine AUTOMOUNTER zu kreieren.
Erst eine DIRTY, es virkt.
Es war nicht der AUTOMOUNTER sondern der fehlerzuge.
Erst wenn ich in der SYSTEM das file admflash.adm gesperrt,
hatte es angefangen zu fungieren.
Deine letzte ZIPFILE hast CRC fehler, selbst unter Windows.
I like your work.
HIVE 085
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
Automounter klingt cool. 
Ich hab mal das Archiv aktualisiert und auch getestet - jetzt sollte es sich ohne CRC-Fehler (bei mir gab es auch diesen Fehler) entpacken lassen. Schau mal bitte ob es jetzt funktioniert.
Ich habe übrigens noch einen Fehler in der FATEngine gefunden: Exakt der Aufruf Nr. 4096 von "sdfat.readData(@buffer,25)" erzeugt ein fehlerhaftes Datum. Die Testroutine in komponenten/sidcog/stereosiddumpplay-fatengine zeigt das ganz deutlich. Im gleichen Verzeichnis liegt auch ein Screenshot, an dem man das sehen kann. Man hört es auch wenn man ein längeres SID abspielt - ab dem Registersatz 4096 kommt nur noch Soundmüll. Verwendet man die Funktion "sdfat.readCharacter", funktioniert es korrekt. In den WAV-Routinen hab ich auch die readData-Funktion verwendet, aber ich vermute, bei der Wiedergabe von WAV-Dateien hört man den kleinen Fehler einfach nicht.

Ich hab mal das Archiv aktualisiert und auch getestet - jetzt sollte es sich ohne CRC-Fehler (bei mir gab es auch diesen Fehler) entpacken lassen. Schau mal bitte ob es jetzt funktioniert.
Ich habe übrigens noch einen Fehler in der FATEngine gefunden: Exakt der Aufruf Nr. 4096 von "sdfat.readData(@buffer,25)" erzeugt ein fehlerhaftes Datum. Die Testroutine in komponenten/sidcog/stereosiddumpplay-fatengine zeigt das ganz deutlich. Im gleichen Verzeichnis liegt auch ein Screenshot, an dem man das sehen kann. Man hört es auch wenn man ein längeres SID abspielt - ab dem Registersatz 4096 kommt nur noch Soundmüll. Verwendet man die Funktion "sdfat.readCharacter", funktioniert es korrekt. In den WAV-Routinen hab ich auch die readData-Funktion verwendet, aber ich vermute, bei der Wiedergabe von WAV-Dateien hört man den kleinen Fehler einfach nicht.
"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
Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
Autounmount kommt auch, nach ziehen der karte.
HIVE 085
HIVE 085
Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
Hallo drohne 235
Der Automount ist dar, und Autounmount auch.
HIVE-DÄNE
Der Automount ist dar, und Autounmount auch.
HIVE-DÄNE
- Dateianhänge
-
- send1.zip
- (47.19 KiB) 591-mal heruntergeladen
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
Ich hab das Problem nochmal anders gelöst, ich glaube die zwei Modis in sd_mount brauchen wir nicht:
admflash.spin:
- Keinen Modus M/B für sd_mount, da immer die Dir-Marker gesetzt werden müssen und können.
- Bei der Initialisierung init_chip das Laufwerk immer mounten.
Allerdings kann es sein, dass ich da etwas übersehe, denn bei den Änderungen in der admflash-fat hab ich noch keine Ahnung was sie bewirken. Hab ich da etwas übersehen, oder ist das noch ein Fehler in der FATEngine?
Eigendlich hab ich die Routinen sd_dmget/sd_dmput vorgesehen, um das Userverzeichnis zu sichern, damit man das aktuelle Dir nach einem booten des Administra-Codes wieder herstellen kann. Aber wenn ich im IOS diese Funktionen einfüge, funktioniert das nicht korrekt. Muß ich noch untersuchen.
Aktuelle Version hänge ich gleich noch im ersten Beitrag an.
admflash.spin:
- Keinen Modus M/B für sd_mount, da immer die Dir-Marker gesetzt werden müssen und können.
- Bei der Initialisierung init_chip das Laufwerk immer mounten.
Allerdings kann es sein, dass ich da etwas übersehe, denn bei den Änderungen in der admflash-fat hab ich noch keine Ahnung was sie bewirken. Hab ich da etwas übersehen, oder ist das noch ein Fehler in der FATEngine?
Eigendlich hab ich die Routinen sd_dmget/sd_dmput vorgesehen, um das Userverzeichnis zu sichern, damit man das aktuelle Dir nach einem booten des Administra-Codes wieder herstellen kann. Aber wenn ich im IOS diese Funktionen einfüge, funktioniert das nicht korrekt. Muß ich noch untersuchen.
Aktuelle Version hänge ich gleich noch im ersten Beitrag an.
"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
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
Hmm, jetzt hab ich das mit dem Modus auch geschnallt...
Ich hab den Modus jetzt also wieder eingebaut. In der Initialisierung wiederhole ich den Versuch, dass Laufwerk zu mounten, bis es funktioniert. Im Modus "B" braucht es aber kein bus_putchar(err), da die Funktion nicht direkt von Regnatix initiiert wurde. Schau mal ob das bei dir auch so funktioniert, ich glaub so ist richtig. Ich erstelle gleich noch eine neue Arbeitsversion.
Zwei Sachen die mir noch einfallen:
1. Es wäre ja gut, wenn bei relevanten Zugriffen auf das Laufwerk, Administra bei Bedarf versucht ein eventuelles Laufwerk automatisch mit sd_mount("B") zu mounten. Ist keine Karte im Laufwerk, so ist der Hive zwar blockiert, aber sobald man eine Karte einlegt (oder vergessen hat manuell zu mounten), geht es dann weiter. Funktioniert auch schon beim Systemstart, wenn man keine Karte eingelegt hat. Ich bin mir auf der einen Seite aber momentan nicht sicher, ob es Konflikte bei diversen Dateioperationen gibt und auf der anderen Seite verkomplizieren Automatismen die Sache irgendwie unnötig. Intuitiv ist mir da eine ordentliche Fehlermeldung lieber, als ein Automatismus der für mich "denken" will - da geht mir die Direktheit verloren.
2. Jede Änderung zieht immer weitere Kreise:
- IOS ändern --> danach in die entsprechenden Verzeichnisse verteilen
- Kernroutinen in admflash ändern --> Änderung der gleichen Routinen auch in admini, admsid usw. (Leider gibt es keine include-Anweisung).
- Nach Änderung ausführbare Dateien im bin-Verzeichnis neu komilieren.
Da ich momentan mit dem bst unter Linux arbeite, könnte man sich dafür teilweise einen Script basteln, quasi so eine Art makefile, da ja ein Kommandozeilencompiler und auch ein Flashtool dabei ist. Bst ist eh zu empfehlen, da er den Code besser optimiert und vor allem Routinen aus Objekten auf Wunsch nicht einbindet, welche nicht verwendet werden! So ist es kein Problem, zum Beispiel die SID- und HSS-Routinen in die gleiche IOS-Datei zu packe - je nach Code werden nur die entsprechenden Teile kompiliert.

Code: Alles auswählen
PUB sd_mount(mode) | err 'sdcard: sd-card mounten frida
''funktionsgruppe : sdcard
''funktion : eingelegtes volume mounten
''eingabe : mode = "M" - mount / "B" - boot
''ausgabe : -
''busprotokoll : [001][put.error]
'' : error - fehlernummer entspr. list
err := \sdfat.mountPartition(0,0) 'karte mounten
siglow(err)
if mode == "M" 'frida
bus_putchar(err) 'fehlerstatus senden
ifnot err
dmarker[RMARKER] := sdfat.getDirCluster 'root-marker setzen
err := \sdfat.changeDirectory(string("system"))
ifnot err
dmarker[SMARKER] := sdfat.getDirCluster 'system-marker setzen
sdfat.setDirCluster(dmarker[RMARKER]) 'root-marker wieder aktivieren
hss.sfx_play(1, @SoundFX8) 'on-sound
Zwei Sachen die mir noch einfallen:
1. Es wäre ja gut, wenn bei relevanten Zugriffen auf das Laufwerk, Administra bei Bedarf versucht ein eventuelles Laufwerk automatisch mit sd_mount("B") zu mounten. Ist keine Karte im Laufwerk, so ist der Hive zwar blockiert, aber sobald man eine Karte einlegt (oder vergessen hat manuell zu mounten), geht es dann weiter. Funktioniert auch schon beim Systemstart, wenn man keine Karte eingelegt hat. Ich bin mir auf der einen Seite aber momentan nicht sicher, ob es Konflikte bei diversen Dateioperationen gibt und auf der anderen Seite verkomplizieren Automatismen die Sache irgendwie unnötig. Intuitiv ist mir da eine ordentliche Fehlermeldung lieber, als ein Automatismus der für mich "denken" will - da geht mir die Direktheit verloren.
2. Jede Änderung zieht immer weitere Kreise:
- IOS ändern --> danach in die entsprechenden Verzeichnisse verteilen
- Kernroutinen in admflash ändern --> Änderung der gleichen Routinen auch in admini, admsid usw. (Leider gibt es keine include-Anweisung).
- Nach Änderung ausführbare Dateien im bin-Verzeichnis neu komilieren.
Da ich momentan mit dem bst unter Linux arbeite, könnte man sich dafür teilweise einen Script basteln, quasi so eine Art makefile, da ja ein Kommandozeilencompiler und auch ein Flashtool dabei ist. Bst ist eh zu empfehlen, da er den Code besser optimiert und vor allem Routinen aus Objekten auf Wunsch nicht einbindet, welche nicht verwendet werden! So ist es kein Problem, zum Beispiel die SID- und HSS-Routinen in die gleiche IOS-Datei zu packe - je nach Code werden nur die entsprechenden Teile kompiliert.
"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
Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
vieleicht als anregung für euch: wenn beim boot keine sd-card vorhanden ist, bzw. zur laufzeit die sd-card mit dem os entfernt wurde, sollen alle 3 leds des hive's rythmisch blinken. 1-2 sek. takt sollte da ausreichen.
falls möglich, sollte der screen auch noch in rot getaucht werden. alles andere sollte ausgeblendet werden..
falls möglich, sollte der screen auch noch in rot getaucht werden. alles andere sollte ausgeblendet werden..
Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
Hallo drohne 235
in:
Bitte Einkerbung auf der restlichen Zeilen, so dass es funktioniert.
Ich weiß noch nicht, warum es funktioniert.
25 geht in 512 acht Mal, bevor es ein Fehler auftritt.
8 mal 512 ist gleich dem 4096.
Warum es nicht passieren, die übrigen 7 mal, kenne ich noch nicht.
HIVE 085
Versuchen Sie die folgende Zeile zu ändern im 'readData(addressToPut, count)':drohne 235 hat geschrieben: Ich habe übrigens noch einen Fehler in der FATEngine gefunden: Exakt der Aufruf Nr. 4096 von "sdfat.readData(@buffer,25)" erzeugt ein fehlerhaftes Datum.
Code: Alles auswählen
repeat while((count > 0) and readWriteCurrentCluster("R", "F"))
Code: Alles auswählen
repeat while(count > 0)
if(readWriteCurrentCluster("R", "F"))
Ich weiß noch nicht, warum es funktioniert.
25 geht in 512 acht Mal, bevor es ein Fehler auftritt.
8 mal 512 ist gleich dem 4096.
Warum es nicht passieren, die übrigen 7 mal, kenne ich noch nicht.
HIVE 085
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
Ich hab es mal schnell im SID-Bios geändert und es scheint zu funktionieren.
Wenn es morgen nicht ganz so heiß ist, werde ich mal einen ordentlichen Testcode in admtest einbauen, um den Fehler zu provozieren.

- Dateianhänge
-
- admsid2.adm.zip
- (6.69 KiB) 580-mal heruntergeladen
"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