Native PureBasic-Funktionen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Native PureBasic-Funktionen

Beitrag von Marvin »

Hallo,

Gibt es irgendwo eine Dokumentation zu den Standard-PureBasic-Funktionen wie PrintN oder so? Damit meine ich nicht einfach
Die PB-Hilfe hat geschrieben:Zeigt den angegebenen 'Text$' in der Konsole an und fügt einen Zeilenumbruch hinzu.
Sondern die genaue Dokumentation für PB_PrintN. Das wäre in diesem Fall laut meinen bisherigen Erkenntnissen:
  • · Ein Parameter auf dem Stack: Pointer auf auszugebenden String
    · Parameter werden erst nach dem Return vom Stack entfernt (also nicht "ret 4" sondern "ret" und im Code dann "add esp,4")
Oder für PokeB:
  • · Ein Parameter auf dem Stack: Zu setzender Wert
    · Ein Parameter in eax: Adresse
    · Parameter werden mit dem Return vom Stack entfernt ("ret 4")
Sowas meine ich. Insbesondere würde mich derzeit SYS_CopyString interessieren, weil ich überhaupt nicht verstehe, was für ein Wert als Quellstring (also der Wert in edx) angegeben wird (offenbar eine Art Offset von PB_StringBase)... :?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Native PureBasic-Funktionen

Beitrag von Kaeru Gaman »

das ist keine dokumentation, sondern eine dekompilierung.

schreib dir doch nen kleinen code mit den befehlen die dich interessieren, und compiliere mit dem flag /commended
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Re: Native PureBasic-Funktionen

Beitrag von Marvin »

Zur Ausgangslage: Ich möchte mir eine Bibliothek in C basteln, in der diese PureBasic-Funktionen sind. Dazu kompiliere ich den PB-Source sowieso mit /commented (bzw. -c unter Linux) und benutze die Executable gar nicht. Die purebasic.asm kompiliere ich dann selbst zu einer Objektdatei und linke die gegen die C-Bibliothek.
Um diese Bibliothek bauen zu könne, muss ich wissen, wie das Interface dieser Funktionen ist. Weil ich mir den Assemblercode bereits angesehen habe, weiß ich, wie PokeB und PrintN (und einige weitere) funktionieren, aber bei SYS_CopyString sehe ich überhaupt nicht durch.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Native PureBasic-Funktionen

Beitrag von DarkDragon »

Marvin hat geschrieben:Zur Ausgangslage: Ich möchte mir eine Bibliothek in C basteln, in der diese PureBasic-Funktionen sind. Dazu kompiliere ich den PB-Source sowieso mit /commented (bzw. -c unter Linux) und benutze die Executable gar nicht. Die purebasic.asm kompiliere ich dann selbst zu einer Objektdatei und linke die gegen die C-Bibliothek.
Um diese Bibliothek bauen zu könne, muss ich wissen, wie das Interface dieser Funktionen ist. Weil ich mir den Assemblercode bereits angesehen habe, weiß ich, wie PokeB und PrintN (und einige weitere) funktionieren, aber bei SYS_CopyString sehe ich überhaupt nicht durch.
Ja da gab es eine Dokumentation, die wird aber nichtmehr auf dem laufenden gehalten, weil eben das rumgespiele mit den PureBasic internals nichtmehr erwünscht ist (Führt nur unnötig zu Unkompatibilitäten bei Updates).
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Native PureBasic-Funktionen

Beitrag von ts-soft »

SYS_CopyString gehört zum Stringmanager (Stringmanager.lib) und hat keinerlei Parameter.
So ganz verstehe ich nicht, was Du möchtest. Die PB Funktionen liegen doch schon als
statische C-Lib vor, teilweise gepackt (ohne ext.) und teilweise entpackt (stringmanager).
Die Libs kann man theoretisch auch in anderen Sprachen verwenden, was aber wiederum
nicht erlaubt ist.

Oder willste den kompletten Stringmanager nachprogrammieren? Na dann viel Spaß :mrgreen:

Ausserdem mußte ja noch sämtliche Abhängigkeiten auflösen, das wird wohl nichts werden,
es sei denn man verwendet die Orginal mit PB gelieferten Libs, was wiederum nicht erlaubt ist.
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Re: Native PureBasic-Funktionen

Beitrag von Marvin »

ts-soft hat geschrieben:Oder willste den kompletten Stringmanager nachprogrammieren?
Genau das. :wink:

Ich möchte mich doch mal daran setzen, ein OS in PureBasic zu schreiben. Dazu bräuchte ich diese Funktionen natürlich nicht unbedingt (ich könnte ja auch mit der rohen Syntax und ohne eingebaute Funktionen arbeiten), aber schön wäre es schon.

Dass es keine Parameter hat, würde die Sache ja nochmal in ein ganz anderes Licht rücken...
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Native PureBasic-Funktionen

Beitrag von ts-soft »

Marvin hat geschrieben:Dass es keine Parameter hat, würde die Sache ja nochmal in ein ganz anderes Licht rücken...
Guck doch einfach mal in die Stringmanager.lib. Tools dafür gibts doch genüge.

Code: Alles auswählen

_SYS_CopyString@0
sollte dort stehen
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Re: Native PureBasic-Funktionen

Beitrag von Marvin »

Mindestens einen Parameter hat die Funktion aber. Der wird in edx übergeben und ist ein Pointer zum Quellstring. Den kann so ein Tool natürlich nicht erkennen, da es nur die Stackparameter als Parameter erkennen dürfte.

Wobei ich jetzt aus der Assemblerdatei geschlossen hatte, dass noch ein Parameter auf dem Stack übergeben wird und das Ziel angibt. Scheint aber so zu sein, dass das Ziel immer PB_StringBase + PB_StringBasePosition ist. Danke :allright:
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: Native PureBasic-Funktionen

Beitrag von Fluid Byte »

marvin hat geschrieben:Ich möchte mich doch mal daran setzen, ein OS in PureBasic zu schreiben
Bild
Windows 10 Pro, 64-Bit / Outtakes | Derek
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Re: Native PureBasic-Funktionen

Beitrag von Marvin »

Hm, also Interrupts, ProtectedMode und Paging stehen schon mal so weit. Derzeit befinde ich mich am Tastaturtreiber.
Ich könnte natürlich auch einfach weiter Betriebssysteme in C schreiben, aber warum nicht mal mit der Sprache, mit der ich programmieren gelernt habe. <)

Außerdem glaube ich, dass drei Jahre Erfahrung im Bereich Betriebssystementwicklung ausreichend sind, um zu wissen, wie "esoterisch" ein solches Projekt ist. :wink:
Antworten