Hallo Besucher, der Thread wurde 68k mal aufgerufen und enthält 157 Antworten

letzter Beitrag von syshack am

Bas.Edit der Basic Editor unter Windows !

  • Neue Version 1.12 hochgeladen:

    Code
    1. - RUN <expr> liefert beim Syntax-Check jetzt nur noch eine Fehlermeldung, wenn <expr> nicht numerisch ist
    2. oder <expr> eine Konstante ist und die zeilennummer nicht existiert
    3. - neues Setting in BasEdit.ini:
    4. ' Definition file for PetCat translations [CLR} etc.
    5. PetCat=.\PetCat-Tokens.txt
    6. - beim Einfügen von Texten über "Insert vom Clipboard" austauschen von {CLR} etc. durch die richtigen Zeichen


    Die PetCat-Token.txt ist bisher nur eine Arbeitshypothese, wäre schön, wenn irgendjemand helfen könnte, die fehlenden Steuercodes aufzufüllen. Bisher habe ich nur die Cursor-Steuercodes und ein paar Farbcodes dort eingetragen. Oder gibt es irgendwo ene komplette Liste?

  • Bisher habe ich nur die Cursor-Steuercodes und ein paar Farbcodes dort eingetragen. Oder gibt es irgendwo ene komplette Liste?


    Zitat von "man petcat"


    Ähnjoi! :bandit


    Übri-Gänse, kann mit einem Linuxport rechnen?


    EDIT: Ich seh gerade, VB2008 Express, also eher nicht. Scahde.

  • Ah, danke, das ist doch schonmal was.
    Wobei ich meine, irgendwo auch sowas wie {CBM-A} gesehen zu haben... naja, muss ich wohl mal ein bisschen riumprobieren und reverse engineeren :-)
    Und sowas wie {6 down} hab ich noch gar nicht berücksichtigt, zurück an die Tastatur mit mir!


    Linux ist nicht so meine Welt (und nein, jetzt bitte keinen OS-Krieg anzetteln:-) Allerdings war zumindest eine frühe Version von BasEdit.NET unter Mono lauffähig, wie mir jemand mitgeteilt hat, eventuell gilt das ja auch für diese hier?

  • Wobei ich meine, irgendwo auch sowas wie {CBM-A} gesehen zu haben... naja, muss ich wohl mal ein bisschen riumprobieren und reverse engineeren :-)


    Das ist ganz einfach das Char was kommen würde wen du diese Tastencombo auf einer Cevi-Tastatur drücken würdest.
    Es gibt auch {$00}-{$ff}, das wäre dann der ASCII-Code.

  • Jupp, bin das ganze mal umgekehrt angegangen, d.h. hab mir ein PRG erstellt, das in einem PRINT statement einfach alle Chars von 128 bis 255 hatte und hab das dann mal mit PetCat umgewandelt. Schon hatte ich eine vollständige Liste dessen, was ich erzeugen und verarbeiten kann :-)
    das hab ich dementsprechend mal in meine PetCat-Token.txt reingepackt und kann jetzt munter PetCat-ASCII-Dateien über die Zwischenablage einfügen.
    Außerdem hab ich mal eine erste Version dieser Token-Datei für BasText erstellt und auch mit beigepackt, die kann man bei Bedarf in der BasEdit.Ini ersetzen( PetCat=.\PetCat-Token.txt ->PetCat=BasText-Token.txt)


    Außerdem hab ich noch einen optionalen Multiplikator berücksichtigt ({3 up}, {3*up}, {up*3}), weil das manche Tools auch so erzeugen.


    Beim Import über die Zwischenablage wird gegebenenfalls aller Text außerhalb von Anführungszeichen so angepasst das daraus auch gültige Basic-Statements werden, d.h. aus print, PRINT oder auch PrInT wird immer PRINT gemacht, damit mein Tokenizer das am Ende auch erkennt und wieder vernünftig hervorhebt und wegschreibt. Texte in Anführungszeichen bleiben unangetastet. Ausnahme: Man setzt das Häkchen bei "Convert clipboard to uppercase..." vor dem Import.


    Neue Version 1.13 ist hochgeladen...

  • Schlowski


    Dein Tool ist super!



    Feature Anfrage:


    Die Final Expansion wird mit kurzen "BASIC" Programmen konfiguriert. Natürlich sind das keine richtigen BASIC Programme aber Konfigurationstext (siehe LOADER Doku) der als VC-20 BASIC gespeichert wird.


    Man kann ja jetzt schon mit deinem Tool sehr gut diese LOADER Dateien erstellen. Aber natürlich könnte man am PC noch ganz andere Vorteile nutzen:

    • Kleine Dialogbox wo man einen Abschnitt komplett definiert
    • Analyse der gewählten Dateien und so einen Vorschlag der Konfiguration.
    • sofortiger Test im VICE (die Final Expansion wird vom VICE emuliert)
    • D64 erstellen
    • Eine Bibliothek der Konfigurationen:


      Die Konfigurationen könnte man in einer "Bibliothek" sammeln und unter allen FE3 Benutzern austauschen. Wenn man VC-20 Programmdateien auswählt könnte man automatisch passende Konfigurationen finden. Entweder manuell oder sogar durch Prüfsummen.


    Hast du einen VC-20? Ich würde für so ein Tool auch eine FE3 springen lassen ... ;)

  • Hi Diddl,


    Zitat

    Hast du einen VC-20? Ich würde für so ein Tool auch eine FE3 springen lassen ...


    Ja, ich hab einen und Mist, ich hab die FE3 doch schon bestellt - ich hoffe Nils schafft es bald, die zu VIC-Ian zum Löten zu schicken. Ja, ich bin auch so einer, der seinen Lötservice in Anspruch nimmt... Bin übrigens auf Denial durch Dich auf die FE3 aufmerksam geworden, so schließt sich der Kreis :)


    Deine Feature-Anfrage hört sich interessant an, ich hab mich bisher noch nicht so intensiv mit dem Loader-Teil der FE3 beschäftigt, ich werde mich da mal ein bisschen einlesen in den nächsten Tagen.


    [OT]
    Ich hab mal mit der FE3-Emulation im Vice rumgespielt, die funzte richtig gut - noch ein Grund, warum ich das Teil haben wollte.
    Dabei ist mir folgendes aufgefallen: Im SuperRAM-Modus kann man ja alle Blöcke im VC einblenden und eine von 8 32k-Bänken aus der FE3 auswählen aus der das RAM bezogen wird. Die Blöcke 1,2,3 und 5 im VC werden dann jeweils mit den 8k, Offset 0, 8K, 16K, 24k aus der gewählten Bank im FE3 befüllt. Soweit klar. Allerdings wird ja auch der VC Block 0 eingeblendet im SuperRAM-Modus. Woher bezieht der sein RAM. Soweit ich die Doku verstanden habe immer aus den ersten 8K der ersten Bank aus der FE3, richtig? Dann müsste doch das Byte an $0400 das gleiche wie bei $2000 sein, wenn man Bank 0 einblendet weil beide dann den ersten 8k Block benutzen? Im Vice kann ich aber in $0400 was reinpoken, das taucht dann nicht in $2000 auf. Fehler in der Emulation? Fehler zwischen meinen Ohren?
    [/OT]

  • Neue Version 1.20 hochgeladen:



    Es war ein harter Kampf, aber nun funktioniert hoffentlich alles, was BasText auswirft...

  • Dann müsste doch das Byte an $0400 das gleiche wie bei $2000 sein, wenn man Bank 0 einblendet weil beide dann den ersten 8k Block benutzen? Im Vice kann ich aber in $0400 was reinpoken, das taucht dann nicht in $2000 auf. Fehler in der Emulation? Fehler zwischen meinen Ohren?


    Ist zwar etwas Offtopic, sorry, aber schnell beantwortet.


    Richtig erkannt, du bist einer der ganz wenigen die sich damit beschäftigen. :respect:


    Tatsächlich taucht der 3K Block in dieser speziellen Konfiguration nochmals auf. Allerdings ist die Zelle $400 nicht an $2000 gespiegelt sondern an $2400. Das liegt daran, dass immer ganze 8K Blöcke gemapped werden. Geht auch nicht anders weil die Addressleitungen A0 bis A12 direkt verbunden sind.


    Das Konzept scheint zunächst unausgegoren, aber es hat schon seinen Sinn den 3K Block immer auf Page 0 zu lassen. Es vereinfacht das Mapping für eigene Programme ungemein ...



    PS: Wenn ich was tun kann was dich unterstützt bei der LOADER File Unterstützung, lass es mich wissen.

  • Ah, danke für die Info - hätte ich eventuell auch drauf kommen können, ist eigentlich logisch...


    Zurück zum Thema:
    Ich beschäftige mich gerade mit D64 Dateien, Directory anzeigen und Files daraus lesen klappt schonmal wunderbar, jetzt kommt das zurückschreiben, dann hab ich zumindest schonmal den D64-Punkt Deiner Liste - wobei die D64-Unterstützung ohnehin angedacht war von mir :rolleyes:
    Sobald das läuft, werde ich mir die Loader-Dateien genauer anschauen, wenn ich dann Fragen habe, werde ich mich vertrauensvoll an Dich wenden!

  • dann hab ich zumindest schonmal den D64-Punkt Deiner Liste


    Gut! Falls du fragen zu D64 hast, kann ich womöglich auch helfen. Ich habe mit damit beschäftigt in meinem XS-1541 Projekt.



    Sobald das läuft, werde ich mir die Loader-Dateien genauer anschauen, wenn ich dann Fragen habe, werde ich mich vertrauensvoll an Dich wenden!


    Wunderbar!

  • Neue Version 1.21 hochgeladen

    Code
    1. - Lesender Zugriff für D64 diskimages zugefügt
    2. - Kontext-Menü auf normales Windows-Menü umgestellt
    3. - Neue Menüpunkte "Load ASCII" und "Save ASCII" zugefügt
    4. - Neuer Menüpunkt "Change ASCII tokenizer" zugefügt
    5. - Neuer Menüpunkt "Change font" zugefügt
    6. - Verzeichnis aufgeräumt und Unterverzeichnisse für ASCII tokenizer Dateien und Basic token Dateien zugefügt


    Nachdem das Kontext-Menü doch langsam überlang und über-unübersichtlich wurde, ist es mir gelungen, ein normales Windows-Menü mit meiner Tastaturbehandlung im Hauptfenster konform zu gestalten. Gibt zwar keine Tastenkürzel wie ALT-S zum Speichern, weil sich das beißen würde, aber das ist das kleinere Übel. Lediglich wenn man ALT drückt und loslässt ohne eine weitere Taste dazu (wie z.B. Cursortasten) öffnet sich das erste Menü, ansonsten bemerkt man es quasi gar nicht.


    D64 Diskimages können jetzt "attached" werden, anschließend kann man sich das Directory anschauen und Dateien laden. Dateien mit Typ PRG werden als Basic-Dateien geladen, alles andere als PETSCII.
    Zurückschreiben ins Diskimage folgt später, ebenso Unterstützung anderer Formate wie D71 oder D81.


    Mit "Load ASCII" und "Save ASCII" können Textdateien inklusive Umsetzung der speziellen Zeichen in Anführungsstrichen in {up}, {clr} etc. erzeugt und gelesen werden. das ist quasi die Weiterführung der ganzen Zwischenablage-Funktionen mit Petcat/BasText/TOK64-Umwandlungen.
    Außerdem kann jetzt zur Laufzeit der ASCII tokenizer gewechselt werden, also z.B. von Petcat auf BasText. Achtung: das wird nicht automatisch in die BasEdit.Ini zurückgeschrieben!


    Ebenfalls zur Laufzeit kann jetzt ein anderes Fontfile ausgewählt werden zum Wechsel zwischen VC20 und C64 Font oder anderen, falls vorhanden. Wird ebenfalls nicht in die BasEdit.Ini zurückgeschrieben!


    Und zu guter Letzt gingen mir die ganzen txt-Dateien im Programmverzeichnis auf die Nerven, deswegen hab ich die mal kurzerhand in Unterverzeichnisse verschoben.


    Durch das neue Menü hab ich jetzt auch wieder Platz, um weitere Features unterbringen zu können, einiges ist ja bereits in Arbeit und ich habe auch noch mehrere Anfragen für verschiedene neue Funktionen...

  • Neue Version 1.22 hochgeladen

    Code
    1. -Mausklick korrigiert, Cursor wird jetzt wieder in die richtige Zeile gesetzt
    2. - Basic tokenfiles werten jetzt #include-Anweisungen realtiv zum aktuellen Pfad des Tokenfiles aus
    3. - Neuer Menüpunkt "Change Basic dialect"
    4. - Menupunkte für "Change Basic dialect" und "Change ASCII tokenizer" enthalten jetzt eine Info über die aktuelle Einstellung


    In den ASCII Tokenizer Dateien (BasText-tokens.txt, PetCat-tokens.tx und TOK64-tokens.txt) sowie in den Basic Token Dateien (TokenList....txt) gibt es jetzt einen neuen Befehl: description=blablabla. Dieser Werrt wird ausgelesen und als aktuell gewählte Einstellung im Menü angezeigt.


    Beim Laden von ASCII-Tokenizer und Basic Token Dateien wird jetzt jeweils das Verzeichnis der zuletzt gewählten Datei als Virgabe gewählt, damit muss man nicht ständig in und aus Verzeichnissen wechseln.


    Nach dem Wechsel des Basic-Dialekts wird der aktuelle Quelltext neu geparsed, um eventuell bisher nicht "verstandene" Tokens zu ersetzen.

  • Neue Version 1.23 hochgeladen

    Code
    1. - Schreibunterstützung für D64 eingebaut
    2. - Neuer Menüpunkt "Create empty diskimage"
    3. - Save&Run (F5) funktioniert jetzt auch für PRG-Dateien in Diskimages


    Da das ganze Schreiben in D64-Images komplettes Neuland für mich war, bitte unbedingt Sicherheitskopien Eurer Diskimages anlegen, bevor Ihr mit BasEdit darauf rumarbeitet - ich hab zwar den ganzen Abend lang keine Probleme gehabt, aber wann hätte ein Programmierer schonmal Ärger mit der eigenen Software, das trifft ja immer nur die Anwender...


    Diddl: Die Basic-Version als Kommentar mach ich vielleicht mal konfigurierbar, als Standard-Option gefällt mir das nicht. Aber wenn ich das einbaue, dann denke ich auch darüber nach, das beim Einlesen zu erkennen und gleich das richtige Basic-Tokenfile zu aktivieren.

  • Hi Schlowski,


    finde deinen Editor echt schick. naja ein sprite editor waere ganz nett
    aber ist nicht zwingend notwendig(das geht ja auch mit papier).


    ein Problem was mir eben auffiehl ist, wenn ich eine datei importiere und als ascii save,
    das dann zB bei den prints alles was in " steht weg ist.
    zB wird aus
    PRINT"HALLO"->PRINT""


    desweiteren bekomme ich immer einen fehler wenn ich ein program neu schreibe und diese direkt als ascii speichern moechte.

    Code
    1. Unbehandelte Ausnahme in der Anwendung.....
    2. Der Index und die Laenge Muessen sich auf eine Position in der Zeichenfolge beziehen.
    3. Parametername:lenght.


    waere schoen wenn du dir das mal anschaun kannst ;)


    Salute Haubitze


    PS: echt feine sache das weiter so :)
    EDIT: ach ja .NET 3.5 hab ich drauf... koennten bitte auch mal die andern Nutzer schaun ob
    so aehnliche phaenomene bei ihnen auftauchen? oder ob ich da alleine dasteh ....
    danke :P

  • Hi Haubitze,


    da hast Du ein Problem mit der ASCII-Tokenizer-Datei, schau mal ob in Deiner BasEdit.Ini in dieser Zeile irgendwas Falsches steht:

    Code
    1. PetCat=.\ASCII-Tokenizer\PetCat-Tokens.txt


    Wenn er die Datei nicht findet, gibt es momentan keine Fehlermeldung, aber danach bekommt man genau Deine Probleme, sowohl beim Speichern eines geladenen Programmes als auch wenn man direkt nach dem Start als ASCII speichern nöchte.


    Danke für den Hinweis, dass muss ich noch mal beheben!