Autor Thema: Buildnummer automatisch erhöhen / GUI im Real Mode  (Gelesen 5261 mal)

Biehler Productions

  • Beiträge: 51
    • Profil anzeigen
    • http://bielos.de.tk
Gespeichert
« am: 18. August 2006, 12:32 »
Hi,
ich habe beschlossen, in meinen programmen ab sofort die Versionierung, wie sie auf Wikipedia beschrieben ist, zu verwenden.
Nur ist es ziemlich mühselig, bei jeder Kompilation einen Zähler zu erhöhen.
Gibt es ein programm, oder ein Stück Code, der mir diese Arbeit abnimmt?
Hinweis:
Ich brauche es in Assembler (FASM).
Gibt es eventuell dafür sogar vorgefertigte Makros?

Und 2. Frage:
Mein kernel läuft nun soweit stabil.
Nun habe ich mir Gedanken gemacht über eine GUI.
Dafür würde ich im Real Mode den Grafikmodus 13H benutzen.
Mich würde nun interessieren, ob es im RM überhaupt sinnvoll ist, eine GUI einzubauen?

Ich habe mir gedacht, eine GUI zu benutzen, wie sie z.b. der DOS Editor edit.com hat oder die meisten Borland Produkte, z.b. Turbo C(++) Compiller.

Es gäbe dann eventuell eine Startleiste ähnlich in Windows.
Es kann halt dann immer nur ein Programm gestartet werden.

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 18. August 2006, 14:30 »
Ich habe keine Ahnung wie bei Wiki Versioniert wird, aber mit dem Macroprozessor von Fasm sollte das kein Problem sein.

Ob du eine GUI in einem OS benötigst hängt nicht mit dem RM zusammen.
Mal als ganz einfach Frage: Benötigst du ein GUI oder willst du eins programmieren? Dann mach es doch einfach!
Man kann eine GUI auch ohne Multitasking realisieren. So ne Art Auswahlmenü welches Programm er starten soll.
db 0x55AA

Biehler Productions

  • Beiträge: 51
    • Profil anzeigen
    • http://bielos.de.tk
Gespeichert
« Antwort #2 am: 18. August 2006, 18:05 »
Zitat von: Osbios
Ich habe keine Ahnung wie bei Wiki Versioniert wird, aber mit dem Macroprozessor von Fasm sollte das kein Problem sein.


Ich mein da shier:
http://de.wikipedia.org/wiki/Versionierung

Dass ich also meinem OS eine Versionsnummer wie
    Hauptversionsnummer.Nebenversionsnummer.Revisionsnummer-Buildnummer

verpasse.

Ich hab ja keine Ahnung, wie ich das dem FASM sagen soll  :(

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 18. August 2006, 18:52 »
Moin

kannst du nicht externe dateien im asm einbinden? dadurch könntst du die nummer extern generieren lassen. z.B. durch ein Tool, das während des make aufrufs aufgerufen wird, und die datei generiert ( ausliest und neu schreibt ).

In komplexeren systemen, wird so eine nummer automatisch bein checkout  oder Checkin generiert.

gruss

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #4 am: 18. August 2006, 19:42 »
Hi,

möchtest du im RM bleiben? Auch im RM kannst du bessere Grafik verwenden als ein blöder 80*25 Textmodus wie in EDIT (ist ja eigentlich keine Grafik). Du kannst den Modus 13h benutzen, der hat allerdings nur 320*200 Pixel mit 256 (gleichzeitig zu verwendeten) Farben. Oder du nimmst VESA. Damit kannst du selbst im RM mehr als 320*200 Pixel verwenden. Außerdem kannst du im RM auch Multitasking verwenden. Halt ohne TSS und ohne Privilegien. Aber Multitasking ist möglich.

bitmaster
In the Future everyone will need OS-64!!!

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 18. August 2006, 21:24 »
VESA im Realmode ist aber einiges komplizierter als im Protected Mode,
dann kann man immer nur einen Teil des Bildschirms gleichzeitig beschreiben (1/4 oder 1/16 wars)

dann lieber VGA mit 320x200 und 256 Farben. oder 640x480 und 16 Farben

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #6 am: 18. August 2006, 21:49 »
Zitat von: scales of justice
VESA im Realmode ist aber einiges komplizierter als im Protected Mode,
dann kann man immer nur einen Teil des Bildschirms gleichzeitig beschreiben (1/4 oder 1/16 wars)

dann lieber VGA mit 320x200 und 256 Farben. oder 640x480 und 16 Farben
Also komplizierter schon, aber wenn er im RM bleiben möchte. Außerdem ist es doch egal ob komplizierter oder nicht. Hauptsache man weiß wie. Danach ist es doch egal ob alles aufeinmal geschrieben wird oder net. Man baut sich halt Unterfunktionen etc.

bitmaster
In the Future everyone will need OS-64!!!

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 18. August 2006, 22:04 »
ja schon, wollt nur anmerken dass ich bei dem aufwand VGA für sinnvoller halte

so kompliziert ists ja auch nicht, sobald man die Funkion fertig hat die alles auf den Bildschirm schreibt,
kann einem das sowiso egal sein

aber das ist auch ziemlich langsam und kostet einen Haufen Speicher,
Auflösungen über 800x600 kann man vom Speicher her vergessen (auch 800x600 kostet ja schon ca. die Häfte mit 256 Farben)

den mehraufwand bei der Performance und dem Gewinn halt ich nicht grade für sinnvoll

Biehler Productions2

  • Beiträge: 47
    • Profil anzeigen
    • http://biehlos.biehler-josef.de
Gespeichert
« Antwort #8 am: 19. August 2006, 21:08 »
Zitat von: Termite
Moin

kannst du nicht externe dateien im asm einbinden? dadurch könntst du die nummer extern generieren lassen. z.B. durch ein Tool, das während des make aufrufs aufgerufen wird, und die datei generiert ( ausliest und neu schreibt ).


Danke. An sowas habe ich gar nicht gedacht.
Werd ich mir demnächst mal anfertigen.

Zitat von: bitmaster

möchtest du im RM bleiben? Auch im RM kannst du bessere Grafik verwenden als ein blöder 80*25 Textmodus wie in EDIT (ist ja eigentlich keine Grafik). Du kannst den Modus 13h benutzen, der hat allerdings nur 320*200 Pixel mit 256 (gleichzeitig zu verwendeten) Farben. Oder du nimmst VESA. Damit kannst du selbst im RM mehr als 320*200 Pixel verwenden. Außerdem kannst du im RM auch Multitasking verwenden. Halt ohne TSS und ohne Privilegien. Aber Multitasking ist möglich.

Auch wenn du es nicht mehr liest:
Ich habe ja geschrieben, dass ich den Modus 13h benutzen würde ;)
VESA ist mir zu kompliziert, der Modus 13h wird auf 2 Seiten erklärt, VESA wird wohl ein zigfaches an Seiten brauchen  :D

Biehler Productions2

  • Beiträge: 47
    • Profil anzeigen
    • http://biehlos.biehler-josef.de
Gespeichert
« Antwort #9 am: 25. August 2006, 12:53 »
Hi,
ich habe jetzt bemerkt, dass 320x200 eine zu kleine Auflösung ist.
Nu interessiere ich mich für 640x480 (256 Farben), da dieser anscheinend so wie der 320x200 Modus addressiert wird.
(Der Modus 12h ist mir bis jetzt zu kompliziert)

Ich habe dazu nun folgendes in der Google Group gefundne:
http://groups.google.de/group/de.comp.lang.assembler.x86/browse_frm/thread/96ccc2dba9dde69a/2650564e9a64003e?lnk=st&q=640x480x256&rnum=1&hl=de#2650564e9a64003e

Wie kann ich diesen Modus aktivieren?
Mov AX, 002EH
Int 10h
funktoniert scheinbar nicht, da dann BOCHS überhaupt nix macht.
Auch keine Fehlermeldung.

Und ist dieser Modus standard auf den meisten (Super) VGA Grakas?

edit:

und andere Frage:
Angenommen ich benutze den Modus 12h.
Die Addressierung der Pixel per HAnd ist ja ziemlich blöde.
Wenn ich nu den Bios Int 10H/ AH=0CH benutze, der mir einen Pixel an irgendeine Position zeichnet, würde das meine GUI stark verlangsamen?
Und wieso sind BIOS INTs allgemein als so langsam verrufen?

Biehler Productions2

  • Beiträge: 47
    • Profil anzeigen
    • http://biehlos.biehler-josef.de
Gespeichert
« Antwort #10 am: 26. August 2006, 09:09 »
OK. Wer suchet, der findet.


mov ax, 4f02h
mov bx, 100h
int 10h

 

Einloggen