Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: Cheebi am 02. January 2007, 12:57

Titel: FDC reagiert auf manchen PCs nicht...
Beitrag von: Cheebi am 02. January 2007, 12:57
Hallo,
ich habe einen FDC-Treiber geschrieben. Nun... Auf meinem einen PC und auf dem Emulator funktioniert er. Auf einem anderen PC funktioniert der Treiber nicht.
Es werden Befehle an den FDC geschickt, z.B. 0x0f aber der FDC reagiert nicht. Die Ports stimmen, erstens da ich unter Windows an dem PC die Ports vom FDC nachgeschaut habe und weil der Treiber ja auch auf einem anderen PC funktioniert.
Nur, warum nicht auf diesem PC hier? :?
Er reagiert einfach nicht auf die Befehle, da ich z.B. den Motor anschalten, nicht aber recalibrieren kann...

Cheebi
Titel: Re: FDC reagiert auf manchen PCs nicht...
Beitrag von: bitmaster am 02. January 2007, 14:06
Vergess am besten Floppy und steig so wie ich auf CD und Festplatte um. Der FDC ist wirklich eines der größten Blodsinne. Man muss auf einen IRQ warten weil die CPU viel schneller ist als das Floppy. Ok das ist logisch. Aber wieso dann noch extra ein paar Millisekunden warten??? Dann könnten die den IRQ auch ruhig später aufrufen lassen so das das zusätzliche Warten weg fällt. Im übrigen ist ein ATAPI CD/DVD Treiber wesentlich einfacher und ISO9660 (ich habs plus Joliet) ist auch nicht schwerer als FAT12 (ich gehe mal davon aus du nimmst FAT12). Und wenn du auch schreiben willst, dann nimm Festplatte. Also ich rate jedem das aussterbende Floppy ab. Mein Treiber war nämlich genauso blöd wie deiner obwohl ich alles gemacht habe wies im Intel Manual drin steht.  Da hilft C im übrigen auch net. ^^

Nee, aber der FDC ist echt blöd. Also mein alter PC lief wunderbar mit meinem Treiber. Der von meiner Mutter brauchte 1 Minute oder 2 um ein paar KByte zu laden und mein jetziger PC verweigerte den Treiber. Aber wenn du wirklich beim FDC bleiben willst (was ich nicht hoffe), dann poste doch am besten deinen Code.

bitmaster
Titel: Re: FDC reagiert auf manchen PCs nicht...
Beitrag von: Korona am 02. January 2007, 14:29
Wenn du alles so machst wie es von Intel erwartet wird (auch das Timing!) sollte der FDC-Treiber auf jedem PC laufen. Achte aber darauf dass du wirklich alles richtig machst und nicht irgentwelche Sachen auslässt. Dann mag vieleicht ein FDC damit laufen, manche aber eben nicht.
Titel: Re: FDC reagiert auf manchen PCs nicht...
Beitrag von: bitmaster am 02. January 2007, 16:48
Wenn du alles so machst wie es von Intel erwartet wird (auch das Timing!) sollte der FDC-Treiber auf jedem PC laufen. Achte aber darauf dass du wirklich alles richtig machst und nicht irgentwelche Sachen auslässt. Dann mag vieleicht ein FDC damit laufen, manche aber eben nicht.
Genau das meinte ich. Gut ich habe dann warscheinlich nicht alles gemacht was Inte verlangt. ^^ Nur das Ding ist Müll.

bitmaster
Titel: Re: FDC reagiert auf manchen PCs nicht...
Beitrag von: Cheebi am 09. January 2007, 11:12
Hi,


ich hab den Grund gefunden. Aus irgendeinem Grund, war die Port-in/-out Routine auf dem einen PC fehlerhaft. Jetzt klappt's, wie es dagegen geklappt hat, den PIC damit zu remappen und die Serielleschnittstelle zu initialisieren und die Uhrzeit abzufragen, weiß ich leider auch nicht  :?

cya
Cheebi
Titel: Re: FDC reagiert auf manchen PCs nicht...
Beitrag von: Svenska am 09. January 2007, 22:11
Zu komischen Floppy-Controllern fällt mir nur ein, was ich im Minix-Changelog (für 2.0.4 oder so) gelesen hatte (frei übersetzt aus dem Gedächtnis):

"Konstanten für den FDC wieder geändert. Diskettenlaufwerke sollten wieder funktionieren (die Zahlen kamen direkt vom Datenblatt!!)."

Scheint schon komisch zu sein der FDC ... :)

Gruß,
Svenska