Zurück Kapitel Weiter


RUN!Lib-Logo

 

Hompage von Lonny Pursell
Rund um's GFA-BASIC
GBE-Download

Die Fehler, die der originale GFA-Interpreter hat, hat leider auch die Bibliothek geerbt. Sicher gab es diverse Patches auch für die Bibliothek, allen voran die LicomLib, die ja von sich behauptet, GFA-Programme sicherer, sauberer und schneller zu machen. Wie sich im Zuge der Entwicklung der RUN!Lib herausgestellt hat, ist dies leider grundfalsch:

  • Die FPU-Unterstützung funktionierte nie.
  • Würde sie funktionieren, wäre die Beschleunigung niemals 10x
  • Eine neue Stringverwaltung gibt es nicht. Der Bug bei wenig RAM kann auch mit der Licomlib auftreten!
  • Es gibt ein Testprogramm, das reproduzierbar nur mit der Licomlib abstürzt.
  • Die neue Fehlerbehandlung der LicomLib ist inkompatibel zur originalen, welche sauber und gut ist.
  • Dadurch wurden einige Befehle einfach unnötigerweise rausgeworfen.
  • Die Licomlib macht grundsätzlich AES-Aufrufe, auch wenn das GFA-Programm keine macht.

Doch dies allein waren noch nicht die Gründe, warum es jetzt auch eine Bibliothek von RUN! Software gibt. Der RUN!Only-Interpreter hat viele bislang fehlerhafte Befehle wieder benutzbar gemacht. Da wäre es doch schade, wenn man diese nicht auch später im Compilat benutzen könnte. Überhaupt sollte es eine Bibliothek geben, die sich möglichst zu 100% so verhält, wie auch das interpretierte GFA-Programm. Das war der Hauptgrund für eine eigene Bibliothek.

Folgende Eigenschaften hat die RUN!Lib:

  • verbesserter Startupcode
  • seltener, aber fataler Bug in der Stringverwaltung behoben
  • Benutzung von GEMDOS anstelle von BIOS (wenn möglich)
  • SupExec nur noch bei unsauberen GFA-Befehlen
  • keine impliziten LineA-Aufrufe mehr (z.B. in BMOVE, AES, VDI, etc.)
  • korrekte Erkennung des FPU- und CPU-Typs
  • optionale FPU-Beschleunigung für: (A)SIN, (A)COS, (A)TAN, LOG(10) EXP, SQR und Fließkommadivision
  • optionale Beschleunigung ab CPU>=68030 für: Wandlung Fließkomma -> Integer, DIV, MUL

Folgende Änderungen bietet RUN!Lib:

  • BMOVE: optionale Unterstützung für CPUs>=68030
  • BSAVE: geht nicht mehr über GFA-internes Dateimanagement
  • DEFMOUSE: Werte > 7 können übergeben werden
  • DFREE: jetzt bis 2 GB korrekt (mehr geht nicht, da 2 GB = Integermaximalwert)
  • DIM, ERASE: optionale Benutzung von Malloc(), Redimensionierung möglich
  • EXIST: funktioniert nun und benutzt Fattrib() anstelle von Fopen()
  • FILESELECT: SGET und SupExec() beseitigt
  • GET, PUT: auf VDI abgebildet
  • GETSIZE: benutzt VDI-Werte zur Berechnung
  • HIDEM, SHOWM: auf AES abgebildet
  • (R)INSTR: Bug beseitigt (bislang war INSTR(a$,a$,2)=1)
  • MENU_REGISTER(): Bug beseitigt (kein Müll mehr im Menü)
  • MENU_TEXT(): schweren Bug behoben (Register wurde überschrieben))
  • MOUSE, MOUSEX/Y/K: auf AES abgebildet
  • PI: Wert minimal(!) geändert für genauere FPU-Berechnungen
  • RC_COPY: auf VDI abgebildet
  • RESERVE: komplett entfernt, weil es ein so übler Hack ist
  • TIMER: SupExec() nur noch als Fallback
  • TOUCH: meldet jetzt Fehler, wenn Datei nicht geöffnet
  • TT?:selbstmodifizierender Code entfernt

Wir haben darauf geachtet, nur so wenig wie möglich, aber so viel wie nötig zu ändern. Wer will, kann gerne solche Befehle benutzen, die unsauber sind! Wir haben sie nicht entfernt. Warum auch. Im Gegensatz zu anderen Patches überlassen wir es unseren Usern, was sie benutzen wollen. Lediglich an Stellen, wo man es nicht erwarten würde, haben wir Unsauberkeiten bereinigt (z.B. wurde im Original bei jedem AES- oder VDI-Aufruf bislang die Maus per LineA ausgeschaltet).
Demzufolge sollte eigentlich alles funktionieren, was auch mit der originalen Bibliothek funktioniert hat. Sollten dennoch Probleme auftreten, bitten wir ausdrücklich um Rückmeldung. Wir sind immer um Fehlerbereinigungen bemüht.

RUN!Lib ist Freeware und steht Ihnen auf unserer Website zum Download zur Verfügung.

Anfragen per E-Mail an:
runonly@run-software.de



Zurück Kapitel Weiter