kostenloser Webspace werbefrei: lima-city


Os Programmierung

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. Autor dieses Themas

    arpi

    arpi hat kostenlosen Webspace.

    Hi,
    ich hab das Tut auf tutorials gelesen nur der NASM geht net ich kann damit nix COmpilieren :(
    kann we rhelfen?
    kernel.asm
    ax, 1000h
    mov ds, ax
    mov es, ax

    start: ; Hier f?ngt unser eigentliches "Betriebssystem" an
    mov si, nachricht ; Wir zeigen einfach nur einen String an
    call schreiben ; "schreiben" gibt den String am Bildschirm aus

    call lesen ; "lesen" wartet bis eine Taste gedr?ckt wurde
    jmp reset ; Danach wird die Funktion "reset" aufgerufen

    nachricht db "Eine Taste dr?cken, um neu zu starten...",13,10,0

    schreiben:
    lodsb
    or al, al
    jz short schreiben_d
    mov ah, 0x0E
    mov bx, 0x0007
    int 0x10
    jmp schreiben

    schreiben_d:
    retn
    lesen:
    mov ah, 0
    int 016h
    ret
    reset:
    db 0Eah
    dw 0000h
    dw 0FFFFh
    Arpi
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Das ist ganz einfach :cool: Das ist sicher der Kernel von Lowlevel, wenn ich mich nicht t?usche. Du musst ihn im Verzeichnis des NASM speichern unter kernel.asm und dann erstellst du am besten ein Batch Datei mit folgenden Inhalt, wenn du schon den Bootloader im selben Verzeichnis unter boot.asm gespeichert hast:

    nasm -f bin -o boot.bin boot.asm
    nasm -f bin -o kernel.bin kernel.asm

    Jetzt hast du zwei Bin Dateien und die kopierst du jetzt unter Windows so zusammen:

    copy boot.bin + kernel.bin myOS.raw

    Jetzt brauchst du soein Programm wie Rawrite und diese myOS.raw auf die Diskette schreiben. Wenn du noch fragen hast, dann frag mich :cool:

    MfG Dominik
  4. Autor dieses Themas

    arpi

    arpi hat kostenlosen Webspace.

    ok bin noch ma da :)
    der will den kernel.asm nicht verarbeiten der kommt gar nicht :(
  5. s********r

    Ich habe selber auch mal so ein kleines Versuchsbetriebssystem in Assembler geschrieben. Bei mir ist alles Fehlerlos gegangen. Vielleicht liegt das Problem an deiner NASM version ich verwende selber "nasm-0.98.39-djgpp" Du kannst diese Version hier runterladen http://freedos.wermlandsdata.com/files/devel/asm/nasm/nasm-0.98.39-djgpp.zip

    Probiers mal damit, da funktioniert alles (asm-> bin/ bin+bin-> img)

    Hoffe, damit klappts!
  6. Ok, ich erkl?r mal alles von vorne. Du holst dir den Netwide Assembler wie mein Vorposter schon gesagt hat und dann Rawrite oder ein anderes Diskettenimageschreibprogramm oder du machst soein Programm. Hier habe ich eine Seite rausgefunden: http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm (RAWRITE).

    Dann erstellst du kernel.asm:
    kernel.asm
    mov ax, 1000h ; Segmentregister updaten
    mov ds, ax
    mov es, ax

    start:
    mov ax, 0013h ; Modus 13h einrichten
    int 10h

    mov ax,193
    mov ah,0x0C
    mov cx,1
    mov dx,1
    int 0x10

    call getkey ; Warte auf einen Tastendruck
    jmp reboot ; Reboot

    msg db "Willkommen zum Test-Betriebssystem",13,10,0
    msg_boot db "Druecke belibige Taste...",10,0

    putstr:
    lodsb ; Byte laden
    or al,al
    jz short putstrd ; 0-Byte? -> Ende!
    mov ah,0x0E ; Funktion 0x0E
    mov bx,0x0007 ; Atrribut-Byte
    int 0x10 ; schreiben
    jmp putstr ; n?chstes Byte

    putstrd:
    retn

    getkey:
    mov ah, 0 ; Funktion 0
    int 016h ; Ausf?hren
    ret

    reboot:
    db 0EAh
    dw 0000h
    dw 0FFFFh


    Und erstellst noch boot.asm:

    boot.asm
    org 0x7C00 ; Unsere Startadresse

    start:
    ; Erst brauchen wir einen Stack.
    cli ; Keine Interrupts!
    mov ax, 0x9000 ; Stackadresse
    mov ss, ax ; SS = 9000 (unser Stack)
    mov sp, 0 ; SP = 0000 (der Stackpointer)
    sti ; Interrupts zulassen

    ; Bootlaufwerk aus DL speichern
    mov [bootdrv], dl

    ;Lade unseren Kernel
    call load

    ;Springe zu diesem Kernel
    mov ax, 0x1000 ; Die Adresse des Programms
    mov es, ax ; Segmentregister updaten
    mov ds, ax
    push ax
    mov ax, 0
    push ax
    retf

    ; ----------------------------------------------
    ; Funktionen und Variablen
    ; ----------------------------------------------

    bootdrv db 0 ;Das Bootlaufwerk
    loadmsg db "Loading...",13,10,0

    ; Einen String ausgeben:
    putstr:
    lodsb ; Byte laden
    or al,al
    jz short putstrd ; 0-Byte? -> Ende!

    mov ah,0x0E ; Funktion 0x0E
    mov bx,0x0007 ; Attribut-Byte (wird nicht ben?tigt)
    int 0x10 ; schreiben
    jmp putstr ; N?chstes Byte
    putstrd:
    retn

    ; Lade den Kernel vom Bootlaufwerk
    load:

    ; Diskdrive reset (Interrupt 13h, 0)
    push ds ; Sichere DS
    mov ax, 0 ; Die gew?nschte Funktion (reset)
    mov dl, [bootdrv] ; Dieses Laufwerk ist gew?nscht
    int 13h ; Den Interrupt ausf?hren
    pop ds ; DS wiederherstellen
    jc load ; Geht nicht? -> Noch mal!

    load1:
    mov ax,0x1000 ; ES:BX = 10000
    mov es,ax
    mov bx, 0

    ; Sektoren lesen (Interrupt 13h, 2)
    mov ah, 2 ; Funktion 2 (Lesen)
    mov al, 5 ; Lese 5 Sektoren
    mov cx, 2 ; Cylinder=0, Sector=2
    mov dx, 0 ; Head=0, Laufwerk=0
    int 13h ; ES:BX = Daten vom Laufwerk
    jc load1 ; Fehler? Noch mal!
    mov si,loadmsg
    call putstr ; Meldung ausgeben
    retn

    times 512-($-$$)-2 db 0 ; Dateil?nge: 512 Bytes
    dw 0AA55h ; Bootsignatur


    Jetzt erstellst du im selbigen Verzeichnis, also wo der Netwide Asm und die Quelltexte sind eine Batch Datei z.B. Build.bat:

    Build.bat
    nasm -f bin -o boot.bin boot.asm
    nasm -f bin -o kernel.bin kernel.asm
    copy boot.bin + kernel.bin myOS.raw
    rawrite

    Jetzt musst du nur noch bei Rawrite eine Diskette einlegen, Laufwerk a w?hlen und myOS.raw hinschreiben und Enter dr?cken. Dann wartest du bis dort "Done" steht. Jetzt startest du dein Computer neu und siehst die Bootmessage :cool:

    Das war alles. Das ist auch mein alter Kernel...
    MfG Dominik

    PS: Sorry, aber da kommt keine Bootmessage, sondern da wird der Grafikmodus 13h eingestellt. Aber du kannst da auch dein Kernel reinkopieren.

    Beitrag ge?ndert am 18.09.2005 11:13 von javadomi
  7. Autor dieses Themas

    arpi

    arpi hat kostenlosen Webspace.

    ok :) wer ich gleich machen :)
    aber kann man das auch einen USB Stick speiuchen?
    mein Disk laufwerk ist durch :( und will net immer zum Bruder rennen "darfi ich mal"...
    weil ne Disktett ekann man dann nicht mehr lesen unter windows

  8. ok :) wer ich gleich machen :)
    aber kann man das auch einen USB Stick speiuchen?
    mein Disk laufwerk ist durch :( und will net immer zum Bruder rennen "darfi ich mal"...
    weil ne Disktett ekann man dann nicht mehr lesen unter windows


    Auf einen USB Stick? Ich glaube er hat andere Gr??en in den Sektoren. Das wird wohl nicht gehen. Du k?nntest es aber auf die Festplatte machen. Aber das, was ich dir da hingeschrieben habe ist optimiert f?r eine Diskette, deshalb sollte man auch eine benutzen.
  9. s********r

    Nein, auf einem USB-Stick geht das nicht!

    @javadomi
    Ja, es ist m?glich, das Betriebssystem auf die Festplatte zu machen. Aber das solltest du besser nicht!!!!! Denn wenn du etwas falsches programmiert hast oder wenn beim Speichern ein Fehler auftritt, kannst du gerade deinen ganze PC wegschmeissen... Es w?re n?mlich m?glich, dass du dadurch nicht mehr an dein urspr?ngliches Betriebssystem rankommst und das ist sicher nicht in deinem Intresse! Besorge dir doch einfach einen sehr alten PC (Der kann ruhig zehn Jahre alt sein) und teste dein Betriebssystem darauf! Und wenn dann alles fehlerlos klappt kannst du dein System immer noch auf deine Festplatte installieren.

  10. Ja, es ist m?glich, das Betriebssystem auf die Festplatte zu machen. Aber das solltest du besser nicht!!!!! Denn wenn du etwas falsches programmiert hast oder wenn beim Speichern ein Fehler auftritt, kannst du gerade deinen ganze PC wegschmeissen... Es w?re n?mlich m?glich, dass du dadurch nicht mehr an dein urspr?ngliches Betriebssystem rankommst und das ist sicher nicht in deinem Intresse! Besorge dir doch einfach einen sehr alten PC (Der kann ruhig zehn Jahre alt sein) und teste dein Betriebssystem darauf! Und wenn dann alles fehlerlos klappt kannst du dein System immer noch auf deine Festplatte installieren.


    Naja, vorher muss man sein Kernel getestet haben, sodass er 100% fehlerlos sein muss. Ich habe auf meiner Festplatte mein altes DooS, und bin damit sehr zufrieden :biggrin: Ich finde, dass es das beste Betriebssystem ist, DENN man kann Dateien erstellen, die 32656 Zeichen in den Namen haben, es hat das kompressierte Doos Bildformat und man kann mit den Doos Browser ins Internet gehen, aber leider noch nicht Formulare verschicken. :biggrin:

    Zum Thema: Man sollte es schon erstmal auf einer Diskette testen. An deiner Stelle w?rde ich mir z.B. bei eBay f?r 5? ein neues Diskettenlaufwerk kaufen, dann kannst du das Betriebssystem weitermachen.

    MfG Dominik
  11. Autor dieses Themas

    arpi

    arpi hat kostenlosen Webspace.

    achso ... hmm kan mir wer dieses Sys Complimieren?
    und schicken?
    bei mir gehts net :((((
    ok werd ma schaun ob einer von meinen alten saukisten noch funktionieren *gg*
    kann man das auch auf einem Amiga A-500 Installieren?
  12. Ok, sag mal genauer. Was f?r Fehler kriegst du denn? Gebe nicht auf :angel: Wir helfen dir!

    MfG Dominik
  13. s********r

    Speichere es doch einfach mal auf Lima und gib hier einen Link dazu an, dann k?nnte ichs dir mal compilieren. Oder schicks mir doch einfach mal per PN!
  14. Es gibt doch unter http://lowlevel.brainsware.org/ eine komplette Anleitung dazu. Wenn du willst, kann ich es auch f?r dich kompilieren oder dir die n?tigen Compiler und Linker per E-Mail schicken.

    MfG Dominik
  15. Autor dieses Themas

    arpi

    arpi hat kostenlosen Webspace.

    zur Fehlermeldung:
    der bringt nix... und a erstellt der auch keine Datei :(
    @Sebi ich kanns mal schicken hast du deine Mail da?
    @java ok :) werd gleich mal schaun :)
    Arpi
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!