Autor Thema: suche floppy tut  (Gelesen 9218 mal)

drccpp

  • Beiträge: 15
    • Profil anzeigen
Gespeichert
« am: 20. May 2005, 17:09 »
Hallo wieder,

erstmal muss ich sagen, klasse forum, klasse magazin (lowlevel). Hier gibt es wirklich nette und schlaue leute.
Gruß auch an BlueB, den ich aus dem CA-Forum kenne, (wenn er's liest)

Aber was mir noch fehlt ist ein schönes Tut über den Floppy-Controller! (ohne BIOS hilfe)

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 20. May 2005, 22:22 »
Ein gutes deutsches Tut gibts bei ToDo:
http://www.webhochhaus.de/tobias/hw_fdc.htm

Ansonsten gibt es aber fast nur englische Tutorials. Eins von denen (auch gut):
http://www.armofthelord.org/Programming/OS/Floppy/main.htm

drccpp

  • Beiträge: 15
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 29. May 2005, 18:48 »
Mann das ist garnicht so einfach! Und so gut ist das tut für einen der vom fdc noch 0 weiß auch nicht grade.
Ich hab keine ahnung wie ich überhaupt anfangen soll.
Es wird immer gesagt das ich zur datenübertragung nur dma verwenden kann, aber da gibt es doch den specify command mit dem man den NON-DMA modus schalten kann. Also wie nun?
dann versteh ich den reset auch garnicht, wird er nun eingeschalten wenn ich im DOR das bit auf eins setze oder umgekehrt?

warum find ich nirgends eingermaßen leicht verständliches material.
Ich hätte mir vorgestellt, dass es höchstens so hart wie beim IDE-Controler wird.

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 29. May 2005, 19:55 »
@DMA: Für DMA gibts auch ein kleines Tut bei ToDo: http://www.webhochhaus.de/tobias/hw_dmac.htm

Als erstes solltest du dafür sorgen, dass der Floppy Interrupt (IRQ 6) gehandelt und auch aufgerufen wird. Danach kannst du nach und nach Funktionen wie sendbyte() und getbyte() erstellen. Wenn du dir den Source von irgendeinem OS ansiehst, wirst du sehen, dass diese Funktionen immer fast gleich sind.

Ansonsten ist es noch wichtig, dass du von Anfang an mit einem echten PC testest und nicht mit Bochs. Oft funktioniert ein Floppytreiber unter Bochs aber nicht in einem echten PC.

drccpp

  • Beiträge: 15
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 30. May 2005, 10:19 »
Vieln Dank für die Tipps!
Zum DMA: Muß ich den jetzt unbedingt verwenden? Was ist mit dem Specify Befehl? Geht das auch anders?

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #5 am: 30. May 2005, 10:34 »
Beim FDC kommt man um DMA leider nicht herum. Specify kenn ich garnicht:P
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

drccpp

  • Beiträge: 15
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 30. May 2005, 10:55 »
@Roshl: Ich meine den Command mit der Nummer 0x03
auf http://www.isdaman.com/alsos/hardware/fdc/floppy.htm auch Fix Drive Data genannt. DAS BIT 0 im zweiten Paramter-Byte!
Kennst du das nicht?

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #7 am: 30. May 2005, 11:10 »
Nö hab ich nie verwendet
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #8 am: 30. May 2005, 13:04 »
Soweit ich weiss gibt`s 3 Arten der Übertragung. DMA übertragung, interrupt-getriebener datenaustausch, und reines polling.
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #9 am: 30. May 2005, 13:07 »
Performancetechnisch gesehen ist DMA das beste, während der DMAC den Transfer ausführt kann der Prozessor noch andere Dinge tun.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #10 am: 30. May 2005, 13:12 »
Ich denke auch das es von der Programmierung her einfacher sein sollte, bei den anderen Methoden muss man selber auswerten was man jetz aus dem Datenregister ausliest.
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 30. May 2005, 13:46 »
Einen DMA Treiber zu programmieren ist wirklich einfach und genauso simpel ist es auch das in seinen Floppy Treiber zu implementieren. Alle anderen Methode machen a) wegen der Performance und b) wegen (imho) komplizierterer Programmierung keinen Sinn.

drccpp

  • Beiträge: 15
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 31. May 2005, 09:49 »
Ich weiß noch nicht welche methode ich nehme.
Mir ist wichtig das ich die Vorgänge und Vorgangsweisen verstehe und nicht blind sourcecode abkoppiere!
@Roshl: hast du einen floppy treiber geschrieben der funzt? kannst du mir den code mal zeiegn, und mir daran erklären wie ich von null bis zu einem ausgelesenen Sektor auf einer FD komme?
Ich selber bin technisch nur mit iRQ s vertraut. DMA und den CMoS-ZEitchip kann ich noch nich proggramieren. (ist der CMoS-ZEitchip überhaupt wichtig dafür?)

dnk
drccpp

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #13 am: 31. May 2005, 12:53 »
CMOS ist egal dabei. Unter Bochs funzt mein Code schonmal, aber ob auf echtem PC weiß ich nicht, da mein Rechner beim starten immer reseted, muss erst noch rausfidnen warum. Is komisch bei mir grad. Bochs geht, aufm AthlonXP gehts aber aufm K6-2 gehts nicht, weiss der Teufel, naja solange ich nicht sicher bin, dass der Code auch auf echtem Gelände funzt würde ich den ungern rausgeben. Ansonsten kann mich ja mal über ICQ kontakten vielleicht kann ich da helfen^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

drccpp

  • Beiträge: 15
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 01. June 2005, 21:13 »
@roshl: wann bist du erreichbar. Ich von Mo-Fr. ab 15.30 und Sa. und So. ab 10 uhr.
Und wolltest du nicht mal ein fdc-tut schreiben (hab ich aus einem post von januar gelesen), was ist daraus gewoaden?

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #15 am: 02. June 2005, 11:40 »
Ich bin erreichbar wenn ich online bin. Manchmal bin ich Tagelange dauerhaft da manchmal wochenlang garnicht, frag die andern die wissen das:P
Das Tut hat sich mehr oder minder im Sand verlaufen, vielleicht greife ichs wieder auf wenn ich die Probleme meines Kernels auf meinem Rechner behoben hab,  inzwischen weiss ich ja immerhin wo er abstürzt und vermute auch warum aber den Grund warum es so weit kommt habe ich noch nicht raus.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

 

Einloggen