Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - Rockviech

Seiten: [1]
1
tyndur / Eine kleine Liste des LOST Teams
« am: 11. June 2006, 19:45 »
Hallo,

ich wollte fragen ob es eine möglichkeit sich irgendwie zu beteiligen, auch wenn man net grad so viel ahnung von low level coding hat?

Hab dafür einigermaßen Erfahrung mit C++
auch mit php/mysql bzw webdesign

mfg
2
Lowlevel-Coding / Kernel startet nicht
« am: 03. February 2006, 15:09 »
hm wuerd mich ueber ne antwort sehr frueen  :wink:
3
Lowlevel-Coding / Kernel startet nicht
« am: 02. February 2006, 17:52 »
hab den gleichen fehler
waere mal super wenn jemand sagen koennte wie man dann das ganze zum laufen bekommt, ich suche und suche und finde einfach die antwort (auch hier im forum) nicht!
4
OS-Design / Bootloader ladet Kernel nicht
« am: 21. August 2005, 14:41 »
edit:

nun gehts, hab beide .bin zu ner .img und mit der neusten rawwrite version auf diskette geschrieben

nun gehts einwandfrei
5
OS-Design / Bootloader ladet Kernel nicht
« am: 20. August 2005, 18:29 »
hmm hat keiner ne idee?

also hab mal weiter rumprobiert
mittels

dd if=bootloader.bin  of=/dev/fd0 bs=1440k

kann ich dateien auf diskette schreiben

nun, wenn ich mittels cat bootloader.bin und kernel.bin zusammenschreib bekomm ich das gleiche resultat wie immer

wenn ich bootloader.bin mittels dd auf festplatte schreib und dann einfach kernel.bin dazu kopiere geht garnix

wenn ich beide dateien per dd dazukopiere geht auch wieder nix


wie muss ich denn es jetzt machen?
6
OS-Design / Bootloader ladet Kernel nicht
« am: 20. August 2005, 15:04 »
ich hab se doch mit cat zusammengefuegt

cat bootloader.bin kernel.bin > test.bin

dann mit qemu emuliert aber er fuehrt nur bis zur funktion loadkernel2 aus, dann springt er in die endlossschleife wegen jz kerneload2, falls es nicht geklappt hat

zu den sectoren lesen, das tu ich doch ueber cl?

habs mal so probiert
tut aber genausowenig

loadkernel2:
mov ax, 0x1000 ; position where to load kernel
mov es, ax
mov bx, 0

; read sectors
mov ah, 0x02 ; function to read
mov al, 0x01 ; read 1 sector (512 bytes per sector)
mov cx, 0x02 ; track 0, sector 2
mov cl, 0x01 ; sector to read
mov dx, 0x00 ; head 0, drive 0
int 13h ; load files from bootdrive
jc loadkernel2 ;if error, try again

retn
;===============================;

; jump to the kernel adress
;===============================;
jumptokernel:
mov ax, 0x1000 ;kernel adress
    ; update segmentregisters
mov ds, ax

jmp 0x1000:0x0000
;===============================;
7
OS-Design / Bootloader ladet Kernel nicht
« am: 20. August 2005, 13:50 »
wieso, er soll doch aber von diskette booten und kernel laden, wieso sollte ich dann bootloader weglassen?

die bootloader.bin ist genau 512byte

ich wills ueber qemu halt so emulieren als waere eine diskette drin, also bootloader startet und springt zu kernel
8
OS-Design / Bootloader ladet Kernel nicht
« am: 20. August 2005, 12:50 »
nein hat nix gebracht

es steht immer dran

booting sun os
loading kernel

normal wenn er kernel geladen hat sollte noch dranstehen
kernel loaded

ich denke ich mach beim zusammenfuegen was falsch, wie soll ichs jetzt machen?
beides zu ner .img?
9
OS-Design / Bootloader ladet Kernel nicht
« am: 20. August 2005, 12:12 »
Hi,

ich hab mal eine Frage.
Ich benutze Linux und hab bis jetzt meine .bin dateien immer mittels qemu emuliert

nun da ich aber ja 1 Bootloader und 1 Kernel .bin hab hab ich diese mit cat zusammengefuegt zu test.bin

wenn ich diese jetzt mit qemu emulier arbeitet der irgendwie nur den bootloader ab, springt aber nicht zum kernel

hab schon im forum rumgesucht und da wurde gesagt dass ich nur die bootloader.bin auf diskette schreiben soll und dann die kernel.bin draufkopieren

ne image hab ich ueber yast2 auf die diskette kopiert und danach einfach ueber cp befehl die kernel.bin drauf, da geht aber garnix mehr

naja vielleicht liegt auch der fehler im code

; bootloader

[BITS 16]  ; generate 16 bit code

[ORG 0x7C00] ;loader bootsector in memory

;================
; executable section
;================
main : ; start of main program

cli ; delete interruptflag

; create stack on 0x9000:0000
mov ax, 0x9000
mov ss, ax ; set  stagsegment to 0x9000 (ax)
xor sp,sp
sti ; set interruptflag

mov si, WelcomeStr ; load string
call printtxt   ; display text

mov [bootdrv], dl ; save bootdrive in dl

call loadkernel ; load kernel
call jumptokernel ; jump to the kernel adress



jmp $  ;endless loop // end of main program


;=================
; data section
;=================


WelcomeStr db 'Booting SunOS....',13,10,0 ; loading string
KernelLoadStr db 'Loading Kernel...',13,10,0 ; kernel loading string

bootdrv db 0 ; the bootdrive

printtxt: ; print whole string
mov ah, 0x0E ; char function number
mov bh, 0x00
mov bl, 0x07

nchar: ; load string byte for byte from si register
lodsb ; load byte
or al, al
jz printtxtend ; if 0-Byte = end
int 0x10 ; run bios video to print each letter
jmp nchar ; next byte
printtxtend:
ret


; our kernel loader, loads the kernel from the adress 0x1000

loadkernel: ; load kernel from bootdrive
push ds ; save ds
mov ax, 0 ; reset function
mov dl, [bootdrv] ; bootdrive (reset)
int 13h ; execute interrupt diskdrive reset
pop ds
jc loadkernel ; if it doesnt work try again



loadkernel2:
mov ax, 0x1000 ; position where to load kernel
mov es, ax
mov bx, 0


; read sectors
mov ah, 2 ; function to read
mov al, 5 ; read 5 sectors
mov cx, 2 ; cylinder 0, sector 2
mov dx, 0 ; head 0, drive 0
int 13h ; load files from bootdrive
jc loadkernel2 ;if error, try again

mov si, KernelLoadStr ; load string
call printtxt   ; display text

retn

jumptokernel:
mov ax, 0x1000 ;kernel adress
mov es, ax     ; update segmentregisters
mov ds, ax
push ax
xor ax,ax
push ax



times 512-($-$$)-2 db 0 ; fill rest of sector with zeros
dw 0xAA55 ; boot loader signature


kernel
; kernel

mov ax, 0x1000 ; the kernel adress

; update segment registers
mov ds, ax
mov es, ax


main:

mov si, KernelLoaded ; load text
call printtxt ; display text

jmp main; endless loop

KernelLoaded db 'Kernel loaded...',13,10,0

printtxt: ; print whole string
mov ah, 0x0E ; char function number
mov bh, 0x00
mov bl, 0x07

nchar: ; load string byte for byte from si register
lodsb ; load byte
or al, al
jz printtxtend ; if 0-Byte = end
int 0x10 ; run bios video to print each letter
jmp nchar ; next byte
printtxtend:
ret
Seiten: [1]

Einloggen