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

Seiten: 1 [2] 3
21
Lowlevel-Coding / PM funzt wieder mal net
« am: 14. August 2005, 02:21 »
ja, das kam mir nach dem studieren der NASM referenz auch in den sinn ;) danke, jetzt funzt der code. das FDD reagiert, mal sehen ob ich nun meine sektoren ausgelesen bekomme. ich meld mich wieder wenns klappt.
werd mich mal kurz in den DMA kram einarbeiten dann sehen wa weiter
22
Lowlevel-Coding / PM funzt wieder mal net
« am: 14. August 2005, 00:00 »
rofl ey da will man mal nen FDC treiber coden und dann pisst sich NASM bereits bei den OUT-Befehlen an:

;general FDC setup
out 0x3F2, 00000000b ;floppy drive A:
out 0x3F7, 0x00 ;1.44" floppy disk

;read sector
out 0x3F5, 01010110b ;command: read sector; read, MFM
out 0x3F5, 00000000b ;floppy drive A:

mov al, byte [Track]
out 0x3F5, al ;track

mov al, byte [Head]
out 0x3F5, al ;head

mov al, byte [Sector]
out 0x3F5, al ;sector

out 0x3F5, 2 ;sector size = 128 * 2² = 512
out 0x3F5, 18 ;sectors per track
out 0x3F5, 0x1B ;GAP3 length
out 0x3F5, 0xFF ;unused


argh!
Zitat von: NASM
ERROR: invalid combination of opcode and operand


heut klappt ech garnix :-({|=
23
Lowlevel-Coding / PM funzt wieder mal net
« am: 13. August 2005, 22:42 »
näääh wenn schon denn schon :P

mh ich weiß dass hier im forum mal die adresse einer website gepostet wurde wo was über FDD controller und dessen programmierung etc. stand. hat keiner ne ahnung welche seite ich meine ?! ich hab meinen pc formatiert, daher mussten die meisten links aus meiner liste weichen
24
Lowlevel-Coding / PM funzt wieder mal net
« am: 13. August 2005, 22:35 »
hmm aber ich wollte den kernel gerne überhalb bzw. genau auf die 1MB-Marke laden. irgendwelche vorschläge ?
25
Lowlevel-Coding / PM funzt wieder mal net
« am: 13. August 2005, 21:48 »
Moin, erstmal danke für die Tips, jetzt funktioniert es.
Aber nur wenn ich es direkt im Bootloader mache. Hat jemand ne Ahnung warum ? Weil jetzt weiß ich net weiter, wie ich den Kernel laden soll, so ganz ohne Interrupts :P und ich glaub für nen Floppydrive is der bootsektor n bissel zu klein, oder ?!

achja es gab mal so ne seite, hab leider vergessen wie die heißt, die war ziemlich farbenfroh, da gabs so linuxkram und ein paar tutos wie man z.B. nen floppydriver schreibt. weiß evtl. wer welche seite ich meine ? kann er mir den link dafür geben ?
26
Lowlevel-Coding / PM funzt wieder mal net
« am: 13. August 2005, 00:37 »
Mensch nu lasst einen armen verwahrlosten Coder doch net so hängen :cry:  :wink:

Der Bootloader lädt den Kernel an 0x0190 in den Speicher. Der Kernel prüft dann nur noch schnell ob ein 386 vorhanden ist, aktiviert A20 und dann kommt der PM ins Spiel (soll er zumindest :( )
27
Lowlevel-Coding / PM funzt wieder mal net
« am: 12. August 2005, 14:49 »
Beim Tuto war keine Config dabei. Glaube auch nicht dass es daran liegt, wenn ich die Disk ins Laufwerk lege und neu starte lädt er kurz meinen Bootloader, gibt irgendeinen Müll auf dem Bildschirm aus und startet wieder neu.

@joachim_neu: Ja.
28
Lowlevel-Coding / PM funzt wieder mal net
« am: 12. August 2005, 14:39 »
aha. das hilft mir jetzt net wirklich weiter. ich mein ich hab den code 1:1 übernommen. woran liegt es dass es net funzt ?
29
Lowlevel-Coding / PM funzt wieder mal net
« am: 12. August 2005, 14:12 »
Moin,
nach langer Zeit hab ich wieder mein OS rausgekramt um daran weiter zu machen. Aber nun soll das ganze endlich im PMode laufen. Tut es aber nicht.

Ich habe den Code aus dem PM Tuto als Kernel genommen, der auszuführende Code nachdem in den PM geschaltet werden soll ist einfach nur JMP $. Bochs liefert mir aber immer diesen Fehler:
prefetch: getHostMemAddr vetoed direct read, pAddr=0x000a0000
Habt ihr ne Ahnung was ich falsch mache ? Der Kernelcode ist 1:1 die Kernel16.asm - File aus dem Tut.

Irgendwie hab ich bislang noch kein Glück mit den PM Geschichten gehabt :(
30
Lowlevel-Coding / Lüfterdrehzahl auslesen ?!
« am: 23. March 2005, 13:29 »
Aha. Das hilft mir jetzt net wirklich weiter.
Weiß nicht jemand etwas konkreteres ??
31
Lowlevel-Coding / Lüfterdrehzahl auslesen ?!
« am: 22. March 2005, 01:44 »
Moin

Ich wollte mal fragen, wie man die Drehzahl des CPU-Lüfters auslesen kann ? Über einen Port ?

Wäre über Antworten sehr dankbar.
32
Lowlevel-Coding / FAT12 FileIO
« am: 05. March 2005, 13:30 »
Bei mir gehts auch nicht !!
33
Lowlevel-Coding / Reboot unnd Ausschalten im pm
« am: 01. March 2005, 20:08 »
Oben im Code den Block wo APM powerdown dransteht nehmen :roll:
34
OS-Design / Aussehen des kompletten RAMs
« am: 01. March 2005, 18:09 »
Argh ! Ich blick durch den f***ing PM einfach nicht durch und Bochs hängt sich jedes Mal auf wenn ich irgendwelche Codebeispiele ausprobiere :evil:

Ok, aber man kann ja schon mal vorsorgen. Ich hab mir jetzt vorgenommen, alle INTs selber zu coden, keine BIOS-Ints mehr !
Daher nochmal die Frage: Wo finde ich Codes um das Floppy Drive über Ports steuern zu können ? :?:

Ich hoffe jemand von euch kann mir helfen, danke schon mal :)
35
Lowlevel-Coding / Reboot unnd Ausschalten im pm
« am: 28. February 2005, 22:40 »
Moin, hier mal ein Auszug aus meinem Kernelcode

MOV AX,0x5300                ;APM powerdown
XOR BX,BX
INT 0x15
MOV AX,0x5304
XOR BX, BX
INT 0x15
MOV AX,0x5301
XOR BX, BX
INT 0x15
MOV AX,0x5307
MOV BX,1
MOV CX,3
INT 0x15

MOV AX, 0040h                ;cold reboot
MOV ES, AX
MOV WORD [ES:00072h], 0h
JMP 0FFFFh:0000h

MOV AX, 0040h                ;warm reboot
MOV ES, AX
MOV WORD [ES:00072h], 01234h
JMP 0FFFFh:0000h


Allerdings denke ich, dass dir der Code im PMode nicht viel nützen wird
36
OS-Design / Aussehen des kompletten RAMs
« am: 28. February 2005, 20:54 »
Ok, hab meinen Kernel jetzt ins Segment 0050h verschoben :)

Der nächste Schritt wäre jetzt, in den Protected-Mode oder so umzuschalten, aber ich blick da einfach nich durch..
Und ohne meine geliebten BIOS-Ints bin ich verloren...ich kann doch nicht ein komplettes BIOS nachcoden...

Gibts da nicht eine Alternative, mit der ich weiterhin linear adressieren kann, aber trotzdem mehr speicher hab ?

Nachtrag:

Noch eine Frage:
Codes&Infos für HDD-Driver findet man ja zu genüge, z.B. diese Seite hier:http://www.nondot.org/sabre/os/files/Disk/HD_PORTS.asm

Aber in Sachen Floppy-Driver bin ich nicht fündig geworden. Woher nehmt ihr die Infos für eure Floppy-Treiber etc ?
37
OS-Design / Aussehen des kompletten RAMs
« am: 28. February 2005, 14:10 »
Ok des is klar :)

Aber wie wie gesagt liegt mein aktuelles Prob jetzt bei dem Speicherbereich C800:0000-E000:FFFF
Hat jemand Erfahrungen damit ? Warum geht nix mehr wenn ich meine FAT+Rootdir dorthin lade ?

Wie gesagt, ich will den RAM in meinem OS aufgeräumt halten und brauche da halt ne kleine "Spielwiese" für temporäre Codes und Daten, wie eben z.B. der FAT12-Kram
38
OS-Design / Aussehen des kompletten RAMs
« am: 28. February 2005, 12:43 »
Ah gut, das hilft mir doch schon mal weiter
Noch eine Frage: Im Realmode bleibt die EMS-Page im unteren Speicher ja ungenutzt. Wie groß ist die, wo fängt die an und kann ich die für meine Zwecke verwenden ? :-k

Achja, ich zitiere mal die Seite die du mir genannt hast:
C000:0000-C000:7FFF : video BIOS (32K is typical size)
 :?:  Wie ist denn das gemeint ? Legt die GraKa jetzt auch noch ihren Kram in meinen RAM ?? :shock:

Uh, nochwas: 0040:0000-0040:00FF : BIOS data area (BDA)
Steht da irgendwas super-wichtiges drin ? Hab bislang immer meinen Kernel an 0040h:0000h geladen :roll:

So, letzte Frage: Soweit ich das sehe, liegt der Speicherbereich für den Textmodus (B800h:0000h) im Bereich des VGA-Speichers. Ist das korrekt ?


Nachtrag: Verdammt, ich versteh die Welt nicht mehr !
Auf der Seite steht C800:0000-E000:FFFF : NOTHING
Aber wenn ich jetzt meine FAT-Tabelle ins Segment C800h und das RootDir ins Segment D000h lade, geht garnichts mehr. Wenn ich hingegen 2000h und 2500h nehme, geht alles Wunderbar. Aber ich will den ganzen FAT12-Kram nicht im unteren Speicher haben... :?
39
OS-Design / Aussehen des kompletten RAMs
« am: 27. February 2005, 22:34 »
Hi !
Ich möchte meinen RAM bis ins letzte Byte ausreizen, daher suche ich (bislang vergeblich) nach Infos, wie der RAM unterteilt ist. Also z.B. die Interruptvektor-Tabelle von 0000:0000 bis 0040:0000 und der Videoram von A000:0000 bis ... keine Ahnung
Das waren jetzt nur 2 Sachen, euch fällt sicherlich noch mehr ein
Also einfach eine Auflistung aller im RAM vorhandenen Komponenten (Anfang und Ende)

Danke schon mal für eure Hilfe
40
Lowlevel-Coding / PrintString? Ich kapiers nicht!
« am: 27. February 2005, 21:30 »
Der Befehl LODSB holt sich das Byte von DS:SI, evtl. solltest du mal überprüfen ob das Datensegment stimmt...so ein ähnlicher Fehler hat mich mal nen Nachmittag gekostet :) Dumme Segmentierung..
Seiten: 1 [2] 3

Einloggen