Autor Thema: FDD  (Gelesen 5861 mal)

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« am: 31. March 2005, 14:29 »
FDD
hallo,

wie finde ich beim Datentransfair von Daten zum oder vom FDC via DMA heraus, wann der FDC alle Daten erhalten und gesendet hat, also mit seiner Aufgabe komplett fertig ist? Bisher habe ich drei Möglichkeiten, von denen eine geht ;):

1. 200 Millisekunden warten. (geht)
2. Auf ein IRQ warten. (geht nicht, IRQ kommt nie)
3. Warten bis er die Results in den Ports zur Verfügung stellt. (geht nicht, sobald man sie ausließt stoppt er den Transfair, sodass etwas fehlt)

danke für antworten und ideen,

J!N
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #1 am: 31. March 2005, 16:29 »
FDD
Eigentlich sollte ein IRQ ausgelöst werden. Da hast du vielleicht was falsch eingstellt beim FDC.
----------------------
Redakteur bei LowLevel

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 31. March 2005, 17:34 »
FDD
... oder die PIC-Masken sind falsch gesetzt oder du hast den falschen Interrupt gehookt ...
Dieser Text wird unter jedem Beitrag angezeigt.

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #3 am: 01. April 2005, 10:15 »
FDD
also beim PIC ist alles frei, es kommen ja auch die ints bei den "seek"-commands. nur bei read und write nicht. also ich hab sicher die richtige routine und alles !müsste! frei sein...

@sp: ich werd mal schauen, was du meinst... du meinst dieses DMAGATE-Bit richtig? soweit ich weiß hab ich das auf 1...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #4 am: 02. April 2005, 19:17 »
FDD
welt der wunder teil 2:

meine readsektorfunktion wird so aufgerufen:

mov cl,[bootdrive]   ;+
mov ebx,0x00000012   ;|
mov edi,0x00005000   ;|
call FDDReadSektor   ;|
inc ebx              ;|
mov edi,0x00005200   ;>Font und KeyMap laden
call FDDReadSektor   ;|
inc ebx              ;|
mov edi,0x00005400   ;|
call FDDReadSektor   ;+

sti    


eigendlich dürfte sie garnicht gehen, wegen

Zitat

sti


weil er bei dem seekkommand auf dieses irq wartet, was e.g. nicht kommen dürfte... *wunder*
auf dem real-pc geht es auch nicht, auch, wenn ich das sti vor die calls lege...

J!N
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

 

Einloggen