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 - Cjreek

Seiten: 1 ... 3 4 [5] 6
81
Lowlevel-Coding / Re: Sektoren von Floppy Disk laden
« am: 09. July 2009, 23:20 »
Hi,

Falls ich dich richtig verstehe.. Du könntest dann halt immer 128 Sektoren auf einen Schlag lesen und dann die CHS werte für den 129. zu lesenden Sektor berechnen und dann ab da weitere 128 Sektoren lesen etc.

Oder hab ich dich falsch verstanden?

Gruß
Cjreek
82
Lowlevel-Coding / Re: Sektoren von Floppy Disk laden
« am: 07. July 2009, 22:50 »
Hi,

Also ich würde dir empfehlen die CHS Werte selbst auszurechnen und dem Interrupt direkt die richtigen Werte zu übergeben. Bei mir funktioniert das wunderbar.

Habe gerade versucht mit dieser Methode 70 Sektoren ab Sektor 1 (= 2. Sektor) zu lesen und das war kein Problem.

Lg
Cjreek
83
Lowlevel-Coding / Re: Sektoren von Floppy Disk laden
« am: 07. July 2009, 09:29 »
Zitat
Sag mir lieber, ob ich bei 63 Sectors anschließend die Heads von 0 auf 1 erhöhen muss oder die Cylinder?

Hi,

Kannst doch LBA 64 in CHS umwandeln. Hab dafür ne Funktion in Assembler geschrieben falls du die brauchst. Ansonsten gehts auch manuell.

http://lowlevel.brainsware.org/wiki/index.php/LBA

PS: Meine Funktion hat für Sektor 64 folgendes ausgerechnet:

C = 1
H = 1
S = 11

PPS: Also meine Funktion kann auch ohne Probleme Sektor 64 oder auch Sektor 80 auslesen :)
84
Offtopic / Re: DAS GEHEIMNIS EURES NICKNAMENS!!!
« am: 02. July 2009, 22:47 »
Hinter diesem Nickname steckt eigentlich nicht viel ...

Das ist der Name meines WoW Chars, der hauptsächlich durch mehr oder weniger blindes Drücken auf der Tastatur zustande kam  :-D
85
Lowlevel-Coding / Re: GRUB und Windows
« am: 11. June 2009, 19:32 »
Hi,

Danke für den Tipp. Das funktioniert :-)
86
Lowlevel-Coding / GRUB und Windows
« am: 11. June 2009, 18:36 »
Hi,

Kann es sein, dass GRUB äußerst sch...lecht auf Windows zum laufen gebracht werden kann?

Habe mir das Tutorial hier durchgelesen und habe jetzt unter Windows das Problem, dass ich folgendes nicht in Windows umsetzen kann

Zitat
Und dann folgendes eingeben:

device (fd0) floppy.img
root (fd0)
setup (fd0)
quit

Ich weiß jedenfalls nicht wie.... Habe auch schon gegoogelt und irgendwelche GRUB Versionen extra für Windows gefunden aber entweder funktionieren die nicht oder/und ich bin zu blöd dafür -.-

87
Das Wiki / Re: Verr�ckter als wir...?
« am: 10. June 2009, 13:24 »
Nur aus Interesse: Wie sieht es mit der CPU aus? Wurde damit angefangen, ist vielleicht sogar was drauß geworden?
88
Lowlevel-Coding / Re: Kernel mit Pascal
« am: 09. June 2009, 23:30 »
Hi,

Wollte jetzt mal GRUB testen. Und habe mir dafür mal einen Dummy Kernel in Pascal geschrieben und die system.pas und die prt0.asm hierher geklaut.

Ich benutze Windows und bekomme meinen Kernel aufs verrecken nicht compiliert -.-

ich compiliere folgendermaßen:

Zitat
fpc.exe pas\kernel.pas -Anasmelf -n -Xd -Rintel -Tlinux

Fehlermeldung:

Zitat
Can't find unit si_prc used by kernel.

Wenn ich "Tlinux" weglasse, dann meint er, dass die sysinitpas fehlt.

Hab das ganze auch schon mit Twin32 und -Anasmwin32 versucht, aber es nutzt nix. Es will einfach nicht. Was mache ich falsch?
89
Lowlevel-Coding / Re: Kleine FAT12 Verunsicherung
« am: 09. June 2009, 09:10 »
Hi,

Wikipedia ist dafür da, um dort alle Episoden von Science-Fiction-Serien nachzulesen, und sich die ausgedachten Technologien erklären zu lassen. Ich weiß gar nicht, wie man auf die Idee kommt, da andere Informationen zu suchen xD

Reine Verzweiflung :-D

Die FAT-Spezifikation findest du hier: http://www.microsoft.com/whdc/system/platform/firmware/fatgendown.mspx

Die hatte ich mir gestern Nacht vorm Schlafengehn sogar noch runtergeladen aber war dann zu müde um noch reinzugucken  :roll:

Da steht, dass eine Clusternummer von 0xFFF das Ende einer Datei bedeutet. Der diesem Eintrag zugeordnete Cluster, beinhaltet also die letzten paar Bytes irgendeiner Datei. Oder vielleicht ist dieser Bereich der Diskette mit zufälligen Daten gefüllt, weil sich gerade keine Datei dort befindet. Ohne die Einträge der Verzeichnisse zu kennen, kannst du darüber keine Aussage treffen. (Edit: Ich natürlich auch nich 8-))

Das klingt doch gleich viel logischer als Wikipedia  :-D  :-)
Also gut. Danke. Werd mir das dann heute mal durchlesen  :wink:
90
Lowlevel-Coding / Kleine FAT12 Verunsicherung
« am: 08. June 2009, 23:02 »
Hi,

Habe mir mit dem Programm MagicISO eine FAT12 Diskette (3,5) als .img erstellen lassen. Und jetzt schaue ich mir gerade die Datei im Hexeditor an weil ich hoffe dadurch etwas schlauer zu werden was FAT12 angeht.

Das hier sind die ersten 16 Bytes der FAT Tabelle:

Zitat
F0 FF FF FF 4F 00 05 60 00 FF FF FF FF 0F 00 00

Habe in Wikipedia gelesen, dass die ersten beiden Einträge Pseudoeinträge sind. Das wären dann ja wohl:

FF0 und FFF. Aber es scheinen ja 3 zu sein oder? Darauf folgt ja noch ein FFF Eintrag. Und dann beginnt es erst bei 004 anstatt bei 003.. Ist das generell so (habe gerade hier keine echte Diskette da) oder irgendeine Besonderheit/Ausnahme oder sogar einfach nur ein Fehler?

Lg
Cjreek

91
Lowlevel-Coding / Re: Aufruf C-Funktionen
« am: 07. June 2009, 03:19 »
Thanks.  :-)

Zitat
Wenn es das gäbe, dann ja.

 :?

Hi,

eip ist ja nicht modifizierbar, bis auf den indirekten Weg durch jumps. Ich glaube das meint er. Also pop/push eip ist in der Praxis nicht möglich.
92
Lowlevel-Coding / Re: Stack funktioniert nicht (rmode)
« am: 03. June 2009, 23:51 »
Sorry für den Doppelpost..

Aber seltsamerweise funktioniert [sp+2] nicht. allerdings auch nur beim stackpointer. Erhalte beim compilieren folgende Meldung von nasm

Zitat
boot.asm:39: error: invalid effective address
93
Lowlevel-Coding / Re: Stack funktioniert nicht (rmode)
« am: 03. June 2009, 23:45 »
Argh -.-^^

Danke für die Aufklärung... 0x7C5A kam mir schon irgendwie verdächtig vor. Hat mich irgendwie an die Startadresse meines Codes erinnert  :roll:

Auf die Idee mit der Rücksprungadresse bin ich natürlich nicht gekommen  :-P
94
Lowlevel-Coding / Stack funktioniert nicht (rmode)
« am: 03. June 2009, 23:25 »
Hi,

Ich bins mal wieder  :-D

Ich hab irgendwie ein Problem mit meinem Stack.... Beim poppen bekomm ich nur scheiße zurück -.-

Ich zeig euch mal etwas Code:

    mov ax, 0    ; etwas ungünstig aber andere segmente gehn auch nicht
    mov ss, ax
    mov sp, 0xFFFF

jetzt der eigentliche Code:
mov dx,1
mov al,1
call floppy_read
; ...

floppy_read:
xor cx,cx
mov es,cx     
mov bx,0x7E00

push dx
call lba_to_chs
; ...
ret

lba_to_chs:
    pop ax
;   Hier kommt nur müll raus ==> 0x7C5A statt 0x0001
;   ...
    ret

 :?
95
Lowlevel-Coding / Re: int13 - Wo sind meine Daten?
« am: 03. June 2009, 19:24 »
Habs raus. Ein bisschen RTFM hilft manchmal  :-D
96
Lowlevel-Coding / int13 - Wo sind meine Daten?
« am: 03. June 2009, 17:29 »
Hi,

Ich versuche so den 2. Sektor meiner (Boot-)Diskette auszulesen.

Zitat
[ORG 0x7C00]

; ...

    mov ax,0x7E00
    mov es,ax   
    xor bx,bx           ; Daten nach 0x7E000 bzw 7E00:0000 lesen
   
    mov al, 1           ; 1 Sektor
    mov ch, 1          ; Spur 1
    mov cl, 1           ; 1 = 2. Sektor ?! (1. Sektor = 0?)
    mov dh, 1         ; Kopf
    mov dl, 0          ; Laufwerk 0 ==> Diskettenlaufwerk

    mov ah, 0x02
    int 13h

; ...

Das eax-Register hat nach dem Aufruf den Wert 00000001h. Also müsste eigentlich alles funktioniert haben und al = 1 Sektor gelesen worden sein.

Das Ende meines Codes sieht so aus:

Zitat
times 510-($-$$) db 0
db 0x55
db 0xAA
test db "Hallo Int13!",0

Wenn ich allerdings nach int13 ein jmp $ setze und dann mit QEMU schaue, was bei 0x7E000 steht, dann wird mir angezeigt, dass da eine 0 steht. Eigentlich müsste es ja 0x48 sein...
97
Lowlevel-Coding / Re: Kernel mit Pascal
« am: 02. June 2009, 23:30 »
Trivial ist hier gar nichts  :-D

Nunja. Ich sehe es als Herausforderung  :-)
Notfalls kann ich immernoch zu GRUB greifen  :wink:
98
Lowlevel-Coding / Re: Kernel mit Pascal
« am: 02. June 2009, 23:13 »
Hi,

Ich wollte eigentlich etwas Abstand von GRUB halten. Nix gegen GRUB. Aber ich würds schon gern selbst probieren.

Auf deutsch heißt das also, dass ich am besten FAT(12) unterstützen sollte/muss und einen ELF/PE Loader in meinem Bootloader, der dann meinen Kernel startet?
99
Lowlevel-Coding / Kernel mit Pascal
« am: 02. June 2009, 22:47 »
Hi,

Das scheint ja eine etwas problematische Sache zu sein. Vorallem wenn man nicht GRUB, sondern einen eigenen Bootloader benutzen will.

Das Problem ist, dass ich mit dem Free Pascal compiler fpc scheinbar keine flat binaries erzeugen kann. Nur ELF oder PE. Und die kann ich ja nicht laden/benutzen.

Ich stehe also gerade etwas blöd da  :|

Das andere Problem ist:

Zitat
nasm boot.asm -f bin -o boot.o
==>
Zitat
boot.asm:43: error: binary output format does not support external references

Fehlermeldung kommt wegen [extern kernel_main] in meinem asm Code. Das brauche ich ja. Sonst kann ich ja nicht in meinen Kernel springen -.-

Was heißt das jetzt für mich?
100
Lowlevel-Coding / Re: Aufbau der GDT
« am: 02. June 2009, 18:00 »
Ja ich meinte auch die in dem Base = 0, Limit = 0xFFFFFF Fall nicht vorhandene Segmentierung würde dann durchs Paging ersetzt.

Erst zu segmentieren und dann Paging einzubauen wäre natürlich etwas unsinnig.
Seiten: 1 ... 3 4 [5] 6

Einloggen