Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: nore am 21. March 2006, 16:58

Titel: irq 6 nach floppy-zugriff über dma?
Beitrag von: nore am 21. March 2006, 16:58
hi, wenn ein datentransfer über den fdc mit dma zu ende ist, sollte doch normalerweise irq 6 ausgelöst werden, oder?

ich habe nämlich zurzeit das problem, dass ich nicht weiß, wann ich den diskettenmotor wieder ausstellen soll. zurzeit setzt meine isr für den irq 6 einfach nur eine variable auf 0 und meine funktion zum lesen von der diskette wartet vor dem motor-ausschalten solange bis die variable 0 ist. allerdings passiert das nie, ich komme in eine endlosschleife.

wenn ich diese abfrage einfach weglasse, schaltet die cpu anscheinend den motor aus, bevor der transfer beendet ist. unter bochs läuft diese variante. vllt weil es so langsam ist??
Titel: irq 6 nach floppy-zugriff über dma?
Beitrag von: Homix am 21. March 2006, 18:46
hi,
bei Bochs ist generell die Diskettenlaufwerk-Simulation ein wenig realitätsfremd wenn mans mit einem RealPC vergleicht.
Moderne Betriebssysteme schalten das Diskettenlaufwerk nach ca 1 bis 2 Sekunden nach dem letzten zugriff aus, das hat den Vorteil, dass wenn mehere Sektoren seperat gelesen werden, der Motor nicht immer extra ein und ausgeschaltet werden muss.

mfg,
stefan
Titel: irq 6 nach floppy-zugriff über dma?
Beitrag von: nore am 21. March 2006, 23:03
danke, dann werd ich das wohl auch versuchen, so ähnlich zu machen.