Delphi/Pascal Programm booten?
Hallo Welt,
ich habe ein kleines simples Programm:
Delphi-Quellcode:
Nun möchte ich dieses Programm zu einem Mini-Betriebsystem umwandeln.
program simple;
begin writeln('Welcome!'); end; Also was muss ich mit dem Programm anstellen damit ich es (in welchem Format auch immer) auf CD brennen kann und beim booten von dieser CD, der Computer mich mit "Welcome!" begrüßt? Vielen Dank im voraus! |
Re: Delphi/Pascal Programm booten?
Zitat:
Kennst Du BartPE? Das wirst Du dafür brauchen! Delphi-Programme sind auf Windows angewiesen, mal eben eine "Hello World"-Anwendung zu einem BS umzuschreiben ist mit Delphi nicht (mal eben [wenn überhaupt]) möglich. |
Re: Delphi/Pascal Programm booten?
Zitat:
|
Re: Delphi/Pascal Programm booten?
Hi,
also BartPE kenn ich nicht :-( Und was ist wenn ich das mit einem Pascalprogramm machen möchte also nicht Borland Delphi sonder Free Pascal nutze? Zitat:
|
Re: Delphi/Pascal Programm booten?
Zitat:
Fazit: vergiss es ganz schnell wieder! :stupid: Edit: BartPE |
Re: Delphi/Pascal Programm booten?
:-(
|
Re: Delphi/Pascal Programm booten?
ich habe für den zweck damals eine stinknormale DOS- (bzw. win9x-) Startdiskette als bootsektor verwendet. bisschen modifiziert (io.sys gepatched damit im Menü nicht mehr Win98 Startmenü steht), paar treiber hinzugefügt etc. der Rest lag normal auf der cd und konnte über ein menü gestartet werden, welches von der Autoexec.bat gestartet wurde.
ist halt normaler dos-modus, was natürlich nicht geht ist das ausführen von delphi-programmen und starten von Windows ohne reboot, nachdem von cd gestartet wurde.. Threads á la "wie schreib ich ein Betriebssystem in delphi" gibts schon einige, wo überall steht dass es mit delphi nicht geht, da dieses auf Windows-Routinen (winAPI) aufbaut. um ein OS zu erstellen brauchst du erstmal fundiertes wissen, ASM-Kenntnisse und danach kommt man mit C/C++ weiter HTH Frank |
Re: Delphi/Pascal Programm booten?
Assembler, C und C++ sind sicherlich die verbreitetesten Ansätze, MacOS (die alten Versionen) immerhin ein gutes Beispiel für ein Betriebssystem, das Pascal bevorzugt hat, und heute gibt es imho zwei oder drei Betriebssystemansätze, die auf FreePascal aufsetzen. DelphineOS z.B., "einfach mal" auf SourceForge in die Quelltexte schauen, ein paar Monate bis Jahre Urlaub nehmen, ... :mrgreen:
|
Re: Delphi/Pascal Programm booten?
Du kannst dir auch das hier mal anschauen, da hat jemand (der glaub ich auch hier im Forum aktiv ist/war - kann mich aber auch irren), die Probleme und das Für-und-Wider eines DelphiOS, bzw. Delphikernels genauer beleuchtet. Ohne fundierte Assemblerkenntnisse (und natürlich auch der PC-Architektur) kommt man da aber nicht weit.
Da is man schon ein "Weilchen" dran. Alles in allem: Träum davon, pack aber lieber andere Sachen an ;) Edit (Roter Kasten): @CCRDude: Muss ich mir glatt mal anschauen :mrgreen: Edit: *DelphineOS angeschaut hat* Jupp... das dauert ne Weile des zu verstehen. :shock: Da verkrümel ich mich doch besser wieder zu OpenGL :mrgreen: |
Re: Delphi/Pascal Programm booten?
Man kann auch FreeDOS auf ner BootDiskette installieren
und dann mit FreePascal ein kleines Welcome Programm programmieren, welches in der autoexec.bat (oder wie die dort heißt) automatisch gestartet wird. Geht zwar ohne Delphi, dafür in Pascal. FreeDOS muss man vorher in einer VM installieren und dann mit format a: /s (oder so) eine Bootdisk erstellen. |
Re: Delphi/Pascal Programm booten?
hi,
wenn du wirklich ein Delphi Programm (von einem eigenen Bootloader natürlich) booten lassen willst, sollte dein Bootloader das PE-Format auswerten können und für Delphi brauchst du eine eigene System.pas, um alle WinAPI-Aufrufe zu verbannen. Natürlich funktioniert dann dein Writeln nicht mehr und du musst direkt auf den Videospeicher zugreifen, bzw. selbst alle Funktionen schreiben. Alles in allem für Anfänger nichts sinnvolles, eigne dir lieber erst einmal ein paar Grundkenntnisse an und setze dir leichtere Ziele :) (deutschsprachige Infos z.B. auf Lowlevel). Ansonsten kannst du wie bereits erwähnt, einfach MS DOS oder FreeDOS hernehmen und dann ein 16-Bit Programm mit Turbo Pascal oder FreePascal erstellen und ausführen lassen. Viel Spaß :zwinker: Grüsse, Stefan |
Re: Delphi/Pascal Programm booten?
FreeDOS ist IMHO auch 32 bittig.
|
Re: Delphi/Pascal Programm booten?
Zitat:
|
Re: Delphi/Pascal Programm booten?
In 16 Bit mag das gehen, ab 32 Bit allerdings nichtmehr
|
Re: Delphi/Pascal Programm booten?
Zitat:
|
Re: Delphi/Pascal Programm booten?
Übrigens danke JamesTKirk für Deinen Link dort, die Mini-System/SysInit find ich ganz nett um mal ein bißchen "native" zu spielen wieder ;)
|
Re: Delphi/Pascal Programm booten?
Bitte, bitte... den hatte ich vor einger Zeit mal gefunden und in meinem Gedächtnisspeicher reingestopft, als ich mich mal selbst mit dem träumerischen Gedanken ein eigenes OS zu schreiben rumgespielt hab. :mrgreen:
|
Re: Delphi/Pascal Programm booten?
Zitat:
Sein Bootloader ist zwar nicht in Delphi sondern in Assembler, aber damit sollte sich ohne Probleme ein einfacher String beim Booten ausgeben lassen. (Titel: Re: Maschinensprache und Assembler - ein kleines Beispiel, wenn Du auf den 1. Beitrag in dem Tutorial gehst, findest Du eine kleine Einführung in Assembler.)
Code:
...
load_stage2: /* hier wird der Text msg_load ausgegeben (msg_load: .ascii "Loading stage 2...\x0d\x0a\x00") */ mov si, offset msg_load call print_string /* hier stoppt der Bootloader -> der PC steht und macht dann gar nix mehr :-) */ jmp halt ... |
Re: Delphi/Pascal Programm booten?
hi,
Muetze1: Direkt auf den Videospeicher deshalb zugreifen, weil der BIOS Code nur als 16 Bit Code vorliegt und man ihn deshalb nicht im 32-Bit Mode verwenden kann. Grüsse, Stefan |
Re: Delphi/Pascal Programm booten?
Zitat:
Ausserdem ist es mit V86 nicht das Problem auch diesen Code in anderen Modien als RM diesen auszuführen. |
Re: Delphi/Pascal Programm booten?
hallo,
ja wenn du im PMode bist, kannst du keine BIOS-Interrupts aufrufen, außer du benutzt V86, aber das dürfte dann um einiges schwieriger sein als direkt auf den Videospeicher zuzugreifen (das man bequem per Array einrichten kann). Man kann im RealMode (16-Bit) vielleicht 32-Bit Register ansteuern aber nicht wirklich viele 32-Bit Befehle ausführen lassen, denke ich :) Grüsse, Stefan |
Re: Delphi/Pascal Programm booten?
Hallo,
was es jemanden interessiert. Schaut mal ins flatassembler board. Dort gibt es einen eigenen Thread über OS Loader/Installer in Assembler. Auch interessant warscheinlich eines der besten und modernsten Assembler (FASM). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz