Autor Thema: Floppys erkennen  (Gelesen 6497 mal)

T0ast3r

  • Gast
Gespeichert
« am: 17. April 2006, 09:51 »
Hi, wie erkennt ihr ob ein Diskettenlaufwerk vorhanden ist?
Schreibt ihr einen Befehl an ein Diskettenlaufwerk und prüft ob etwas zurückgegeben wurde?

lg,

Toaster

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 17. April 2006, 11:59 »
Hi

wieso gibt es das bios und wieso macht das nen kurtzen hw test? um dir die daten nicht mitzuteilen? im bios data block 0x00400 stehen die ergebnisse vom bios. gukst du http://www.bioscentral.com/misc/bda.htm weitere daten können auch in der IRQ vektortabelle 0x00000 versteckt sein.

gruss

EDIT: der INT 1Eh verweist anscheinend auf die Diskette Parameter Table (DPT) Bei win 95 und win98 mit einer der ersten sritte des bootsektors diesen zu sichern und zu modifizieren http://home.att.net/~rayknights/pc_boot/w98bboot.htm

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #2 am: 17. April 2006, 12:00 »
Zitat von: T0ast3r
Hi, wie erkennt ihr ob ein Diskettenlaufwerk vorhanden ist?
Schreibt ihr einen Befehl an ein Diskettenlaufwerk und prüft ob etwas zurückgegeben wurde?

lg,

Toaster
Zur zeit mache ich das nur in meinem RM OS mit dem int 13h. Ich glaube das war die Funktion 8. Oder mit dem int 11h, mache ich das glaube ich. Weiß ich jetzt nicht so genau. Aber in meinem PM GUI werde ich das mit dem CMOS machen. Da steht ja an Byte 16 (10h) der Typ der Diskettenlaufwerke. Die ersten 4 Bits sind für Laufwerk B: und die zweiten 4 Bits für A: und so sind die Werte:

0000 = kein Diskettenlaufwerk vorhanden
0001 = 5 1/4 Zoll = 360 KByte
0010 = 5 1/4 Zoll = 1,2 MByte
0011 = 3 1/2 Zoll = 720 KByte
0100 = 3 1/2 Zoll = 1,44 MByte
0101 - 1111 = reservierst
(obwohl 0101 glaube ich für 3 1/2 Zoll = 2,88 MByte steht)

Somit kannst du feststellen, ob ein Diskettenlaufwerk vorhanden ist und wenn ja welches. So werde ich es auf jeden Fall machen.

@Termite: Ja und genau das gibt auch der int 11h in ax glaube ich zurück. Aber im PM würde ich lieber das CMOS nehmen.

bitmaster
In the Future everyone will need OS-64!!!

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #3 am: 17. April 2006, 14:26 »
Zitat von: T0ast3r
ich stütze mich nicht auf das BIOS, so wie einst windows (erst ab 95 wurde es *unabhängig*)
zudem muss das BIOS selbst einen hardware test durchführen, deswegen kann ein os dass dan erst recht
und festplattencheck ist auch schon voll drin, ohne bios

heutzutage sollte man sich nicht mehr auf das bios verlassen, macht auch kein bedeutendes os mehr

wäre ja blöd wenn man im bios etwas deaktiviert und plötzlich im windows xp das cd laufwerk nicht mehr auftaucht oder ähnliches

trotzdem danke
Ja, mein RM OS ist ja BIOS abhängig. Es nutzt die ganzen BIOS-Interrupts etc. Aber meine PM GUI ist nicht BIOS abhängig. Deswegen werde ich damit ja auch das CMOS auslesen.

bitmaster
In the Future everyone will need OS-64!!!

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 17. April 2006, 23:17 »
Hi

Die Daten aus dem BIOS bzw die, die das BIOS während des POST ermittelt hat, sind sicher nicht vollständig, und können ggf sogar durch einstellungen im BIOS verfälscht werden.

Als anderer weg bliebe dann noch nachzuschauen, was der Flopy Controler alles kann, und die informationen selber zu ermitteln. Problem ist dann nur wie sieht die kompatibilität zwischen den einzelnen rechnern aus. Den Flopy Controller sehe ich persönlich jetzt nicht ganz so problematisch an.

Der Siegeszug des IBM-PC hat die Rechnerarchitektur der BIOS zu verdanken, der eine einheitliche Schnitstelle zur HW schafft. Dadurch werden unterschiede in der HW ausgeglichen, so wie es jetzt die Betriebsyteme mit ihren Treibern machen.

Klärt mich auf wenn ich flasch liege, das CMOS ist doch der speicherort, in dem das BIOS seine Einstellungen abspeichert. Wie z.B. Uhrzeit, Bustimings, HD configurationen ( Auto, lba, none,....) nur was soll es bringen, diese Daten auszuwerten, wenn das BIOS diese zum teil als Parameter für seinen POST heranzieht, um dann z.B. die genaue HD configuration zu ermitteln wenn die einstellung z.B. Auto war.

gruss

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 18. April 2006, 07:47 »
Man kann die Chipsetze natürlich ditekt ansprechen, aber auch da gibt es so ein par Haken. Ich weiß z.B. aus Linux Quellcode (dem Kernel!) das sich einige Systeme einfach aufhängen wenn man nach dem 3-4 Floppylaufwerk scant.
db 0x55AA

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #6 am: 18. April 2006, 10:23 »
Ich werde es auf jeden Fall mit den Ports 70h und 71h (also CMOS) machen. Die Uhrzeit wird doch auch daraus gelesen und die Stimmt auch. Dann wird das was dort steht da auch stimmen. Und wenn ihr z.B. eurer Diskettenlaufwerk aus dem BIOS rausnehmt (BIOS-Setup) dann wird es z.B. unter XP auch nicht mehr angezeigt. Wieso sollten die Daten im CMOS nicht stimmen? Kann man überhaubt mit dem FDC feststellen ob ein spezielles Diskettenlaufwerk vorhanden ist oder nicht (und welches Format)? Die Uhrzeit wird von Windows (und Linux glaube ich auch) aus dem CMOS gelesen/geschrieben. Wieso dann die anderen Werte nicht auch aus dem CMOS lesen?

bitmaster
In the Future everyone will need OS-64!!!

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 18. April 2006, 13:10 »
Hi

Ich hab das gefühl du vergleichst Birnen mit Äpfeln. Die Configwerte im CMOS und die Uhrzeit haben glaubich recht wenig gemeinsam. Die einen sind statisch, die Anderen ändern sich alle n millisekunden.

Wo sollte man die Uhrzeit sonst speichern und lesen auser im CMOS? es ist der einzigste ort im system wo eine Uhrzeit hinterlegt ist, die auch einen neustart überleben kann. (Batterie vorausgesetzt)

Alle anderen Werte könnten sich von Systemstart zu systemstart ja verändern. ( austauschen der HW ) wie sollte das CMOS diese änderung ohne neuaufruf mitbekommen?

Gruss

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #8 am: 18. April 2006, 13:45 »
Zitat von: Termite
Alle anderen Werte könnten sich von Systemstart zu systemstart ja verändern. ( austauschen der HW ) wie sollte das CMOS diese änderung ohne neuaufruf mitbekommen?
Du musst es halt im BIOS-Setup einstellen ob z.B. ein zweites Diskettenlaufwerk eingebaut wurde. Was ist das Problem? Es ist genau das selbe mit der Uhrzeit/ dem Datum. Das kannst du auch im BIOS-Setup einstellen. Die Uhrzeit kannst du auch direkt im CMOS verändern, was mit den Hardwaresachen nicht geht. Also wirst du nur die richtige Uhrzeit bekommen, wenn du sie vorher richtig eingestellt hast (beim Kauf meistens schon passiert). Aber genau das selbe mit der Hardware (beim Kauf meistens schon passiert). Wenn du jetzt etwas ausbaust/einbaust musst du im BIOS-Setup einstellen. Sonst sind die Werte halt falsch. Aber wie gesagt mit der Uhrzeit / dem Datum genau das selbe. Wenn du das immer schön machst, wird dein OS nach jedem Neustart auch die Hardware richtig erkennen. Oder baust du deine Hardware beim Laufen des Rechners aus/ein?

bitmaster
In the Future everyone will need OS-64!!!

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 18. April 2006, 14:09 »
Hi

Bei einem guten bios erwarte ich das er das selber erkennt. Ausnahme ich habe die hw erkennung für dieses geräht explizit deaktiviert (NONE anstelle von AUTO). So das z.B. Windows das laufwerk auch nicht erkennt. ( was du ja vorher beschrieben hast. Ob das bei Floys überhaupt geht kann ich nicht sagen. die Laufwerke bekommen bei mir mitlerweile seltenheitswert. Bei HDs weis ichs definitif das man einerseitz
    NONE - Keinlaufwerk
     AUTO - selber erkennen was das ist
     FIX - die geometrie fix vorgeben
     ...[/list:u]

    Und werkseitig sind die normalerweise alle auf AUTO, damit auch eine Hausfrau noch nen DVD - Brenner (oder was anderes) einbauen kann ohne gleich nen techniker zu brauchen ( soweit zumindestend die theorie )

    gruss

 

Einloggen